Лекция
попарное тестирование или попарный анализ (англ. pairwise testing) — это методика систематической комбинаторики тестов , обеспечивающая эффективное снижение количества тестов для проверки реакции системы на возможные комбинации значений ее входных параметров. Методика основана на статистическом предположении, что достаточно проверить все возможные значения пар входных параметров, чтобы выявить большинство дефектов системы зависимых от входных параметров. Для попарного тестирования используются алгоритмы, основанные на построении ортогональных массивов или на алгоритме всех пар (англ. All-Pairs). Они основываются на теоретических исследованиях в области комбинаторных алгоритмов, алгоритмов дискретной математики, в частности, латинских квадратов.Это метод, который позволяет уменьшить количество тестовых сценариев при проверке взаимодействия функций или параметров. Когда в системе много параметров, проверять все возможные комбинации слишком долго и дорого. Парное тестирование позволяет протестировать наиболее вероятные ошибки, используя минимум тест-кейсов.

Допустим, у нас есть форма регистрации, где нужно ввести:
Если тестировать ВСЕ возможные комбинации, получится:
3 × 3 × 2 = 18 тестов
Парное тестирование сокращает количество тестов
Оно учитывает, что многие баги возникают не из-за всех параметров вместе, а из-за их отдельных сочетаний. Достаточно убедиться, что каждая пара параметров проверяется хотя бы раз.
Пример набора тестов по Pairwise Testing:
| Тест | Браузер | ОС | Тип пользователя |
|---|---|---|---|
| 1 | Chrome | Windows | Новый |
| 2 | Chrome | macOS | Зарегистрированный |
| 3 | Chrome | Linux | Новый |
| 4 | Firefox | Windows | Зарегистрированный |
| 5 | Firefox | macOS | Новый |
| 6 | Firefox | Linux | Зарегистрированный |
| 7 | Edge | Windows | Новый |
| 8 | Edge | macOS | Зарегистрированный |
| 9 | Edge | Linux | Новый |
Теперь каждая ОС тестируется с каждым браузером хотя бы раз, но тестов всего 9 вместо 18!
Ортогональный массив (ортогональная таблица) — это таблица со следующими свойствами:
Ортогональный массив — это упорядоченная матрица чисел или символов, используемая для систематического анализа влияния нескольких факторов в экспериментах. Этот метод особенно полезен в планировании экспериментов (DOE), так как помогает исследователям выявлять взаимосвязи между переменными. Основной особенностью ортогонального массива является равномерное распределение комбинаций факторов, что обеспечивает сбалансированное представление всех возможных вариантов.
В смешанных ортогональных массивах параметры могут иметь разное количество значений.
Ортогональные массивы являются основой статистического планирования тестов методом Тагучи (англ. Taguchi methods, япон.
Для тестирования с использованием ортогональных массивов выполняют следующие шаги:
· определяют переменные для входных данных в комбинациях. К примеру, это могут быть названия опций, параметров настроек, допустимых конфигураций оборудования и т.д. П.
· определяют значения, которые могут принимать переменные. К примеру, конкретные названия пунктов меню, числовые значения, названия операционных систем или баз данных и т.д. П.
· строят ортогональный массив, который имеет столбец для каждой переменной. Обычно для этого используется любая программа, например STATISTICA.
· Каждая строка построенного массива интерпретируется как одна комбинация переменных значений для одного тестового случая.
All-Pairs Algorithm (алгоритм всех пар) – это комбинаторная методика, специально созданная для попарного тестирования. В ее основе лежит выбор комбинаций значений всех параметров, содержащих все возможные значения для каждой пары параметров. Исходя из определения при этом будет получено меньшее количество комбинаций, чем при использовании ортогональных массивов.
Для тестирования с использованием All-Pairs алгоритма выполняют следующие шаги:
Предположим, что необходимо протестировать систему с огромным числом характеристик, влияющих на ее работу. Примером такой задачи может быть проверка работы программного обеспечения на компьютерах различных конфигураций, например с разными операционными системами, или работа веб-страниц в разных браузерах. Чтобы проверить все возможные комбинации 10 входных параметров, каждый из 10 значения нужно выполнить тестов, что потребует значительных затрат времени и других ресурсов. Учитывая количество и критичность найденных дефектов можно используя метод парного тестирования и реализовать проверку достаточного качества используя всего 177 тестов.
Метод парного тестирования основан на простой идее, что подавляющее большинство дефектов оказывается проверкой одного или сочетанием двух параметров. Дефекты обнаружены комбинацией трех и более параметров как правило менее критичны, чем дефекты обнаружены паром или одним параметром.
Если нет необходимости проверять все пары, возможно оптимизировать ортогональные массивы и комбинируя проверки нескольких пар в одном тесте определить минимум тестов.
При оптимизации сложность задачи возрастает в зависимости от числа параметров, поскольку нужно учитывать их возможные взаимодействия.
Как показывает опыт, метод эффективен только на поздних этапах разработки или дополнен основными функциональными тестами. Например, если вы проводите конфигурационное тестирование, прежде чем использовать парное тестирование следует убедиться, что основной сценарий функционирует на всех операционных системах с параметрами по умолчанию. Это значительно облегчит локализацию будущих багов, ведь при четном тестировании в одном тесте фигурирует множество параметров со значениями не по умолчанию, каждый из которых может стать причиной сбоя и его локализация в этом случае достаточно затруднительна.
Поэтому метод следует использовать только на стабильном функционале, когда текущие тесты теряют свою эффективность.
Для того чтобы воспользоваться методом, необходимо выполнить несколько простых шагов:
1. Определиться с функциональностью для проверки;
Прежде всего, необходимо разделить функциональность на части: компоненты, функции, сценарии. Функциональность небольшой программы, например по записи дисков, упрощенно можно представить в виде всего двух сценариев: запись диска, стирание диска. Выбираем запись диска и переходим к следующему шагу.
2. Исследовать выбранный сценарий и выявить его параметры и их значение
Определить, какие параметры сценария могут повлиять на его выполнение.
3. Применить алгоритм, составляющий оптимальное число тестов с полным перебором пар.
В результате мы имеем достаточно специфическую методику с четко выраженной областью применения. Не слишком гибкую и слабо применимую при большом количестве зависимостей между параметрами, но в умелых руках весьма эффективна.
В качестве входных данных для программы используется файл .txt с таблицей параметров, столбцы которой разделены табуляцией. Для создания такого файла удобнее всего использовать MS Excel – там есть возможность хранить «текстовые файлы с разделителями табуляции (*.txt)».
|
TEST CASES |
|||||
|
case |
OS |
SQL version |
Use of Java |
pairings |
|
|
1 |
Win XP |
SQL 2003 |
w Java |
3 |
|
|
2 |
Win XP |
SQL 2005 |
w/o Java |
3 |
|
|
3 |
Win Vista |
SQL 2003 |
w/o Java |
3 |
|
|
4 |
Win Vista |
SQL 2005 |
w Java |
3 |
|
|
PAIRING DETAILS |
|||||
|
var1 |
var2 |
value1 |
value2 |
appearances |
cases |
|
OS |
SQL version |
Win XP |
SQL 2003 |
1 |
1 |
|
OS |
SQL version |
Win XP |
SQL 2005 |
1 |
2 |
|
OS |
SQL version |
Win Vista |
SQL 2003 |
1 |
3 |
|
OS |
SQL version |
Win Vista |
SQL 2005 |
1 |
4 |
|
OS |
Use of Java |
Win XP |
w Java |
1 |
1 |
|
OS |
Use of Java |
Win XP |
w/o Java |
1 |
2 |
|
OS |
Use of Java |
Win Vista |
w Java |
1 |
4 |
|
OS |
Use of Java |
Win Vista |
w/o Java |
1 |
3 |
|
SQL version |
Use of Java |
SQL 2003 |
w Java |
1 |
1 |
|
SQL version |
Use of Java |
SQL 2003 |
w/o Java |
1 |
3 |
|
SQL version |
Use of Java |
SQL 2005 |
w Java |
1 |
4 |
|
SQL version |
Use of Java |
SQL 2005 |
w/o Java |
1 |
2 |
Пара - количество уникальных пар в тест-кейсе.
Парные детали — список всех пар всех параметров
Появление — количество раз, сколько та или иная пара фигурирует в Кейсе
Случаи – номера Кейс, где фигурирует данная пара
Вывод: Парное тестирование экономит время, проверяя самые важные комбинации параметров, которые чаще всего приводят к багам.
Комментарии
Оставить комментарий
Качество и тестирование программного обеспечения. Quality Assurance.
Термины: Качество и тестирование программного обеспечения. Quality Assurance.