Эффективный способ определения результата тестовой матрицы

Связанные вопросы:

  • Матричная комбинационная логика
  • Будет ли декартовой продукт наилучшим подходом для этого

У меня есть 25 валидаций, каждая проверка возвращает логическое значение (true, оно прошло, false это не удалось).

Каждая проверка может быть объединена со всеми другими валидациями для формирования матрицы комбинаций проверочных тестов.

Конкретные комбинации проверок подмножества также будут иметь правила прохода / отказа.

Вот краткий пример:

V1 | V2 | V3 | V4 | V5 M1: T | T | T | T | T <-- For this Matrix row it would PASS M2: F | T | T | F | T <-- For this Matrix row it would FAIL M3: F | F | T | T | T <-- For this Matrix row it would PASS M4: T | F | F | F | F <-- For this Matrix row it would PASS M5: T | T | F | F | F <-- For this Matrix row it would FAIL 

Я только забочусь о горизонтальных тестах проверки вертикали для значений

Я знаю все тесты и сохраняю результат каждого теста в базе данных. Я знаю всю комбинацию Matrix для подмножества всего теста проверки.

Мой вопрос:

Каким будет лучший способ запустить Matrix?

Сохраняю ли я каждую перестановку каждого теста прохождения или провала для проверки Матрицы? И затем, где я могу хранить комбинации Matrix?

Я думаю, что единственный способ сделать это – сохранить все комбинации валидации для 25 тестов (да 625 записей) и добавить результаты Matrix, которые я ожидаю для тех валидаций в той же записи.

Что-то вроде этого

  V1 | V2 | V3 | V4 | V5 | MR ( Matrix Results ) M1: T | T | T | T | T | P <-- For this Matrix row it would PASS M2: F | T | T | F | T | F <-- For this Matrix row it would FAIL M3: F | F | T | T | T | P <-- For this Matrix row it would PASS M4: T | F | F | F | F | P <-- For this Matrix row it would PASS M5: T | T | F | F | F | F <-- For this Matrix row it would FAIL 

Я просто чувствую, что может быть более оптимальное решение, которое я не вижу, никаких мыслей?

Solutions Collecting From Web of "Эффективный способ определения результата тестовой матрицы"

Вот как я это сделаю. Сначала определите свою матричную карту в массиве:

 $map = array( 'TTTTT' => TRUE, 'FTTFT' => FALSE, 'FFTTT' => TRUE ); 

Очевидно, что в этом массиве будет больше элементов, но вы получите смысл. Я не знаю ваших имен таблиц и столбцов, но следующий CONCAT v1-v5 и тянет как строку. Затем просто найдите этот ключ в массиве карт:

 $sql = "SELECT CONCAT(v1,v2,v3,v4,v5) AS matrix FROM `validation` WHERE `user`= '$user'"; $result = $mysqli->query( $sql ); $user_matrix = array(); while( $row = $result->fetch_assoc() ) $user_matrix[] = $map[ $row['matrix'] ]; 

Теперь у вас есть результаты в массиве $ user_matrix