Что такое попарное тестирование (Pairwise Testing)?

Ответ

Попарное тестирование (Pairwise Testing) — это техника тест-дизайна, которая позволяет значительно сократить количество тест-кейсов за счёт проверки всех возможных уникальных комбинаций значений для каждой пары параметров, а не для всех параметров одновременно. Основано на эмпирическом наблюдении, что большинство дефектов вызывается взаимодействием двух параметров.

Зачем это нужно? Для избежания комбинаторного взрыва. Полный перебор (All-Pairs) всех комбинаций часто нецелесообразен.

Пример: Тестирование формы с тремя параметрами:

  • ОС: Windows (W), Linux (L), macOS (M)
  • Браузер: Chrome (C), Firefox (F)
  • Язык: English (EN), Russian (RU)
Полный перебор (12 комбинаций) Попарное покрытие (6 комбинаций)
W, C, EN W, C, EN (Covers: W-C, W-EN, C-EN)
W, C, RU W, F, RU (Covers: W-F, W-RU, F-RU)
W, F, EN L, C, RU (Covers: L-C, L-RU, C-RU)
W, F, RU L, F, EN (Covers: L-F, L-EN, F-EN)
L, C, EN M, C, RU (Covers: M-C, M-RU, C-RU)
L, C, RU M, F, EN (Covers: M-F, M-EN, F-EN)
L, F, EN
L, F, RU
M, C, EN
M, C, RU
M, F, EN
M, F, RU

Инструменты: Для генерации оптимальных наборов тестов используются инструменты, такие как PICT (от Microsoft) или онлайн-генераторы.

Ответ 18+ 🔞

Да ты посмотри на эту хуйню! Сидит тестировщик, блядь, и думает: "Вот у меня тут три параметра — ОС, браузер, язык. Ну, я ж не мудак, надо всё проверить!" И начинает строчить тест-кейсы, как сука подорванная. Windows-Chrome-English, Windows-Chrome-Russian... А потом смотрит — нихуя себе, уже 12 комбинаций! А если параметров пять? Шесть? Да там овердохуища вариантов будет, в рот меня чих-пых! На всю жизнь тестирования не хватит.

А тут, блядь, умные дядьки подумали: "А нахуй нам всё? Большинство багов, ёпта, вылазят не от того, что все три штуки вместе как-то по-особенному ебнулись, а от того, что какие-то два параметра не подружились!" Ну, типа, Windows с Firefox'ом поругались, или Chrome на русском языке съебнулся. Вот и придумали попарное тестирование — чтобы проверить все возможные парочки, а не все комбинации разом.

Смотри, вот табличка. Слева — полный перебор, 12 строк, нихуя не мало. А справа — попарное покрытие, всего 6 строк! И знаешь что? Оно покрывает, блядь, ВСЕ возможные пары! Каждую ОС с каждым браузером, каждый браузер с каждым языком, каждую ОС с каждым языком. Гениально и просто, как хуй в проруби!

Полный перебор (12 комбинаций) Попарное покрытие (6 комбинаций)
W, C, EN W, C, EN (Накрывает: W-C, W-EN, C-EN)
W, C, RU W, F, RU (Накрывает: W-F, W-RU, F-RU)
W, F, EN L, C, RU (Накрывает: L-C, L-RU, C-RU)
W, F, RU L, F, EN (Накрывает: L-F, L-EN, F-EN)
L, C, EN M, C, RU (Накрывает: M-C, M-RU, C-RU)
L, C, RU M, F, EN (Накрывает: M-F, M-EN, F-EN)
L, F, EN
L, F, RU
M, C, EN
M, C, RU
M, F, EN
M, F, RU

И самое охуенное — тебе эту матрицу вручную, блядь, высиживать не надо. Есть же инструменты, ёбушки-воробушки! Тот же PICT от Microsoft — нахуярил ему параметры с значениями, он тебе оптимальный набор и выплюнет. Сиди и тестируй, а не голову себе еби комбинаторикой.

В общем, суть в чём: не надо быть мудаком-максималистом и проверять всё подряд. Умнее — проверить все пары. Эффективность, блядь, зашкаливает, а времени и сил — в три раза меньше. Вот так вот, просто и с пользой, как хуй с горы.