Техника · Pairwise Testing

Попарное
тестирование

Исследования показывают: большинство дефектов вызваны взаимодействием двух параметров. Pairwise даёт полное покрытие всех пар — с минимальным числом тест-кейсов.

Сценарий — Конфигурации для тестирования веб-приложения
Браузер
Chrome Firefox Safari
3 значения
Операционная система
Windows macOS Linux
3 значения
Разрешение
FHD 4K
2 значения
Язык интерфейса
EN RU
2 значения
36
полное покрытие
3 × 3 × 2 × 2 = 36 тест-кейсов
pairwise покрытие ≈ 9–12 тест-кейсов
~9
pairwise покрытие
Пример pairwise-набора (9 тест-кейсов покрывают все пары)
ТК Браузер ОС Разрешение Язык
T1ChromeWindowsFHDEN
T2ChromemacOS4KRU
T3ChromeLinuxFHDRU
T4FirefoxWindows4KRU
T5FirefoxmacOSFHDEN
T6FirefoxLinux4KEN
T7SafariWindowsFHDRU
T8SafarimacOS4KEN
T9SafariLinuxFHDEN
Вопрос 01
Сколько тест-кейсов нужно для исчерпывающего тестирования всех конфигураций выше?
12
18
36
72
Вопрос 02
На чём основана идея pairwise testing?
Тестировать только самые популярные комбинации
Большинство дефектов вызваны взаимодействием двух параметров — нужно покрыть все пары
Нужно проверить все тройки значений (3-way)
Случайный выбор даёт статистически достаточное покрытие
Вопрос 03
Добавили пятый параметр — «Тип авторизации» (Email / Social). Как изменится число тест-кейсов при pairwise?
Удвоится — с ~9 до ~18
Вырастет незначительно — примерно на 1–3 тест-кейса
Не изменится — параметры уже встречаются в матрице
Нужно пересчитать всё заново — старая матрица не работает
Что запомнить
  • Pairwise = 2-way coverage. Каждая пара значений любых двух параметров встречается хотя бы в одном тест-кейсе.
  • Число тестов растёт логарифмически с добавлением параметров — не экспоненциально, как при полном покрытии.
  • Инструменты для генерации: PICT (Microsoft), allpairs, TestingBot Pairwise.
  • Если по данным проект-специфичны запрещённые комбинации — указывай constraints в инструменте, он их исключит.