all pairs testing что это

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

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

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

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

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

all pairs testing что это

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

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

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

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

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

all pairs testing что это

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

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

all pairs testing что это

all pairs testing что это

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

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

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

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

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

all pairs testing что это

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

Pairwise testing

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

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

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

all pairs testing что это

Monkey Testing

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PICT pairwise testing

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

all pairs testing что это

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

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

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

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

all pairs testing что это

all pairs testing что это

all pairs testing что это

all pairs testing что это

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

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

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

Недостатки PICT

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

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

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

Источник

Allpairs – утилита для попарного тестирования (pairwise testing)

all pairs testing что это

— Эй, Максим! Я закончил разработку! Надо протестировать!

— Эммс. 17:58 на часах, пятница, вечер.

— Ничего страшного! Время есть! Релиз только в понедельник!

Научимся пользоваться, запускать, устанавливать allpairs. Для продолжения изучения возможностей утилиты, ознакомьтесь с техниками тест-дизайна «Попарное тестирование» и «Техника тест-дизайна: Классы эквивалентности (equivalence partitioning)». Утилита предназначена помочь в автоматическом формировании тестовых комбинаций, пар.

В случае, если вы ещё не скачали утилиту, можете перейти по ссылке на сайт и нажать кнопку «Download», либо в разделе «Материалы для скачивания». Советую ставить сразу на диск C, D. Вам проще добираться и не возникнет лишних проблем, если в пути к каталогу появятся пробелы. Порой он неправильно воспринимает кодировку, либо не может найти файл по этой причине. Я поставил на D:\pairs.

Содержание:

Какие же преимущества имеет allpairs по сравнению с другими программами, утилитами? На первый взгляд, кажется, она уступает своим конкурентам, но вы ошибаетесь, так как allpairs:

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

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

П.1. На странице поиска имеются следующие фильтры в виде текстовых полей: имя клиента, организация, ИНН, номер договора. Присутствует чек-бокс с параметром «Действующий договор».

Поля «Имя клиента», «Организация», «ИНН», «Номер договора» имеют максимальную длину 50 символов, минимальную 3. В поля доступен ввод только кириллицы, латиницы, пробелов, дефисов. Остальные спецсимволы недоступны. Лишние пробелы, дефисы(Больше одного подряд) необходимо удалить.

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

all pairs testing что это

В чем преимущество allpairs? Вы можете прямо сейчас скопировать таблицу в Excel из раздела «Материалы для скачивания» (Замечу, последнюю строку копировать необходимо полностью).

Для чего сначала в Excel переносить данные перед отправкой в текстовый файл для allpairs? Для вашего удобства. Конечно, вы можете с помощью клавиши «Tab» в текстовом редакторе отделять столбцы, строки. Но вы уверены, что правильно подсчитаете количество табуляций, например на последней строке?

Копируем в текстовый файл(Наименовал как testpairs.txt) в папке allpairs(опять для удобства) и ничего не меняем:

all pairs testing что это

Единственный совет, удалить самую последнюю строку, чтобы курсор находился, как показано на скриншоте(Достаточно перевести курсор на последнюю строку и нажать один раз клавишу «Backspace» на клавиатуре):

all pairs testing что это

Сохраняем файл и открываем командую строку. Для открытия командной строки в Windows 10 есть несколько путей:

Перейдите в каталог c распакованным allpairs. Я создал каталог D:\pairs:

all pairs testing что это

Пришло время использования allpairs. Введите следующую комбинацию и нажмите клавишу «Enter» на клавиатуре:

Для запуска allpairs в MacOS, Linux команда:

all pairs testing что это

allpairs.exe – утилита allpairs

testpairs.txt – текстовый файл, в который мы скопировали наборы классов эквивалентности

testcases.txt – текстовый файл, который утилита создаст и в него скопирует сформированные проверки методом попарного тестирования. Название текстового файла может быть любым.

Специально не указываю формат XLS testcases.xls на выход, так как много проблем появляется в связи с этим, и с кодировкой и с внутренними ошибками, проще в txt, дальше скопировать.

Вполне вероятно, вы можете столкнуться с ошибкой allpairs:

Ошибка возникает в том случае, когда нарушена логика файла, в который вы скопировали классы эквивалентности.

Советую, либо скопировать заново тестовый набор из Excel(Вероятно удалили лишнюю табуляцию), либо скопировать из текстового файла обратно в Excel и посмотреть, где неправильно вставлены значения в ячейку, вставить правильно и скопировать обратно.

Результат отработанной функции утилиты показан на скриншоте(Никаких ошибок и предупреждений):

all pairs testing что это

Утилита отработала корректно. Об этом говорит созданный ей файл testcases.txt:

all pairs testing что это

Открыв testcases.txt, получаем наборы проверок(для будущих тест-кейсов и чек-листов):

all pairs testing что это

Видите, самое сложное в использовании утилиты allpairs – это разбить на классы эквивалентности.

Советую, для удобства, копировать и переносить в Excel.

all pairs testing что это

Pairings – количество уникальных пар в тест-кейсе

Дополнительная информация (Получается очень много, не стал выставлять все скриншоты. Вы сами убедитесь):

all pairs testing что это

Pairing details – перечень всех пар всех параметров

Appearances – количество раз, сколько та или иная пара фигурирует в кейcах

Cases – номера кейcов, где фигурирует данная пара

— переменное значение(Можно заменить на альтернативное)

Хотелось бы отметить, утилита allpairs составит за вас список проверок функционала методом попарного тестирования, но она не обладает логическим интеллектом, например, как в случае, где «Длина поля» = «Пустое поле», прося ввести «Кириллица+Латиница».

Утилита призвана помочь, а не выполнить всю работу за вас. Немного придётся потрудиться, чтобы вышло примерно следующее:

Источник

Метод попарного тестирования

all pairs testing что это

Nov 19, 2018 · 4 min read

all pairs testing что это

Что же такое pairwise testing?

Pairwise testing — техника тест-дизайна, а именно метод обнаружения дефектов с использованием комбинационного метода из двух тестовых случаев. Он основан на наблюдениях о том, что большинство дефектов вызвано взаимодействием не более двух факторов (дефекты, которые возникают при взаимодействии трех и более факторов, как правило менее критичны). Следовательно, выбирается пара двух тестовых параметров, и все возможные пары этих двух параметров отправляются в качестве входных параметров для тестирования. Pairwise testing сокращает общее количество тест-кейсов, тем самым уменьшая время и расходы, затраченные на тестирование. Техника известна уже больше 20 лет, но только последние 5 лет мы можем наблюдать ее активное использование.

Дл я Pairwise testing используют алгоритмы, которые базируются на построении ортогональных матриц, или алгоритмы All-Pairs.

Тестирование с помощью ортогональных матриц

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

all pairs testing что это

Для того, чтобы построить ортогональную матрицу для этого примера необходимо сделать так, чтобы два любые столбика (в нашем случае это параметры 1, 2 и 3) содержали в себе все возможные комбинации только один раз.

Таким образом, ортогональная матрица для нашего случая будет выглядеть таким образом:

all pairs testing что это

Как мы видим, в столбцах 1 и 3 есть все возможные комбинации: (x,x),(x,y),(y,y),(y,x). Для других пар столбцов это правило работает аналогично.

Тестирование с помощью алгоритма All-Pairs

Аll-pairs testing — комбинаторный метод тестирование программного обеспечения, который проверяет все возможные дискретные комбинации параметров для каждой пары входных параметров системы. Исходя из этого, мы получим меньшее число комбинаций, чем при использовании ортогональных матриц.

Рассмотрим пример. Предположим, нам необходимо протестировать приложение для покупки/продажи б/у ноутбуков, мы имеем следующие переменные:

Если мы захотим протестировать все возможные комбинации, то мы должны составить 2 х 2 х 3 х 2 х 2 х 2 = 96 тест-кейса. Не многовато ли работы для тестирования формы?

Далее нам необходимо организовать переменные и значения.

all pairs testing что это

all pairs testing что это

Т.е. для каждого набора в столбце 1 мы помещаем оба значения столбца 2. То же самое мы повторяем с 3 столбцом.

all pairs testing что это

У нас есть комбинация покупка&Киев и продажа&Харьков, но нету комбинации продажа&Киев и покупка&Харьков. Исправим это, поменяв местами значения во втором наборе третьего столбца.

all pairs testing что это

Повторяем такие же манипуляции для колонок 4 и 5.

all pairs testing что это

Колонка Доставка является более проблематичной, ведь нам не хватает комбинаций на покупка&встреча и продажа&почтой чтобы не нарушать отсортированные данные, нужно ввести еще 2 тестовых случая для этих комбинаций. Значком тильды “

” мы маркируем переменные, которые выступают произвольными. Таким образом мы получаем следующую таблицу.

all pairs testing что это

Таким образом, мы получили готовые 8 тест-кейсов вместо 96.

Утилиты для автоматизации pairwise testing

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

Заключение

Суммируя все вышесказанное, pairwise testing — прекрасный метод для повышения эффективности написания тест-кейсов. Он значительно сокращает количество комбинаций, которые будут покрыты, но остается очень хорошим с точки зрения обнаружения неисправностей. Метод очень прост в использовании, для его эксплуатации достаточно лишь определиться с функционалом для проверки, исследовать выбранный сценарий и его параметры и применить алгоритм, который определит оптимальное число тестов с полным перебором пар.

Источник

Александр Александров про тренды и технологии тестирования, про влияние Covid19 на рынок QA

all pairs testing что это

Онлайн-тренинги

Что пишут в блогах (EN)

Blogposts:

Разделы портала

Про инструменты

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

Описание метода

Представьте себе, что вам нужно протестировать систему с большим числом параметров, влияющих на её работу. Ярким примером такого рода может быть конфигурационное тестирование: например проверка работы системы под различными операционными системами или работа сайта в различных браузерах. Кто знает, какое сочетание параметров приведет к сбою? Каждый тестировщик знает, что все комбинации не проверить. К примеру, для проверки всех сочетаний 10 параметров с 10 значениями каждый, потребуется 10,000,000,000 тестов, в то время как метод перебора пар позволяет реализовать сравнимое по качеству тестирование (учитывая количество и критичность найденных в результате багов) используя всего 177 тестов.

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

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

Рассмотрим как происходит оптимизация. Возьмем для примера таблицу параметров и значений следующего вида:

all pairs testing что это

Переберем значения первого параметра со вторым (строки №1-4), первого с третьим (строки №5-8) и второго с третьим (строки №9-12). Удалив повторяющиеся наборы параметров (выделены серым), получим следующую таблицу тестов:

all pairs testing что это

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

all pairs testing что это

Как видно из примера выше, оптимизация даже такого малого набора параметров не так проста как могло бы показаться. При этом сложность задачи возрастает пропорционально росту числа параметров. Однако эта задача решаема, в чем мы убедимся в последствии.

Применение

Как показывает опыт, метод эффективен лишь на поздних этапах разработки, либо дополненный основными функциональными тестами. Например, если вы проводите конфигурационное тестирование, то прежде чем использовать парное тестирование следует убедиться, что основной сценарий функционирует на всех операционных системах с параметрами по умолчанию (что-то типа BVT). Это значительно облегчит локализацию будущих багов, ведь при парном тестировании в одном тесте фигурирует множество параметров со значениями не по умолчанию, каждый из которых может стать причиной сбоя и его локализация в этом случае весьма затруднительна. А в случае провала BVT следует отказаться от использования метода парного тестирования, так как многие тесты будут провальными, а исключение даже одного теста влечет за собой потерю как правило нескольких пар и смысл использования метода теряется.

Поэтому метод следует использовать лишь на стабильном функционале, когда текущие тесты уже теряют свою эффективность.

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

1. Определиться с функциональностью, которую будем проверять

Как говаривал Козьма Прутков «Нельзя объять необъятное», поэтому прежде всего необходимо разделить функциональность на части: компоненты, функции, сценарии. Функциональность небольшой программы, например по записи дисков, упрощенно можно представить в виде всего двух сценариев: запись диска, стирание диска. Выбираем запись диска и переходим к следующему шагу.

2. Исследовать выбранный сценарий и выявить его параметры и их значения

На данном этапе следуют спросить себя, какие параметры сценария могут повлиять на его выполнение? В качестве параметров могут выступать как настройки самой программы, так и внешние факторы.

Упрощенно, параметры и их значения при записи диска можно представить в виде:

all pairs testing что это

Вы наверняка обратили внимание, что параметр «Скорость записи» имеет значения, недопустимые для “DVD”, как же быть?. У этой маленькой задачки, есть несколько вариантов решения, одно из которых – это разделить таблицу на две. Стоит учитывать, что на практике параметров в этом сценарии гораздо больше, и несостыковок, было бы значительно больше.

Итак, поделив таблицу по типу носителя получим:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *