Попарное тестирование: как из 96 комбинаций сделать 12

Когда параметров много, полный перебор превращается в тысячи проверок. Попарное тестирование сокращает их в разы, и при этом ловит большинство дефектов сочетаний.

Откуда берётся проблема

Возьмём форму заказа с параметрами: способ доставки (4 варианта), способ оплаты (3), тип клиента (2), регион (4). Полный перебор — 4 × 3 × 2 × 4 = 96 комбинаций. Это на одной форме и без учёта данных внутри полей.

Проверить 96 сценариев руками — несколько дней. Проверить один-два и надеяться — обычная практика, из-за которой всплывают дефекты вида «при курьерской доставке в другой регион с оплатой при получении сумма считается неверно».

Идея попарного тестирования

В основе — практическое наблюдение: подавляющее большинство дефектов сочетаний вызывает взаимодействие двух параметров, а не пяти сразу. Логика в коде обычно выглядит как «если доставка курьером и оплата при получении, то…», и редко когда условие содержит четыре переменные одновременно.

Значит, вместо всех комбинаций достаточно набора, в котором каждая пара значений встречается хотя бы раз. Курьер + карта, курьер + наличные, самовывоз + карта и так далее — все пары есть, но не в 96 строках, а примерно в 12.

Полный перебор проверяет всё. Попарный — всё, что реально ломается.

Как построить набор

  1. Выпишите параметры и их значения. Только те, что действительно влияют на поведение: цвет кнопки в набор не идёт.
  2. Сократите значения. Если регионов сорок, но логика различает только «столица / регион / зарубеж», берите три, а не сорок.
  3. Постройте таблицу. Начните с параметра с наибольшим числом значений, дальше добавляйте остальные так, чтобы новые пары появлялись в каждой строке.
  4. Проверьте покрытие. Пройдитесь по всем парам и убедитесь, что каждая встречается.
  5. Добавьте обязательные комбинации. Те, что критичны для бизнеса, входят в набор независимо от алгоритма.

Руками это делается на бумаге за десять-пятнадцать минут при трёх-четырёх параметрах. Дальше проще взять инструмент: существуют генераторы попарных наборов, в том числе бесплатные и онлайн — они строят таблицу за секунды.

Пример на четырёх параметрах

Возьмём упрощённый случай: доставка (курьер, самовывоз, почта), оплата (карта, наличные), клиент (новый, постоянный). Полный перебор — 12 комбинаций, попарный сокращает до шести:

ДоставкаОплатаКлиент
1КурьерКартаНовый
2КурьерНаличныеПостоянный
3СамовывозКартаПостоянный
4СамовывозНаличныеНовый
5ПочтаКартаНовый
6ПочтаНаличныеПостоянный

Проверьте сами: любая пара — «курьер + наличные», «почта + новый», «карта + постоянный» — встречается хотя бы в одной строке. При этом строк вдвое меньше. На реальных задачах с большим числом параметров сокращение получается кратно сильнее.

Что попарное тестирование не покрывает

Честно о границах — это важно, потому что технику часто применяют как волшебную таблетку.

⚠️ Частая ошибка применения

Взять все поля формы и загнать в генератор. Получится большой набор из проверок, половина которых бессмысленна, а важные сочетания утонут. Техника работает, когда параметры отобраны осмысленно — по влиянию на логику, а не по наличию на экране.

Как объяснить экономию команде

Техника плохо приживается, когда её преподносят как «умный способ проверять меньше». Со стороны это звучит как предложение снизить качество. Формулировка решает.

Работает разговор в цифрах: «полный перебор — 96 сценариев, это три дня; попарный набор — 12 сценариев, это три часа, и в нём проверена каждая пара значений. Оставшиеся 84 комбинации отличаются только сочетаниями трёх и более параметров одновременно — если в требованиях такие есть, добавим их отдельно».

После этого обсуждение переходит из «проверяем всё или не всё» в «какие тройки параметров у нас реально есть», а это уже полезный разговор о требованиях.

Когда её применять

Признак, что пора: у функции есть настройки, тарифы, роли или режимы, и их сочетания меняют поведение. Типичные места — оформление заказа, тарифные планы, права доступа, отчёты с фильтрами, формы с зависимыми полями.

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

Как объяснить попарное тестирование на собеседовании?

Через пример с цифрами: было 96 комбинаций, стало 12, при этом каждая пара значений проверена. Формулировка «большинство дефектов вызывает сочетание двух параметров» звучит убедительнее определения.

Обязательно ли пользоваться генератором?

Нет, при трёх-четырёх параметрах таблица строится руками. Генератор экономит время, когда параметров больше и значения неравномерны.

Чем попарное отличается от таблицы решений?

Таблица решений описывает всю логику «если — то» целиком и проверяет её полноту. Попарное сокращает число комбинаций для проверки. Часто применяются вместе: таблица показывает правила, попарное сокращает перебор.

Техники тест-дизайна выглядят простыми в тексте и перестают быть простыми на настоящих требованиях — там всплывают невозможные сочетания, зависимые поля и правила, которые нигде не записаны. На курсе они отрабатываются на реальных задачах: вы строите набор, система проверяет покрытие пар и показывает пропущенное. «Ручной тестировщик» — 14 900 ₽ один раз, доступ навсегда.

Начать бесплатно Программа курса