Использовали ли вы инструменты для тест-дизайна, например Pairwise?
Что проверяют
Понимаете ли вы, какую задачу решает pairwise и где его пределы, или просто знаете название генератора. Следом часто дают небольшую задачу: несколько параметров формы с вариантами значений, посчитать полный перебор и прикинуть, сколько останется после попарного.
Как отвечать
Сначала суть техники. Попарное тестирование гарантирует, что каждая пара значений любых двух параметров встретится хотя бы в одном тесте. Опирается оно на наблюдение, которое подтверждают исследования NIST: большая часть дефектов проявляется на одном параметре или на взаимодействии двух. Пример: четыре параметра по три значения дают 81 комбинацию полным перебором, а все пары покрываются девятью тестами.
Дальше инструменты:
- PICT: консольный генератор от Microsoft. Понимает ограничения вроде
IF [OS] = "iOS" THEN [Browser] <> "Edge";, веса значений и покрытие более высокого порядка через/o:3; - онлайн-генераторы: удобны для быстрой прикидки без установки;
- ACTS от NIST: когда нужно покрыть не пары, а тройки и выше;
allpairspy: библиотека для Python, если набор нужно генерировать прямо в автотестах для параметризации pytest.
Каркас личного ответа: где применяли (настройки, кроссбраузерность, фильтры поиска), как выбирали значения (сначала классы эквивалентности и граничные значения, потом генератор), какие ограничения задали, какие критичные комбинации добавили вручную, что нашли. Цифры только свои. Если не использовали, скажите честно и покажите технику на примере прямо на собеседовании.
Где спотыкаются
Выдают pairwise за полное покрытие. Баг, который проявляется только на сочетании трёх параметров, попарный набор может пропустить, поэтому критичные сценарии добавляют руками.
Подают в генератор сырые значения без классов эквивалентности. Если для поля «возраст» взять десять случайных чисел вместо границ и представителей классов, набор раздуется и потеряет смысл.
Забывают про ограничения. Генератор честно выдаст комбинацию «Safari на Android», тесты на ней падают или пропускаются, и покрытие пар оказывается дырявым.