Попарное тестирование (Pairwise Testing)
Попарное тестирование (Pairwise Testing)
Введение
Представь: ты тестируешь веб-приложение и хочешь проверить его на разных конфигурациях. Три операционные системы (Windows, Mac, Linux) × три браузера (Chrome, Firefox, Safari) × три языка интерфейса (RU, EN, DE). Полный перебор: 3 × 3 × 3 = 27 комбинаций.
А если добавить ещё разрешение экрана и тип соединения? Комбинаторный взрыв. Протестировать всё невозможно.
Попарное тестирование (Pairwise Testing) — техника, основанная на наблюдении: большинство дефектов вызваны взаимодействием двух параметров, а не всех сразу.
Принцип попарного тестирования

Если покрыть все уникальные пары значений параметров, мы поймаем большинство дефектов, вызванных взаимодействиями.
Для нашего примера:
- Полный перебор: 27 тест-кейсов
- Попарное тестирование: ~9 тест-кейсов
При этом каждая пара (OS + Browser, OS + Language, Browser + Language) встречается хотя бы раз.
Пример: конфигурационное тестирование
Параметры:
- OS: Windows, Mac, Linux
- Browser: Chrome, Firefox, Safari
- Language: RU, EN, DE
Полный перебор — 27 тестов. Попарный набор — 9 тестов:
| # | OS | Browser | Language |
|---|---|---|---|
| 1 | Windows | Chrome | RU |
| 2 | Windows | Firefox | EN |
| 3 | Windows | Safari | DE |
| 4 | Mac | Chrome | EN |
| 5 | Mac | Firefox | DE |
| 6 | Mac | Safari | RU |
| 7 | Linux | Chrome | DE |
| 8 | Linux | Firefox | RU |
| 9 | Linux | Safari | EN |
Проверь: каждая пара (OS, Browser) встречается — Windows+Chrome, Windows+Firefox, Windows+Safari, Mac+Chrome и т.д. То же самое для пар (OS, Language) и (Browser, Language).
Инструмент: PICT
PICT (Pairwise Independent Combinatorial Testing) — бесплатный инструмент от Microsoft. Ты описываешь параметры и их значения, PICT генерирует минимальный набор тестов для попарного покрытия.
OS: Windows, Mac, Linux
Browser: Chrome, Firefox, Safari
Language: RU, EN, DE
Запускаешь PICT — получаешь оптимальный набор тест-кейсов автоматически.
Альтернативы: онлайн-инструмент pairwise.js, плагины для тест-менеджмент систем.
Когда использовать попарное тестирование
Pairwise хорошо подходит для:
- Конфигурационного тестирования (OS, браузер, устройство, версия)
- Форм с множеством независимых полей (тип доставки, способ оплаты, промокод)
- API с комбинируемыми параметрами
- Любой ситуации, где полный перебор нереален, а покрытие нужно
Ограничения попарного тестирования
Pairwise не является панацеей:
- Не покрывает трёхсторонние взаимодействия — если баг возникает только при конкретной тройке значений, он может быть пропущен
- Не заменяет доменное знание — важные специфические комбинации нужно добавить вручную
- Сложно применять к зависимым параметрам (если одни значения исключают другие, нужна дополнительная настройка)
Сравнение подходов
| Метод | Кол-во тестов (3 × 3 × 3) | Покрытие |
|---|---|---|
| Полный перебор | 27 | 100% всех комбинаций |
| Попарное | ~9 | 100% всех пар |
| Случайный выбор | произвольно | Непредсказуемое |
Частые ошибки
- Забыть о критических комбинациях — pairwise оптимизирует, но важные сценарии добавляй вручную
- Применять к 2-3 параметрам — для малого числа параметров полный перебор часто проще
- Путать попарное с попарным сравнением — это разные вещи
Что мы запомним
- Полный перебор комбинаций параметров ведёт к комбинаторному взрыву
- Pairwise покрывает все пары значений при минимальном числе тестов
- Инструмент для генерации: PICT (Microsoft)
- Лучше всего работает для конфигурационного тестирования
- Не ловит трёхсторонние взаимодействия — учитывай это