Что такое тестирование ортогональных массивов? (Пример)
⚡ Умное резюме
Тестирование с использованием ортогональных массивов — это метод «черного ящика», который использует статистические массивы для построения компактного набора тестовых случаев, охватывающего каждую пару входных значений с гораздо меньшим количеством тестовых случаев, чем требуется для исчерпывающего комбинированного тестирования.

Тестирование ортогонального массива
Тестирование ортогональных массивов (OAT) Тестирование с использованием ортогональных массивов — это метод тестирования программного обеспечения, который использует ортогональные массивы для создания тестовых случаев. Это статистический подход к тестированию, и он особенно полезен, когда тестируемая система принимает большое количество входных данных. Тестирование с использованием ортогональных массивов максимизирует охват тестирования за счет сопоставления и комбинирования входных данных, поэтому система проверяется с помощью сравнительно меньшего количества тестовых случаев и за меньшее время выполнения.
Например, при проверке железнодорожного билета необходимо проверить такие факторы, как количество пассажиров, номер билета, номера мест и номера поезда. Проверка каждого фактора по отдельности — трудоемкий процесс. Более эффективно, когда инженер по контролю качества объединяет несколько входных данных и проверяет их за один проход. В таких случаях можно использовать метод тестирования с помощью ортогональных массивов.
Такой способ объединения или сопоставления входных данных для экономии времени называется попарным тестированием, а метод OATS — один из способов создания набора попарных тестов. Поскольку этот метод работает исключительно на основе входных значений и ожидаемых результатов, без какого-либо анализа внутреннего кода, он относится к... тестирование черного ящика семьи.
Почему OAT (тестирование ортогональных массивов)?
В данном сценарии доставка качественного программного продукта заказчику стала сложной задачей из-за сложности кода.
В традиционном методе наборы тестов включают тестовые примеры, полученные из каждой комбинации входных значений и предварительных условий. В результате необходимо охватить n количество тестовых примеров.
Однако в реальных условиях у тестировщиков не будет времени на выполнение всех тестовых случаев для выявления дефектов, поскольку в рамках этапа тестирования необходимо учитывать и другие виды деятельности, такие как документирование, предложения и отзывы клиентов.
Следовательно, менеджеры по тестированию хотели оптимизировать количество и качество тестовых случаев, чтобы обеспечить максимальную эффективность. Тестирование с минимальными усилиями. Эти усилия называются оптимизацией тестовых случаев.
- Систематический и статистический способ проверки парных взаимодействий.
- Точки взаимодействия и интеграции являются основным источником дефектов.
- Выполните четко определенный, лаконичный набор тестовых случаев, которые, скорее всего, выявят большинство (но не все) ошибок.
- Ортогональный подход гарантирует попарное покрытие всех переменных.
Таким образом, этот метод дополняет другие методы сокращения входных данных, которые уже используются командой. Разделение на эквивалентные категории и анализ граничных значений Определяет, какие значения стоит проверять для одного поля; ортогональные массивы определяют, какие из этих значений следует проверять вместе.
Как представляется тестирование с использованием ортогональных массивов
Ортогональная матрица описывается короткой формулой, а не её содержимым. На диаграмме ниже показано, как три величины в этой формуле соотносятся с формой матрицы.
- Раны (Н) – Количество строк в массиве, которое соответствует количеству генерируемых тестовых случаев.
- Факторы (К) – Количество столбцов в массиве, что соответствует максимальному числу переменных, которые могут быть обработаны.
- Уровни (V) – Максимальное количество значений, которые может принимать любой отдельный фактор.
Обычно для одного фактора необходимо проверить от 2 до 3 входных параметров. Это максимальное количество входных параметров определяет уровни.
Читайте название массива слева направо. Л9(34) Цифра 9 обозначает количество серий, цифра 3 — количество уровней, которые может принимать каждый фактор, а верхний индекс 4 — количество факторов. В той же статье используется Л4(23), что составляет четыре запуска для трех факторов, каждый из которых имеет два уровня.
Два свойства обеспечивают ортогональность массива, и оба должны выполняться, прежде чем подсчету последовательностей можно будет доверять:
- Баланс: Каждый уровень фактора встречается одинаковое количество раз в своем собственном столбце.
- Попарная полнота: Для любых двух столбцов каждая комбинация одного уровня из каждого встречается одинаковое количество раз.
Если второе свойство не выполняется, таблица представляет собой просто укороченный набор тестовых данных, а не ортогональный массив, и попарная гарантия, оправдывающая сокращение, больше не применяется.
Как провести тестирование ортогональных массивов: примеры
- Определите независимую переменную для сценария.
- Найдите наименьший массив с количеством прогонов.
- Сопоставьте факторы с массивом.
- Выберите значения для любых «остаточных» уровней.
- Расшифруйте фрагменты песен. контрольные примеры, добавляя любые особенно подозрительные комбинации, которые не были сгенерированы.
В двух приведенных ниже примерах эти пять шагов применяются сначала к небольшой задаче с двумя уровнями, а затем к более крупной задаче с тремя уровнями.
Пример 1
Веб-страница состоит из трех отдельных разделов (верхний, средний, нижний), которые могут отображаться или скрываться от пользователя по отдельности.
- Количество факторов = 3 (верхний, средний, нижний)
- Количество уровней (видимость) = 2 (скрыто или показано)
- Тип массива = L4(2)3)
(4 — это количество запусков, полученных после создания массива OAT)
Если мы выберем традиционный метод изменения одного раздела за раз, нам потребуется 2 x 3 = 6 тестовых случаев.
| Тестовые кейсы | Сценарии | Значения, подлежащие проверке |
|---|---|---|
| Тест #1 | HIDDEN | Топ |
| Тест #2 | ПОКАЗАН | Топ |
| Тест #3 | HIDDEN | Дно |
| Тест #4 | ПОКАЗАН | Дно |
| Тест #5 | HIDDEN | средняя |
| Тест #6 | ПОКАЗАН | средняя |
Эти шесть запусков варьируют один участок за раз и никогда не помещают два участка в выбранное состояние одновременно. Проверка каждой комбинации заняла бы 2 дня.3 = 8 забегов.
Если мы перейдем к тестированию OAT, нам понадобятся 4 тестовых примера, как показано ниже:
| Тестовые кейсы | ТОП | средняя | Дно |
|---|---|---|---|
| Тест #1 | Скрытый | Скрытый | Скрытый |
| Тест #2 | Скрытый | Видимый | Видимый |
| Тест #3 | Видимый | Скрытый | Видимый |
| Тест #4 | Видимый | Видимый | Скрытый |
Проверьте любые два столбца этой таблицы, и все четыре пары "Скрытое/Видимое" появятся ровно один раз, что является свойством ортогональности в его наименьшей форме.
Пример 2
Функциональность микропроцессора должна быть проверена:
- Температура: 100С, 150С и 200С.
- Давление: 2 psi, 5 psi и 8 psi
- Doping Сумма: 4%, 6% и 8%
- Скорость осаждения: 0.1 мг/с, 0.2 мг/с и 0.3 мг/с
При использовании традиционного метода нам потребуется 34 = 81 тестовый случай для охвата всех входных данных. Давайте вместо этого воспользуемся методом OATS:
Количество факторов = 4 (температура, давление, d).ping сумма и ставка депозита)
Уровни = 3 уровня на каждый фактор (температура имеет 3 уровня – 100°C, 150°C и 200°C – и аналогично остальные факторы также имеют по 3 уровня каждый).
Создайте массив, как показано ниже:
1. Столбцы с количеством факторов
| Прецедент # | Температура | Давление | Doping количество | Скорость осаждения |
|---|
2. Введите количество строк, равное количеству уровней на каждый фактор. То есть температура имеет 3 уровня. Следовательно, вставьте 3 строки для каждого уровня температуры.
| Прецедент # | Температура | Давление | Doping количество | Скорость осаждения |
|---|---|---|---|---|
| 1 | 100C | |||
| 2 | 100C | |||
| 3 | 100C | |||
| 4 | 150C | |||
| 5 | 150C | |||
| 6 | 150C | |||
| 7 | 200C | |||
| 8 | 200C | |||
| 9 | 200C |
3. Теперь разделите давление, сделайтеping количество и скорость осаждения в колонках.
Например: введите 2 psi для температур 100°C, 150°C и 200°C, а также введите do.ping 4% от 100°C, 150°C, 200°C и так далее.
| Прецедент # | Температура | Давление | Doping количество | Скорость осаждения |
|---|---|---|---|---|
| 1 | 100C | 2 PSI | 4% | 0.1 мг/с |
| 2 | 100C | 5 PSI | 6% | 0.2 мг/с |
| 3 | 100C | 8 PSI | 8% | 0.3 мг/с |
| 4 | 150C | 2 PSI | 4% | 0.1 мг/с |
| 5 | 150C | 5 PSI | 6% | 0.2 мг/с |
| 6 | 150C | 8 PSI | 8% | 0.3 мг/с |
| 7 | 200C | 2 PSI | 4% | 0.1 мг/с |
| 8 | 200C | 5 PSI | 6% | 0.2 мг/с |
| 9 | 200C | 8 PSI | 8% | 0.3 мг/с |
Следовательно, в открытом доступе нам нужно охватить 9 тестовых случаев.
Примечание о точности: Заполнение оставшихся трех столбцов вертикально вниз, как в шаге 3, повторяет то же давление, затемping и осаждение втрое внутри каждого температурного блока. Давление и делаютping Таким образом, значения перемещаются вместе, и пары, такие как 2 psi с 6%, никогда не появляются, поэтому девять строк выше представляют собой сокращенный тестовый набор, а не истинный ортогональный массив. Сбалансированный L9(3)4Приведенный ниже массив сохраняет те же девять запусков, охватывая при этом все девять пар уровней между каждыми двумя факторами.
| Прецедент # | Температура | Давление | Doping количество | Скорость осаждения |
|---|---|---|---|---|
| 1 | 100C | 2 PSI | 4% | 0.1 мг/с |
| 2 | 100C | 5 PSI | 6% | 0.2 мг/с |
| 3 | 100C | 8 PSI | 8% | 0.3 мг/с |
| 4 | 150C | 2 PSI | 6% | 0.3 мг/с |
| 5 | 150C | 5 PSI | 8% | 0.1 мг/с |
| 6 | 150C | 8 PSI | 4% | 0.2 мг/с |
| 7 | 200C | 2 PSI | 8% | 0.2 мг/с |
| 8 | 200C | 5 PSI | 4% | 0.3 мг/с |
| 9 | 200C | 8 PSI | 6% | 0.1 мг/с |
Тестирование с использованием ортогональных массивов против попарного (всех пар) тестирования
В большинстве команд эти два термина используются взаимозаменяемо, однако они не идентичны. Оба направлены на охват пар значений, но различаются степенью строгости ограничений, накладываемых на результирующую таблицу.
| Аспект | Тестирование ортогональных массивов | Попарное (для всех пар) тестирование |
|---|---|---|
| Базовая структура | Ортогональная матрица, заимствованная из планирования экспериментов. | Покрывающий массив, сгенерированный алгоритмом поиска. |
| Правило покрытия | Каждая пара встречается одинаковое количество раз. | Каждая пара появляется как минимум один раз. |
| Факторы с неравными уровнями | Требуется массив смешанного уровня, который может отсутствовать в требуемой форме. | Обрабатывается непосредственно генератором. |
| Типичное количество бросков | Равно или немного выше, из-за требования к балансу. | Равные или более низкие значения при одинаковых входных параметрах. |
| Ограничения между значениями | Сложно выразить внутри массива. | Поддерживается большинством современных генераторов. |
На практике сбалансированная ортогональная матрица является более наглядной моделью обучения и более безопасным выбором, когда факторы имеют одинаковый уровень значимости, в то время как покрывающая матрица — это то, что большинство инструментов создают для реальных проектов с неудобными, неравными входными данными. Обе матрицы дополняют друг друга. тестирование таблиц решений и тестирование перехода состоянийкоторые ориентированы на бизнес-правила и последовательность действий, а не на комбинации значений.
Инструменты тестирования ортогональных массивов
Создание массива вручную целесообразно только для приведенных выше небольших примеров. При наличии более четырех-пяти факторов команды используют генератор, и инструмент сам определяет количество запусков.
- КАРТИНКА: генератор командной строки с открытым исходным кодом от MicrosoftПараметры и их значения записываются в текстовый файл модели, и инструмент выводит набор комбинаций. Поддерживаются ограничения и подмодели, что важно, когда определенные пары значений недопустимы. См. репозиторий PICT.
- ДЕЯНИЯ: Исследовательский инструмент от NIST, который генерирует массивы покрытия для двустороннего и до шестистороннего покрытия, а также публикует библиотеку предварительно вычисленных массивов. Он доступен по адресу [ссылка на инструмент]. Проект комбинаторного тестирования NIST.
- Коммерческие комбинаторные платформы: размещенные инструменты добавляют требование tracУдобство, ожидаемые результаты и экспорт в систему управления тестированием, что подходит для больших команд, которым необходим журнал аудита.
- Опубликованные библиотеки массивов: Стандартные массивы, такие как L4, L8, L9, L16 и L18, представляют собой таблицы и могут быть скопированы напрямую, если количество факторов и уровней совпадает.
Какой бы инструмент ни создавал таблицу, сгенерированные строки все равно необходимо преобразовать в функциональные тестовые сценарии с реальными данными и ожидаемыми результатами, а затем запланировать их выполнение, как и любой другой пакет программ внутри системы. методы тестирования программного обеспечения Уже используется в проекте.
Преимущества тестирования с использованием ортогональных матриц
- Гарантирует тестирование парных комбинаций всех выбранных переменных.
- Уменьшает количество тестовых случаев.
- Создает меньшее количество тестовых случаев, которые, тем не менее, охватывают взаимодействие каждой пары переменных.
- Можно обработать сложную комбинацию переменных.
- Его проще сгенерировать и он менее подвержен ошибкам, чем наборы тестов, созданные вручную.
- Это полезно для Интеграционное тестированиеи одинаково полезны для тестирование конфигурациигде комбинации браузеров, операционных систем и устройств быстро увеличиваются в размерах.
- Это повышает производительность за счет сокращения циклов тестирования и времени тестирования.
Экономия средств в течение регрессионное тестированиеПотому что меньший по размеру сбалансированный набор тестов достаточно дешев, чтобы запускать его повторно в каждом цикле, тогда как исчерпывающий комбинированный набор тестов обычно запускается один раз, а затем незаметно отбрасывается.
Недостатки тестирования с использованием ортогональных массивов.
- По мере увеличения объема входных данных возрастает и сложность разработки тестовых сценариев. В результате увеличиваются трудозатраты и время, и тестировщикам приходится прибегать к различным методам. Автоматизация тестирования.
- Попарное покрытие не является полным покрытием. Дефект, который проявляется только при одновременном появлении трех определенных значений, может пройти через весь массив без изменений.
- Факторы с разным числом уровней не отображаются на стандартный массив корректно, поэтому необходим массив смешанных уровней или генератор покрывающих массивов.
- Выбор уровней — это вопрос личного мнения. Если важное значение отсутствует во входной модели, ни один массив не сможет его восстановить.
- Ограничения между значениями, например, способ оплаты, действительный только в одной стране, сложно выразить словами, и обычно это приводит к появлению некорректных строк, которые приходится удалять вручную.
Ни одно из этих ограничений не исключает возможности применения данной методики; они лишь определяют её границы. Ортогональные массивы уменьшают проблему комбинирования, в то время как анализ рисков и тестирование предметной области определить, какие факторы вообще заслуживают места в модели.
Ошибки или ошибки при выполнении ОАТ
- Направление усилий по тестированию не на ту область приложения.
- Выбор неподходящих параметров для объединения.
- Использование ортогональных массивов для тестирования, когда набор входных данных достаточно мал, чтобы провести исчерпывающее тестирование.
- Применение ортогональных массивов вручную к модели, достаточно большой, чтобы для её создания потребовался генератор.
- Использование исключительно ортогональных матричных методов тестирования в приложениях с высоким риском, где требуется более глубокое покрытие, нецелесообразно.
Последний пункт на практике наносит наибольший ущерб. В случае критически важных с точки зрения безопасности или финансовых показателей, попарное множество представляет собой нижний предел, а не верхний, и обычно дополняется целевыми случаями на тестирование системы на одном уровне и в соответствии с более широким планом, описанным в виды тестирования ПО.

