Rusau LearnВойти

Тест-дизайн

Попарное тестирование (pairwise) и PICT: что это, пример и как составить таблицу

Попарное тестирование (pairwise testing) – техника тест-дизайна, при которой проверки подбирают так, чтобы каждая пара значений любых двух параметров встретилась хотя бы в одном тесте. Её применяют, когда параметров и значений много и полный перебор занял бы сотни проверок: в примере из моего урока шесть параметров форматирования текста дают 96 комбинаций, а попарный набор укладывается в 8 строк. Таблицу можно составить вручную, но быстрее сгенерировать её в PICT от Microsoft или в онлайн-генераторе.

Мой видеоурок: Попарное тестирование / Pairwise testing / PICT для тестировщикаОткрыть на YouTube
96 → 8
проверок в примере из урока: полный перебор и попарный набор
PICT
бесплатный генератор попарных наборов от Microsoft
Бесплатно
урок с заданиями в моём базовом курсе

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

Попарное тестирование – техника тест-дизайна методом чёрного ящика. В глоссарии ISTQB сказано, что тесты при ней проектируют так, чтобы выполнить все возможные дискретные комбинации каждой пары входных параметров. Сочетания по три и полный перебор не нужны, достаточно, чтобы каждая пара значений встретилась хотя бы раз.

Техника опирается на наблюдение, что дефекты, которые зависят от сочетания параметров, чаще всего проявляются уже на сочетании двух из них. Самая известная оценка из исследований: на парах проявляется до 97% таких дефектов, а в зависимости от системы доля бывает и ниже. Дефекты, которым нужна комбинация трёх и более значений, встречаются реже, поэтому небольшой попарный набор почти не уступает полному перебору.

Попарное тестирование относится к комбинаторным техникам. В программе ISTQB Foundation его нет, термин есть только в глоссарии, а подробно технику разбирают на продвинутом уровне, в программе для тест-аналитиков.

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

Классический пример из литературы – форматирование текста в Word, Excel и других программах Microsoft Office. Шрифт, начертание, размер, видоизменение, цвет, подчёркивание, и у каждого параметра несколько значений. Если перебрать все сочетания, получатся сотни и тысячи кейсов, а исчерпывающее тестирование, как гласит один из семи принципов, невозможно.

Сигналом к pairwise стоит считать любую таблицу с множеством параметров и значений. Если такая таблица пришла в тестовом задании на вакансию, скорее всего, от кандидата ждут именно эту технику, и одними классами эквивалентности и граничными значениями тут не обойтись. В работе это чаще всего каталог интернет-магазина с фильтрами и сортировкой, а ещё настройки и формы с большим числом полей. Пример с каталогом разобран ниже.

Значения для таблицы выбирают теми же классами эквивалентности: из каждого класса берут представителя и уже эти значения комбинируют попарно. Техники работают вместе, и границы полей ввода по-прежнему проверяют отдельно.

Пример из интернет-магазина: фильтры и сортировка

Возьмём каталог интернет-магазина с пятью настройками выдачи: категория (смартфоны, ноутбуки, наушники), цена (до 10 000 ₽, 10 000–50 000 ₽, от 50 000 ₽), бренд (Samsung, Apple, Xiaomi), сортировка (сначала дешёвые, сначала дорогие, по рейтингу) и флажок "Только в наличии". Полный перебор равен 3 × 3 × 3 × 3 × 2 = 162 сочетания.

Попарный набор укладывается в 10 строк, и каждая пара значений любых двух настроек в нём встречается хотя бы раз: ноутбуки с ценой от 50 000 ₽, Apple с сортировкой по рейтингу, наушники без флажка наличия и так далее.

В каждом кейсе проверяют одно и то же: в выдаче только товары, которые подходят под все фильтры сразу, порядок совпадает с выбранной сортировкой, счётчик найденных товаров верный. Сочетание, на которое товаров нет, тоже проверка: страница должна показать понятное "ничего не найдено", а не пустоту или ошибку. Невозможные сочетания, например бренд, которого нет в категории, исключают ограничением в генераторе.

  • Кейс 1

    Смартфоны · до 10 000 ₽ · Samsung · сначала дешёвые · только в наличии

  • Кейс 2

    Смартфоны · 10 000–50 000 ₽ · Apple · по рейтингу · только в наличии

  • Кейс 3

    Смартфоны · от 50 000 ₽ · Xiaomi · сначала дорогие · только в наличии

  • Кейс 4

    Ноутбуки · до 10 000 ₽ · Apple · сначала дорогие · только в наличии

  • Кейс 5

    Ноутбуки · 10 000–50 000 ₽ · Xiaomi · сначала дешёвые · только в наличии

  • Кейс 6

    Ноутбуки · от 50 000 ₽ · Samsung · по рейтингу · все товары

  • Кейс 7

    Наушники · до 10 000 ₽ · Xiaomi · по рейтингу · только в наличии

  • Кейс 8

    Наушники · 10 000–50 000 ₽ · Samsung · сначала дорогие · все товары

  • Кейс 9

    Наушники · от 50 000 ₽ · Apple · сначала дешёвые · все товары

  • Кейс 10

    Смартфоны · до 10 000 ₽ · Xiaomi · сначала дешёвые · все товары

Как составить таблицу пар вручную: пример из урока

В уроке взят гипотетический текстовый редактор и шесть параметров: шрифт (Arial, Calibri, Times New Roman), начертание (курсив или жирный), размер (12 или 14), редактор (Блокнот или Word), операционная система (два варианта) и цвет (чёрный или красный). Полный перебор равен произведению числа значений: 3 × 2 × 2 × 2 × 2 × 2 = 96 кейсов.

Набор пар строят двумя способами, через ортогональные массивы или алгоритмом всех пар (All-pairs). В уроке я разбираю второй, он распространён шире. Даже если сам метод не уложится в голове, порядок действий стоит запомнить, чтобы повторить его на тестовом задании.

  • 1. Отсортировать параметры

    Первым ставят параметр с наибольшим числом значений, здесь шрифт, остальные идут по убыванию. Параметр с единственным значением ставят последним.

  • 2. Разбить первый столбец на блоки

    Каждое значение первого параметра пишут несколько строк подряд, по числу значений следующего параметра. В примере Arial, Calibri и Times New Roman идут парами строк.

  • 3. Заполнять столбцы так, чтобы встретились все пары

    Значения следующего параметра чередуют внутри каждого блока. Каждую пару достаточно проверить один раз, и если она уже встретилась, второй раз её не добиваются.

  • 4. Переставлять значения, если пары не хватает

    После столбца с размером в примере нашлись пары курсив и 12, жирный и 14, но не было пар курсив и 14, жирный и 12. В одном из блоков значения меняют местами, и недостающие пары появляются. Так же поступают с редактором и операционной системой, иногда переставляя две пары сразу. Переставленные ячейки удобно выделять цветом.

  • 5. Дописать строку, если перестановки не помогают

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

  • 6. Заполнить пустые клетки любыми значениями

    Все пары уже покрыты, поэтому оставшиеся ячейки заполняют произвольно, на покрытие они не влияют. В примере получилось 8 строк вместо 96.

PICT и онлайн-генераторы

Вручную таблицу составляют, чтобы понять технику и решить тестовое задание. В работе тратить на это время незачем, генератор собирает набор за секунды. Список инструментов ведёт сайт pairwise.org, и самый известный из них – PICT от Microsoft.

Самый простой вариант – онлайн-генератор pairwise.teremokgames.com, ставить ничего не нужно. В таблицу вписывают параметры и значения, нажимают Generate и получают файл Excel с кейсами. Там же можно сгенерировать полный перебор для сравнения: у трёх параметров по три значения это 27 комбинаций, а попарный набор втрое меньше. На том же сайте есть генератор тестовых файлов нужного размера, который пригодится для проверки загрузки.

PICT (Pairwise Independent Combinatorial Testing) – бесплатная консольная программа, её исходники открыты на GitHub Microsoft. В уроке PICT ставят на Windows установщиком и запускают из папки установки. Чтобы открыть там PowerShell, в Проводнике зажимают Shift, щёлкают правой кнопкой мыши и выбирают "Открыть окно PowerShell здесь".

  • 1. Описать модель

    В той же папке создают текстовый файл, например model.txt. На каждой строке пишут параметр, двоеточие и значения через запятую: Gender: Male, Female, на следующей строке Age: 18, 21, 45, затем State: New York, Alaska.

  • 2. Запустить генерацию

    В командной строке Windows команда выглядит так: pict model.txt > cases.xls. В PowerShell программу из текущей папки вызывают с точкой и обратной косой чертой: .\pict model.txt > cases.xls. На экран ничего не выводится, результат уходит в файл.

  • 3. Открыть результат

    PICT пишет столбцы через табуляцию, поэтому файл с расширением .xls открывается в Excel, хотя Excel и предупредит о несовпадении формата. Каждая строка – это набор данных для одного тест-кейса.

  • 4. Разобраться в остальном

    Ограничения между параметрами, сочетания по три и другие возможности описаны в руководстве, которое ставится вместе с программой. Для повседневных задач хватает простой модели из примера.

Плюсы, ограничения и что почитать

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

Риск в том, что дефект, которому нужно сочетание трёх значений, попарный набор может пропустить. Сочетания, важные по требованиям, добавляют в набор отдельно, а в PICT можно поднять порядок сочетаний до трёх. Ещё генератор не знает, какие сочетания невозможны: если, например, способ оплаты недоступен в одной из стран, такую пару исключают ограничением в модели или убирают из таблицы вручную.

О попарном тестировании и о тест-дизайне в целом советую прочитать книгу Ли Копланда A Practitioner's Guide to Software Test Design.

Видеоурок, шпаргалка и тренажёр

Я разбираю попарное тестирование в отдельном ролике на YouTube: составляю таблицу для форматирования текста вручную, показываю онлайн-генератор и PICT. В бесплатном базовом курсе по тестированию тема идёт уроком "Попарное тестирование", и после теории в нём есть задания.

Шпаргалка считает, во сколько раз попарный набор меньше полного перебора, и показывает живой набор пар. В тренажёре нужно дополнить набор так, чтобы каждая пара значений встретилась хотя бы раз.

Курсы по теме

Вопросы и ответы

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

Техника тест-дизайна, при которой проверки подбирают так, чтобы каждая пара значений любых двух параметров встретилась хотя бы в одном тесте. Перебирать все сочетания не нужно, и набор получается в разы меньше: в примере из моего урока 8 проверок вместо 96, а для каталога магазина с пятью фильтрами 10 вместо 162.

Когда применять попарное тестирование?

Когда у функции много параметров и у каждого несколько значений: настройки, фильтры, сортировки, форматирование, конфигурации окружения. Если в тестовом задании дана большая таблица параметров и значений, скорее всего, ждут именно pairwise.

Как составить попарную таблицу вручную?

Отсортировать параметры по числу значений и записать значения первого параметра блоками. Затем заполнять остальные столбцы так, чтобы встретилась каждая пара, менять значения местами, когда пары не хватает, при необходимости дописать строку, а пустые клетки заполнить любыми значениями.

Что такое PICT и как им пользоваться?

Бесплатный консольный генератор попарных наборов от Microsoft. Параметры и значения записывают в текстовый файл строками вида "Age: 18, 21, 45", запускают pict model.txt > cases.xls и получают таблицу кейсов. PICT умеет исключать невозможные сочетания и строить наборы по три параметра.

Чем попарное тестирование отличается от полного перебора?

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

Есть ли попарное тестирование в ISTQB?

В программе Foundation Level его нет. Термин pairwise testing есть в глоссарии ISTQB, а саму технику вместе с другими комбинаторными разбирают на продвинутом уровне, в программе для тест-аналитиков.

Посмотреть программы курсов

Программа каждого курса открыта целиком: видны все модули, уроки и число шагов.

Все курсы

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