Что такое pairwise-тестирование и когда вы будете его применять?
Короткий ответ
- Техника сокращения комбинаторного взрыва параметров
- Проверяются все пары значений, а не все комбинации
- Опирается на факт: большинство багов вызывают 1-2 параметра
- Набор строит инструмент: PICT, Allpairspy и аналоги
- Пример: браузеры, ОС, языки, роли — сотни комбинаций сводятся к десяткам
- Критичные комбинации добавляются вручную поверх набора
Pairwise даёт почти то же покрытие дефектов при кратно меньшем числе тестов, проверяя каждую пару значений параметров хотя бы раз.
Как сказать вслух
пример ответаPairwise — это способ не проверять все комбинации параметров, когда их слишком много. Исследования показывают, что подавляющее большинство багов вызвано одним параметром или взаимодействием двух. Поэтому строится минимальный набор тестов, где каждая пара значений встречается хотя бы один раз. Я применяю его для конфигураций: браузеры, операционки, роли, настройки. Набор генерирую инструментом вроде PICT, а бизнес-критичные комбинации добавляю руками.
Подробный ответ
Основной ответ
Pairwise (попарное тестирование) — комбинаторная техника тест-дизайна. Если у системы, например, 4 браузера, 3 ОС, 3 языка и 3 роли, полный перебор даёт 108 комбинаций. Pairwise строит набор, в котором каждая пара значений любых двух параметров встречается минимум один раз — обычно это 12–15 тестов. Техника опирается на эмпирику: львиная доля дефектов проявляется от одного параметра или взаимодействия двух, тройные взаимодействия редки. Наборы генерируют инструментами: PICT от Microsoft, allpairspy для Python, онлайн-генераторы. Ограничения важно понимать: pairwise не гарантирует поимку багов от тройных сочетаний, не учитывает вероятности использования и бизнес-риски, поэтому поверх сгенерированного набора вручную добавляют самые частотные и самые рискованные комбинации.
Ключевые моменты
- Когда применять. Много независимых параметров конфигурации: фильтры, настройки, матрица окружений, параметры API.
- Инструменты. PICT, allpairspy, онлайн pairwise-генераторы; руками большие наборы не строят.
- Ограничения. Пропускает дефекты тройных взаимодействий; невалидные и зависимые комбинации надо исключать constraint-ами.
- Риск-дополнение. Самые популярные у пользователей комбинации проверяются отдельно, даже если pairwise их не выбрал.
Практический контекст
Вопрос отличает мидла от джуна: нужно не определение, а понимание, когда техника уместна и где её слабые места. На практике встречается при тестировании матрицы окружений, сложных форм с зависимыми полями, фиче-флагов. Интервьюер может попросить прикинуть размер полного перебора и объяснить, как вы сократите набор — полезно показать расчёт вслух.
Частые ошибки
- Путают pairwise с проверкой «по паре значений на поле», то есть с граничными значениями
- Не упоминают ограничение: баги тройных взаимодействий набор может пропустить
- Забывают, что невозможные комбинации нужно исключать ограничениями, иначе набор содержит нереальные тесты