Как выбирать пары при попарном тестировании?
Что проверяют
Понимаете ли вы, что пары подбирает генератор, а работа тестировщика в том, чтобы подготовить модель: параметры, значения и ограничения. Следом спрашивают, как исключить невозможные комбинации и чего попарное тестирование не ловит.
Как отвечать
Суть техники: для любых двух параметров каждая пара их значений встречается хотя бы в одном тесте. Опора на наблюдение, что большинство дефектов вызывает один параметр или сочетание двух, это показывали исследования NIST по комбинаторному тестированию.
Порядок работы:
- параметры: только то, что реально влияет на поведение: браузер, ОС, тип пользователя, способ оплаты. Лишний параметр раздувает набор;
- значения: не все подряд, а классы эквивалентности и границы. Вместо двадцати стран три класса: РФ, СНГ, остальные;
- ограничения: невозможные сочетания вроде Safari на Linux, иначе генератор выдаст невыполнимые тесты;
- генерация: инструмент строит минимальный набор. Классика это PICT от Microsoft, для Python есть
allpairspy, генераторы встречаются и в TMS. В PICT ограничение пишется так:IF [OS] = "Linux" THEN [Browser] <> "Safari";; - дополнение: рискованные комбинации из прода и от поддержки добавляются вручную, а для критичной связки параметров порядок поднимают до троек, в PICT это
/o:3.
Для оценки выигрыша: четыре параметра по три значения дают 81 полную комбинацию, а все пары покрываются 9 тестами (ортогональный массив L9). С ростом числа параметров разрыв только растёт.
Где спотыкаются
Составляют пары руками и путают список пар с набором тестов. Инструмент нужен как раз для того, чтобы уложить все пары в минимальное число прогонов.
Забывают про ограничения и зависимые параметры. Часть сгенерированных тестов оказывается невыполнимой, их вычёркивают, а вместе с ними теряются нужные пары.
Считают pairwise заменой остальных техник. Граничные значения внутри поля, негативные сценарии и дефекты на сочетании трёх и более условий он сам по себе не покрывает.