Попарное тестирование (Pairwise Testing)

Попарное тестирование (Pairwise Testing)

Введение

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

А если добавить ещё разрешение экрана и тип соединения? Комбинаторный взрыв. Протестировать всё невозможно.

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


Принцип попарного тестирования

Pairwise: покрытие всех пар при минимальном числе тестов

Если покрыть все уникальные пары значений параметров, мы поймаем большинство дефектов, вызванных взаимодействиями.

Для нашего примера:

  • Полный перебор: 27 тест-кейсов
  • Попарное тестирование: ~9 тест-кейсов

При этом каждая пара (OS + Browser, OS + Language, Browser + Language) встречается хотя бы раз.


Пример: конфигурационное тестирование

Параметры:

  • OS: Windows, Mac, Linux
  • Browser: Chrome, Firefox, Safari
  • Language: RU, EN, DE

Полный перебор — 27 тестов. Попарный набор — 9 тестов:

#OSBrowserLanguage
1WindowsChromeRU
2WindowsFirefoxEN
3WindowsSafariDE
4MacChromeEN
5MacFirefoxDE
6MacSafariRU
7LinuxChromeDE
8LinuxFirefoxRU
9LinuxSafariEN

Проверь: каждая пара (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)Покрытие
Полный перебор27100% всех комбинаций
Попарное~9100% всех пар
Случайный выборпроизвольноНепредсказуемое

Частые ошибки

  • Забыть о критических комбинациях — pairwise оптимизирует, но важные сценарии добавляй вручную
  • Применять к 2-3 параметрам — для малого числа параметров полный перебор часто проще
  • Путать попарное с попарным сравнением — это разные вещи

Что мы запомним

  • Полный перебор комбинаций параметров ведёт к комбинаторному взрыву
  • Pairwise покрывает все пары значений при минимальном числе тестов
  • Инструмент для генерации: PICT (Microsoft)
  • Лучше всего работает для конфигурационного тестирования
  • Не ловит трёхсторонние взаимодействия — учитывай это

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике