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

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

.
Pairwise testing with PICT
30.01.2012 18:17

Автор: Алексей Федорко

Оригинальная публикация

Если в качестве инструмента у вас имеется лишь молоток, каждая проблема начинает напоминать гвоздь. Абрахам Маслоу

В этой небольшой заметке я бы хотел рассмотреть инструмент для попарного тестирования от Microsoft – PICT (Pairwise Independent Combinatorial Testing). Уже несколько раз я применял его в своей работе и был доволен теми гибкими опциями, которые он имеет.

Для начала неплохо вспомнить, что такое Pairwise Testing. Есть интересная статья про парное тестирование на MSDN. Также про это можно почитать тут. Вкратце, Pairwise testing – это техника формирования наборов тестовых данных. Заключается она в следующем: формируются такие наборы данных, в которых каждое тестируемое значение каждого из проверяемых параметров хотя бы единожды сочетается с каждым тестируемым значением всех остальных проверяемых параметров. Предыдущее предложение может быть не совсем понятным, но принцип можно легко проиллюстрировать на следующем примере. Представим, что у нас есть параметры A, B и C принимающие значения Yes или No. Максимальное количество комбинаций значений этих параметров – 8. Но при использовании попарного тестирования достаточно четырех комбинаций, так как учитываются все возможные пары параметров (пара A и B, пара B и C, пара A и C):

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

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

Type:          Primary, Logical, Single, Span, Stripe, Mirror, RAID-5
Size:          10, 100, 500, 1000, 5000, 10000, 40000
Format method: quick, slow
File system:   FAT, FAT32, NTFS
Cluster size:  512, 1024, 2048, 4096, 8192, 16384, 32768, 65536
Compression:   on, off

Существует больше 4700 комбинаций этих значений. Будет очень сложно протестировать из за разумное время. Исследования показывают, что тестирование всех пар возможных значений обеспечивает очень хорошее покрытие и количество тест кейсов остается в пределах разумного. К примеру, {Primary, FAT} это одна пара и {10, slow} другая; один тест кейс может покрывать много пар. Для набора приведенных выше параметров PICT создаст всего 60 тест кейсов (сравните с цифрой 4700!).

Рассмотрим работу с программой. Запускается PICT из командной строки.

На вход программа принимает простой текстовый файл с параметрами и их значениями, называемый Моделью, а на выход выдает сгенерированные тестовые сценарии.

Рассмотрим работу программы на примере из приведенной выше статьи из блога. Имеем следующие параметры и их значения: пол – мужской или женский; возраст – до 25, от 25 до 60, более 60; наличие детей – да или нет. Если перебирать все возможные значения, то количество сценариев будет 12. Составим модель и посмотрим какой результат нам выдаст программа.

Модель:

SEX: Male, Female
Age: Under 25, 25-60, Older than 60
Children: Yes, No

Используем модель и получим 7 тестовых сценариев (вместо 12):

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

Можно использовать прямой вывод и сохранение тест кейсов в Excel.

В результате будет создан Excel файл со следующим содержанием:

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

  1. Можно указывать порядок группировки значений. По умолчанию используется порядок 2 и создаются комбинации пар значений (что и составляет попарное тестирование). Но можно указать к примеру 3 и тогда будут использоваться триплеты, а не пары. Максимальный порядок для простой модели равен количеству параметров, что создаст набор всевозможных вариантов.
  2. Можно группировать параметры в под-модели и указывать им отдельный порядок для комбинаций. Это необходимо если комбинации определенных параметров должны быть протестированы более тщательно или должны быть объединены по отдельности от других параметров.
  3. Можно создавать условия и ограничения. К примеру, можно указать, что один из параметров будет принимать определенное значение только тогда, когда несколько других параметров примут нужные значения. Это позволяет отсечь создание ненужных проверок.
  4. Можно обозначать не-валидные значения для параметров для создания комбинации для негативных тест кейсов.
  5. Используя весовые коэффициенты можно указать программе отдавать предпочтения определенным значениям при генерации комбинаций.
  6. Можно использовать опцию минимизации (запускать программу несколько раз с этой опцией), чтобы получить минимальное количество тест кейсов.

В заключение хочется сказать, что PICT достаточно удобный инструмент для быстрого создания набора комбинаций тестовых данных, особенно при наличии большого количества не сильно связанных между собой параметров (что позволяет не проводить тестирование всех возможных вариантов). Однако нужно тщательно создать необходимую вам Модель, чтобы тестовое покрытие было удовлетворительным. Use it wise and be happy. :)

Скачать PICT можно тут

Обсудить в форуме