Образование

PICT и Pairwise тестирование

Pairwise тестирование (Парное тестирование), также известное как all pairs testing (тестирование «всех пар»), —  это метод обнаружения дефектов с использованием комбинационного метода двух тестовых случаев. Он основан на наблюдении, что большинство дефектов вызвано взаимодействием не более двух факторов. Следовательно, выбирается пара из двух тестовых параметров, и все возможные пары этих двух параметров отправляются в качестве входных параметров для целей тестирования. Для облегчения генерации тестов для pairwise testing есть специальный инструментарий — PICT программа от Microsoft, о которой мы также поговорим в данной статье.

Pairwise testing приводит к сокращению количества тестовых случаев и, следовательно, к более быстрым и простым возможностям тестирования. Комбинационное тестирование более высокого порядка имеет большее количество тест кейсов, что делает тест более исчерпывающим, но также более дорогим и громоздким. Кроме того, большинство ошибок вызвано единственными входными параметрами или вызвано взаимодействием между двумя параметрами. Все эти ошибки могут быть устранены путем тестирования пар (test pair). Ошибки, вызванные взаимодействием трех или более параметров, обычно очень редки и дают меньше оснований для больших инвестиций в их поиск.

Давайте ниже рассмотрим суть проблематики, плюсы и минусы подхода а также посмотрим pairwise пример, который приложен в файле для скачивания.

Pairwise testing: проблематика

pairwise

90% случаев команда тестирования должна работать в сжатые сроки. Таким образом, методы разработки тестов должны быть очень эффективными для максимального охвата и высокой вероятности обнаружения дефектов.

Примечание: Прежде чем переходить к примеру определимся с терминологией.

На экранах вы можете встретить следующие контролы – чек-боксы, листы, поля, радио-батоны и т.д.

Давайте будем их называть параметрами, а значения которые они принимают, например для дроп-даун листа это Option1, Option 2 и т.д. – это значения параметров.

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

pairwise

Пример, где pairwise тестирование будет, как нельзя кстати

Предположим, что у нас есть тестируемое программное обеспечение, которое имеет набор контроллов (параметров), в свою очередь, каждый параметр может принимать значения (значения параметров), например:

  1. Шрифты: 2 (Times, Arial)
  2. Стили: 4
  3. Размеры: 3
  4. Цвета: 3 (черный, белый, цветной)
  5. Эффекты: 11 переменных по 2 параметра

test pair

pairwise testing

Примечание: Давайте ради интереса посчитаем, какое кол-во комбинаций у нас получится…

Ради интереса, возьмем 2 шрифта (самых распространенных)*4 стиля * 3 размера(самых распространенных)*3 цвета*2 (учитываем эффекты) в 11 степени (11 переменных по 2 параметра) = 147 456

Таким образом мы подошли к сути проблемы, которая встает перед тестировщиком.

Суть проблемы тестирования программного обеспечения с большим количеством параметров и пути ее решения

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

all pairs testing

Закономерный вопрос тестировщика, что с этим делать? Ответ напрашивается сам собой, надо перебирать комбинации, но какие и в каком количестве? Таким образом, баги из-за «взаимодействия параметров» встречаются достаточно часто, но тестеры, порой, эти взаимодействия игнорируют из-за большого количества тестов (особенно этого пугаются новички). Тем не менее, не смотря на кажущуюся сложность вышеобозначенной задачи выход имеется и это pairwise тестирование, о котором подробнее поговорим дальше

Pairwise testing

Как мы отмечали в начале статьи, методика All Pairs testing очень полезна для разработки тестов для приложений с несколькими параметрами. Тесты составлены таким образом, что для каждой пары входных параметров системы существуют все возможные комбинации этих значений параметров. Тестовый набор охватывает все комбинации, поэтому он не является исчерпывающим, но очень эффективным в поиске ошибок.

Возможные варианты решения проблемы помимо pairwise тестирования

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

pairwise testing

Monkey Testing

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

Полный перебор:

  • Способность ловить баги: все возможные
  • Трудоемкость создания: легко
  • Количество тестов: нереальное

И если говорить непосредственно о pairwise testing, то данный метод базируется на исследовании, которое говорит, что 90% ошибок кроются в комбинациях пар и только 10 %  ошибок дает сочетание троек, четверки. И если в кратце охарактеризоват данный метот, то это будет выглядеть следующим образом.

Метод «Всех пар» (all pairs testing)

  • Количество тестов: минимальное
  • Трудоемкость создания: относительно легко (чуть позже разберемся почему так)
  • Способность ловить баги: высокая

Теперь давайте разберемся в чем заключается идея метода.

Идея и реализация метода pairwise testing

Вернемся к нашему примеру со страничкой из Word. В чем тут суть метода. Этот метод гарантирует, что мы каждый параметр протестируем в ПАРЕ со всеми другими параметрами.

  • Arial -> Обычный
  • Arial -> Курсив
  • Arial -> Жирный
  • Arial -> Размер 4
  • Arial -> Черный
  • Arial -> Белый

Например, Arial со всеми стилями (обычный, курсив, жирный, маленький размер, белый цвет, и т.д. ) а именно со всеми значениями параметров других переменных. Тем самым мы обеспечим парное покрытие параметров, у каждого параметра будет своя пара с другим параметром из другой переменной. И так для всех. Для успешной реализации надо пройти через 3 шага:

  1. Определить сами параметры (разобраться с контролами на странице).
  2. Определить значения параметров
  3. Построить таблицу, которая бы обеспечила нам это покрытие.

Пример реализации этапов

Этап Реализация pairwise тестирования
Определение параметров all pairs testing

 Итак, определяем переменные:

  • Find what: text string
  • Match case: checkbox
  • Direction:  radio button

 

Определение значений all pairs testing

 Каждый параметр имеет ряд значений:

  • Find what: “CAPITALS”, “Mixed Case”,  “lowercase” (3 – C, M, L)
  • Match case: yes or no (2 – Y, N)
  • Direction:  up or down (2 – U, D)

Примечание: обратите внимание на сокращения

 

Построение таблицы all pairs testing

  1. Выбирается параметр с наибольшим кол-вом значений (текстовая строка с тремя значениями).
  2. Затем выбирается второй по величине параметр (в нашем случае нет разницы какую из них брать – чек бокс или радио-батон)
  3. Берется каждое значение первого выбранного параметра и в строках дублируется столько раз, сколько у нас значений для второго выбранного параметра. Таким образом мы обеспечиваем парное покрытие первых двух параметров.
  4. Далее дорисовывается третья колонка. Причем значения добавляются в строки, а параметры в столбцы. У третьего параметра тоже 2 значения. Мы должны обеспечить полное покрытие чек бокса с радио-батоном. Это достигается за счет зеркального отражения. Третья комбинация (для значения L нам уже не принципиальна, т.к. полное покрытие уже достигнуто).

И только на 6-ом символе у нас произошло бы переполнение и мы дописывали бы строчки.

В итоге у нас количество тестов для этой таблицы сократилось с 96 до 8 (по кол-ву строк).

4-ая, 5-ая, 6-ая колонки фэйковые, чтобы ощутить размер пользы. Так как если бы мы оставили наши 3 колонки, то получилось бы 3*2*2 = 12 против 6 тестов (не очень внушающие цифры).

 

PICT pairwise testing

Возвращаясь к многострадальному примеру с Word. Как построить таблицу all pairs testing?

pict pairwise

Выход очевиден – использовать спец фриварный инструментарий, например PICT.

Инструмент pairwise тестирования (PICT) может помочь вам эффективно проектировать тестовые случаи для программных систем. С помощью PICT вы можете создавать тесты более эффективно, чем тесты, созданные вручную, и создавать их за короткий промежуток времени. PICT генерирует компактный набор вариантов значений параметров, представляющих тестовые наборы, которые вы должны использовать. Это позволяет получить всесторонний комбинаторный охват ваших параметров. Если кратко охарактеризовать преимущества PICT, то можно назвать:

  • Скорость генерации тестов
  • Простота использования
  • Расширяемость

Примечание: Плюс ко всему PICT позволяет покрывать не только пары, но и тройки (используя спец синтаксис). Теперь давайте рассмотрим, ка работать с PICT.

PICT, как пользоваться?

PICT работает как инструмент командной строки. Вы готовите файл модели, детализирующий параметры интерфейса (или набора конфигураций, или данных), которые вы хотите протестировать. PICT генерирует компактный набор вариантов значений параметров, которые представляют собой тестовые случаи. Процесс установки, после скачивания и разархивации:

  1. Запустите вложенный файл дважды щелкните по файлу pict33.msi
  2. Следуйте простым шагам для установки
  3. После установки файл pict.exe лежит в каталоге по пути C:\Program Files (x86)\PICT\ (в нашем случае Windows 10 64 bit)

Для генерации тестовых случаев необходимо проделать несколько шагов:

  1. Подготовить txt файл с напором параметров и значений (пример файла pict_word.txt для pict можно скачать ниже)
  2. Загрузить подготовленный txt файл в папку с pict (C:\Program Files (x86)\PICT\)
  3. Запустить PowerShell (щелкнуть по папке PICT или внутри нее правой кнопкой мыши, удерживая клавишу SHIFT, чтобы в контекстном меню появился пункт «Открыть окно PowerShell здесь».)
  4. В открывшемся окне PowerShell ввести команду pict.exe pict_word.txt > cases_pict.xls
Примечание: Вместо PowerShell может быть командная строка.

После чего PICT обработает txt файл и в папке появиться xls документ с набором комбинаций (пример сформированного PICT файла cases_pict.xls можно скачать ниже). Более полный набор возможностей PICT можно найти в мануале PICTHelp.htm, который находится в папке с установленным PICT.

Недостатки PICT

pictВ общем мы рассмотрели, как пользоваться pict, но несмотря на очевидные преимущества данного метода, все же с ним есть реальные проблемы. К ним относятся:

  • Не работает, если количество переменных маленькое, а параметров большое (2 дроп-дауна по 30 значений – все равно будет большое кол-во тестов). Лучше работает, когда ситуация наоборот, много переменных с малым количествомвом параметров.
  • Если добавился новый параметр, надо перестроить всю таблицу (например, в дроп-дауне добавился новый параметр – придется обновить всю таблицу)

При имеющихся недостатках, во многих ситуациях, пользу от использования PICT pairwise testing сложно переоценить. Ведь как показал пример с Word вместо 147456 комбинаций было сгенерировано 15 тестов. В итоге от применения pict и pairwise все счастливы! Так как эти тест сеты можно и заказчику показывать с обоснованием целесообразности сокращения количества тестов и сэкономить время на рутинной работе тестировщика.

Скачать PICT и pairwise пример файла

Icon

Скачать PICT 0 433 downloads

...
Мы будем рады и вашему мнению

Оставить отзыв

Veraksoff.info
Регистрация
Сбросить пароль
Сравнить товары
  • Всего (0)
Сравнить