Приведите пример применения техники попарного тестирования (Pairwise Testing).

Ответ

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

Задача: Протестировать конфигуратор ноутбука на сайте.

Параметры и их значения:

  1. Диагональ экрана: 13", 15", 17"
  2. Процессор: i5, i7, i9
  3. Оперативная память: 8 ГБ, 16 ГБ
  4. Накопитель: SSD 256 ГБ, SSD 512 ГБ, HDD 1 ТБ

Полный перебор: 3 × 3 × 2 × 3 = 54 комбинации.

Применение Pairwise: Используя инструмент (например, PICT от Microsoft) или алгоритм, мы генерируем набор, где каждая возможная пара значений любых двух параметров встречается хотя бы один раз.

Пример результирующего набора тестов (сокращенного до ~12-15 кейсов):

Тест # Диагональ Процессор Память Накопитель
1 13" i5 8 ГБ SSD 256 ГБ
2 13" i7 16 ГБ SSD 512 ГБ
3 13" i9 8 ГБ HDD 1 ТБ
4 15" i5 16 ГБ HDD 1 ТБ
5 15" i7 8 ГБ SSD 512 ГБ
6 15" i9 16 ГБ SSD 256 ГБ
7 17" i5 8 ГБ SSD 512 ГБ
8 17" i7 16 ГБ SSD 256 ГБ
9 17" i9 8 ГБ HDD 1 ТБ

Проверка покрытия пар:

  • Пара Диагональ-Процессор: (13", i5), (13", i7), (13", i9), (15", i5)... — все 9 пар присутствуют.
  • Пара Процессор-Память: (i5, 8 ГБ), (i5, 16 ГБ), (i7, 8 ГБ)... — все 6 пар присутствуют.
  • И так для всех 6 возможных комбинаций параметров (Диагональ-Память, Диагональ-Накопитель и т.д.).

Преимущество: Обнаруживает подавляющее большинство дефектов, связанных с взаимодействием параметров, при существенно меньших затратах на тестирование по сравнению с полным перебором.

Ответ 18+ 🔞

Давай я тебе на пальцах объясню, что за магия такая — попарное тестирование, а то звучит как какая-то ебушки-воробушки алхимия.

Представь, ты тестируешь сайт, где собирают ноуты. Параметров дохуя:

  1. Экран: 13, 15 или 17 дюймов.
  2. Проц: i5, i7 или i9.
  3. ОЗУ: 8 гигов или 16.
  4. Диск: SSD на 256, SSD на 512 или старый добрый HDD на терабайт.

Если тупо перебирать всё, что можно собрать, получается 3 3 2 * 3 = 54 конфигурации. Пятьдесят четыре, Карл! Это ж надо каждую проверить, а потом ещё и перепроверить после каждого чиха разработчиков. Жизни не хватит, терпения — ноль ебать.

И тут в игру вступает попарное тестирование. Его главная идея — нихуя не гениальная, но работает как шарманка. Подавляющее большинство багов вылазит не из-за какой-то одной конкретной хуйни (типа «i9»), а из-за того, как две хуйни взаимодействуют между собой (типа «i9 + SSD 256 ГБ»). Тройные и более сложные комбинации — это уже редкость, пиздопроебибна какая-то.

Значит, нам не нужно проверять ВСЕ комбинации. Надо сделать так, чтобы каждая возможная ПАРА значений любых двух параметров встретилась хотя бы в одном тестовом прогоне.

Смотри, что получается. Берем мы, например, пару «Диагональ-Процессор». Всего у нас 3 экрана и 3 процессора — 9 возможных пар типа (13", i5), (13", i7) и так далее. Наша задача — чтобы каждая из этих 9 пар где-то в нашем наборе тестов встретилась. И так для всех пар: Процессор-Память, Память-Диск и прочая хуйня.

Когда это всё аккуратно упаковывают (вручную мозг сломаешь, обычно спец.тулзы типа PICT от Microsoft используют), получается не 54 теста, а овердохуища меньше. Часто в 3-4 раза.

Вот смотри, примерно так может выглядеть итоговый набор:

Тест # Диагональ Процессор Память Накопитель
1 13" i5 8 ГБ SSD 256 ГБ
2 13" i7 16 ГБ SSD 512 ГБ
3 13" i9 8 ГБ HDD 1 ТБ
4 15" i5 16 ГБ HDD 1 ТБ
5 15" i7 8 ГБ SSD 512 ГБ
6 15" i9 16 ГБ SSD 256 ГБ
7 17" i5 8 ГБ SSD 512 ГБ
8 17" i7 16 ГБ SSD 256 ГБ
9 17" i9 8 ГБ HDD 1 ТБ

Видишь? Всего 9 тестов вместо 54! А теперь проверь, например, пару «15 дюймов — i7». Она есть? Да, в тесте №5. Пара «i9 — 8 ГБ ОЗУ»? Есть, в тесте №3. И так далее, для всех возможных пар. Волшебство, блядь!

Итог: Вместо того чтобы ебаться с полным перебором, мы за 9 тестов ловим 90+% багов, связанных с взаимодействием фич. Экономия времени — пиздецкая. А если какой-то редкий глюк на тройном взаимодействии и проскочит — ну, значит, повезло ему, пидарасу шерстяному. В продакшене его пользователи сами найдут и нарепортят, не беспокойся. Главное — успеть впердолить основные проверки и не покрыться медным тазом.