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

Если вы искали парное тестирование (методику тестирования в паре с кем-то), тогда вам сюда.

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

Попарное тестирование — это одна из техник тест-дизайна, основанная на комбинаторике и разделению входных параметров «по парам» (почему и называется pairwise testing). Проводится комбинирование вариантов и подбор нужных, то есть оцениваются все возможные комбинации (сочетания) входных переменных, и из них выбираются только нужные (значимые). Техника основана на том, что 99,9…% дефектов возникают при взаимодействии не более двух факторов одновременно.

Преимущество техники состоит в экономии времени и усилий, поскольку так называемый «полный исчерпывающий подход» (exhaustive), когда вручную (или даже автоматически) тестируются абсолютно все сочетания параметров, в 99% случаев оказывается избыточным.

Не путать с «парным тестированием» (pair testing), методом командной работы в ИТ, когда создаются пары из тестировщика и другого тестировщика/разработчика/бизнес-аналитика для работы над участком проекта.

Матан

Если нужно разобраться более фундаментально, на помощь придет «матан», а именно такой раздел математики как комбинаторика: попарное тестирование является одним из частных случаев так называемого «тестирования N пар», или ортогональных матриц (подробнее по ссылке). 

Быстрый пример

QA-команде передали приложение, в которое пользователь должен вводить свои значения. Всего 10 полей ввода, может быть по 10 вариантов в каждом. Получается всего 10х10=100 комбинаций нужно будет протестировать, если пойти по ошибочному пути «исчерпывающего тестирования». 

Или, например, есть простое приложение, в которое ввод подается выбором значений из таких объектов ввода: выпадающего списка (с числами от 0 до 9), чекбокса, радиокнопки, текстового поля, и кнопки ОК. Текстовое поле принимает только числа от 0 до 100. Получаются варианты следующие:

Список: 0,1,2,3,4,5,6,7,8,9

Чекбокс: Отмечен / нет

Радиокнопка: Выбрана / не выбрана

Текстовое поле: числа 0…100

Сколько же тест-кейсов нужно создать? Невероятно много. Исчерпывающее тестирование такого приложения предполагает (умножаем все количества вариантов) 10*2*2*100 = 4000 тест-кейсов. Если же к этому добавить «негативные варианты» (то есть с вводом заведомо некорректных значений, а так обязательно случается в реальном мире), то количество будет «сильно выше» 4000. 

Как же сократить это количество, упрощая себе задачу? То есть, в чем заключается суть попарного тестирования?

Во первых: что здесь можно сократить? Нельзя — варианты радиокнопки и чекбокса, они всегда будут иметь только возможных 2 значения. С текстовым полем можно ограничиться тремя числами: валидное целое, невалидное целое, буква или спецсимвол. Со списком: здесь предположим, для упрощения, что значение будет или 0, или “любое другое кроме 0”, то есть получается только 2 варианта, «0» и «другое». Считаем количество вариантов (тест-кейсов) теперь: 2*2*2*3 = всего 24. То есть, при «обычном» подходе у нас 24 тест-кейса, что уже неплохо.

Идем дальше по пути сокращения:

  1. Упорядочиваем объекты ввода так, чтобы объект ввода с самым большим количеством вариантов шел первым, и т.п.
  2. Делаем таблицу. Список у нас будет принимать 2 значения.
  3. Следующая колонка — чекбокс, тоже 2 значения.
  4. Проверяем, что у нас «покрыты» все комбинации списка и чекбокса
  5. То же делаем с радиокнопкой (2 значения)
  6. Проверяем, что все пары «покрыты».
Текстовое полеВыпадающий списокЧекбоксРадиокнопка 
Валидное целое0Отмечен Включена 
Валидное целое“Другое значение” (не 0)Не отмеченВыключена 
Невалидное целое0Отмечен Включена 
Невалидное целое“Другое значение”Не отмеченВыключена 
Буква 0Отмечен Включена 
Буква “Другое значение”Не отмеченВыключена 

Таким образом, пользуясь техникой попарного тестирования, сократили количество тест-кейсов сначала с 4000 до 24, затем до 6 как в таблице, что уже вполне посильно. И при этом надежность такого метода вполне нормальная.

Полезности метода

  • Уменьшает количество тест-кейсов
  • Позволяет быстро повысить тестовое покрытие 
  • Достаточно эффективно повышает % найденных багов
  • Ускоряет создание и выполнение тест-кейсов
  • Снижает издержки проекта

Недостатки

  • Не работает с некоторыми типами переменных
  • Нужен опыт в определении комбинаций
  • Трудоемкость

Инструменты

Поскольку методика по своей сути рутинная, трудоемкая, требует опыта, внимательности и усидчивости, для быстрого создания тест-кейсов добрые люди давно придумали множество онлайн-инструментов, их список на сайте https://www.pairwise.org/tools.html, там же и рейтинг лучших инструментов «под задачу». Если нужно «здесь и сейчас», то вот ссылка на инструмент https://pairwise.teremokgames.com с интуитивным интерфейсом.

***

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

2 КОММЕНТАРИИ

Подписаться
Уведомить о
guest

2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Анастасия
Анастасия
9 месяцев назад

Техника применена не правильно, не встречается пары — Другое значение — отмечен» или Отмечен — Выключена и некоторых других пар. По сути правильные только первый и второй столбец

Аслан
Аслан
8 месяцев назад

просоединяюсь к Анастасии, в примере явная ошибка

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

🔥 Популярное

💬 Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас