На не всех парах

Метод Pairwise Testing (Попарное тестирование) в тест-дизайне. Продолжение

В предыдущей серии мы рассмотрели теорию метода попарного тестирования и подготовили входные данные. Дело осталось за малым ― хотя бы один раз своими руками пройти алгоритм от начала и до конца. Ну а потом можно будет закинуть его на полку, записать себе строчку в резюме, а в работе использовать только готовые инструменты. Вряд ли даже на собеседовании кто-то попросит вас накидать его на доске или листочке бумаги, это вам не пузырьки, поэтому становимся умнее ― исключительно ради себя.

Итак, у нас есть таблица значений.

Простая математика подсказывает, что всего возможных вариантов тут набирается 3*2*2*2*2*2*2=192.  И чтобы не брутфорсить, проверяя все 192 варианта, мы делаем немного магии. Сначала смотрим на первый параметр, у которого три варианта значения. Потом ― на следующий, где значений два. Копируем первый параметр столько раз, сколько значений у первого, то есть на каждое значение первого параметра должны приходиться все варианты второго параметра. Ну, в общем, шесть строк получается, а заодно оставьте пустые строки между этими «пачками», спойлер: они пригодятся. Можно, конечно, было бы не оставлять, если уж совсем по-честному делать, а потом просто добавлять, но мы же учимся, верно?

Далее берём все значения второго параметра и вставляем их на появившиеся строчки так, чтобы получились все возможные варианты между первым и вторым параметром. Едем дальше ― к третьему параметру, вставляем значения так же, чтобы были все пары с предыдущим значением. Например, для «Заявитель» есть «Присутствует», а для «Незаявитель» ― нет, так что меняем это и делаем как надо. Ну и так далее со всеми остальными параметрами, пока не получится у нас следующее (слева):

Проверяем, есть ли у нас все пары значений. Смотрите, у «Заявитель» есть только «DHL», а у «Незаявитель» — только «КСЭ». У «Присутствует» есть только «Есть» в последнем параметре (допинформация), а у «Отсутствует», соответственно, только «Нету». Исправляем эту несправедливость. Остаются пустые поля ― заполните их любыми подходящими значениями, все пары у нас есть и так, так что уже всё равно. Итого, получается как на этой картинке.

Получилось 8 строк. Проверить 8 вариантов в 24 раза быстрее, чем 192 варианта. То есть это разница даже не на порядок, ну а значит, и ресурсов, и времени, и всего прочего нужно в 24 раза меньше. И это очень важно для высокогруженных или ограниченных в ресурсах системах, чтобы те не превращались в системы по проверке самих себя в ущерб основной задаче. Понятно, что это не даёт 100% точности, но как мы и обсуждали в теоретической части, 90% точности за в 24 раза меньшие усилия ― отличная сделка.

Ладно, ручную работу мы один раз сделали, каждый раз мы это делать не будем. К счастью, есть готовые инструменты, которые можно использовать, даже не просыпаясь. Рассмотрим пару примеров.

Простой браузерный вариант ― /pairwise.teremokgames.com/ ― простой браузерный вариант, собираем таблицу значений, жмякаем кнопку, получаем эксель с парами на проверку. Единственное, наверное, что с ходу не так просто понять, так это то, что не все поля необходимо заполнять. У первого параметра три значения, а у остальных два, как в нашем примере? Заполните в первом столбце три, а в остальных два, пусть останутся внизу незаполненные. Что ещё интересно ― можно «сохранять» постоянную ссылку на таблицу входных данных, для себя или делиться с коллегами, неважно. Только помните, что сайт этот, как и всякие там облака, в любой момент может раствориться в воздухе, так что не используйте его, как ваше хранилище со всеми данными и без бэкапов.

Бесплатная утилита с открытым кодом ― //github.com/microsoft/pict . С удобством использования — всё как положено. Принимает данные только в тхт, хоть и отдаёт результат в экселе (логично, чёрт побери), имеет проблемы с кириллическими кодировками (проще сразу писать на латинице), требует установки. Протестируйте ― но для этого нужно перевести наши входные данные в формат «параметр: значение1, значение2…» ― ну то есть берём эксель, транспозируем, добавляем запятые и двоеточия, сохраняем текстом, а потом из цмд или павершелла делаем сложнейшую команду «pict.exe inputData.txt > outputData.xls». Там, конечно, есть и другие настройки, хотите ― читайте инструкцию. Не хотите — не читайте. А ещё у него тоже есть браузерная версия поиграться: https://pairwise.yuuniworks.com/

Ну или откройте гугл и найдите ещё какую-нибудь программу или онлайн-версию. А вообще, если вы уж дочитали до сюда, то можете и свою программку запилить. Алгоритм вы знаете, так что его реализация в выбранном вами языке ― дел на один вечер. Зато сможете добавить ещё одну тулзу к орде уже существующих! Может даже лет через 10 в подобной статье она будет фигурировать. А может просто потренируетесь ― тоже дело. Может однажды сможете перестать быть тестировщиком и станете программистом.

Совсем не сложно, правда?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: