почему можно применять попарное тестирование

Мысли о тестировании вслух

пятница, 11 июня 2010 г.

Что такое Pairwise Testing, и с чем его едят

почему можно применять попарное тестирование

полвозрастдети
1мужчинадо 25детей нет
2женщинадо 25детей нет
3мужчина25-60детей нет
4женщина25-60детей нет
5мужчинастарше 60детей нет
6женщинастарше 60детей нет
7мужчинадо 25дети есть
8женщинадо 25дети есть
9мужчина25-60дети есть
10женщина25-60дети есть
11мужчинастарше 60дети есть
12женщинастарше 60дети есть
полвозрастдети
1мужчинадо 25детей нет
2женщинадо 25дети есть
3мужчина25-60дети есть
4женщина25-60детей нет
5мужчинастарше 60детей нет
6женщинастарше 60дети есть

31 комментарий:

почему можно применять попарное тестирование

Несколько добавлений к статье.
1) Есть инструменты, которые умеют генерить комбинации по произвольному базисы (пары, тройки и тд).

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

4) Перед пименением этого метода, надо обязательно воспользоваться другими методами, такими как разбиение на класы эквивалентности.

5) Есть параметры на которые перемножать не надо. У нас например, это encoding. Если все умножать на encoding, то количество комбинаций резко возрастет, а толку от них нет. Поэтому такой параметр просто добавляется к уже сгнеренным комбинациям, не увеличивая их числа.

почему можно применять попарное тестирование

Спасибо, очень полезная статья!

Рада, если статья оказалась полезной 🙂

почему можно применять попарное тестирование

Я познакомился с «pairwise» когда искал тул для «автоматической генерации тестов» на основании комбинации входных параметров.
Но увы, сама идея хоть и красивая, но на практике утопичная (LeshaL описал некоторые причины). Возможно для некоторых случаев и будет польза от таких генераторов (с применением средств автоматизации тестирования).
Но на практике тестировщику никак не уйти от ручного выбора комбинаций входніх параметров и задания очерёдности их прогона.

Источник

Почему опасен метод попарного тестирования?

почему можно применять попарное тестирование

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

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

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

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

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

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

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

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

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

Источник

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

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

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

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

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

почему можно применять попарное тестирование

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

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

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

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

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

почему можно применять попарное тестирование

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

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

почему можно применять попарное тестирование

почему можно применять попарное тестирование

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

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

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

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

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

почему можно применять попарное тестирование

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

Pairwise testing

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

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

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

почему можно применять попарное тестирование

Monkey Testing

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

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

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

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

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

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

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

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

ЭтапРеализация pairwise тестирования
Определение параметровпочему можно применять попарное тестирование

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

Определение значенийпочему можно применять попарное тестирование

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

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

Построение таблицыпочему можно применять попарное тестирование

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

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

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

PICT pairwise testing

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

почему можно применять попарное тестирование

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

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

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

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

почему можно применять попарное тестирование

почему можно применять попарное тестирование

почему можно применять попарное тестирование

почему можно применять попарное тестирование

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

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

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

Недостатки PICT

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

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

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

Источник

Почему можно применять попарное тестирование

почему можно применять попарное тестирование почему можно применять попарное тестирование почему можно применять попарное тестирование

почему можно применять попарное тестирование почему можно применять попарное тестирование почему можно применять попарное тестирование почему можно применять попарное тестирование почему можно применять попарное тестирование

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

Продолжу хвастаться статусом книги.

I’m sticking with “bug” rather than adopt another word such as “fault,” which is the current fad in publications because:

почему можно применять попарное тестирование

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

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

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

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

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

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

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

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

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

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

почему можно применять попарное тестирование

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

почему можно применять попарное тестирование

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

почему можно применять попарное тестирование

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

Применение

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

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

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

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

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

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

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

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

почему можно применять попарное тестирование

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

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

Источник

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

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