Что такое тестирование ортогональных массивов? (Пример)

⚡ Умное резюме

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

  • 🎯 Главное обещание: Каждая пара уровней между любыми двумя факторами встречается как минимум один раз в сгенерированных результатах.
  • 🔢 Рейтинг: Массив записывается как LРаботает(Уровни)Факторы), поэтому L9(3⁴) означает девять запусков для четырех факторов трех уровней.
  • 📉 Масштаб сбережений: Четыре фактора на трех уровнях позволяют сократить количество исчерпывающих комбинаций с 81 до девяти ортогональных вариантов.
  • 🧮 Правило равновесия: Столбцы должны быть заполнены таким образом, чтобы никакие два фактора не изменялись одновременно, иначе таблица не будет ортогональной.
  • 🇧🇷 оснастка: GeneratorТакие системы, как PICT и ACTS, автоматически формируют массив, что исключает основной источник ошибок, связанных с ручным вводом данных.
  • ⚠️ Известный предел: Метод попарного покрытия не может обнаружить дефект, для обнаружения которого требуется одновременное наличие трех или более конкретных значений.

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

Тестирование ортогонального массива

Тестирование ортогональных массивов (OAT) Тестирование с использованием ортогональных массивов — это метод тестирования программного обеспечения, который использует ортогональные массивы для создания тестовых случаев. Это статистический подход к тестированию, и он особенно полезен, когда тестируемая система принимает большое количество входных данных. Тестирование с использованием ортогональных массивов максимизирует охват тестирования за счет сопоставления и комбинирования входных данных, поэтому система проверяется с помощью сравнительно меньшего количества тестовых случаев и за меньшее время выполнения.

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

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

Почему OAT (тестирование ортогональных массивов)?

В данном сценарии доставка качественного программного продукта заказчику стала сложной задачей из-за сложности кода.

В традиционном методе наборы тестов включают тестовые примеры, полученные из каждой комбинации входных значений и предварительных условий. В результате необходимо охватить n количество тестовых примеров.

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

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

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

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

Как представляется тестирование с использованием ортогональных массивов

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

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

  • Раны (Н) – Количество строк в массиве, которое соответствует количеству генерируемых тестовых случаев.
  • Факторы (К) – Количество столбцов в массиве, что соответствует максимальному числу переменных, которые могут быть обработаны.
  • Уровни (V) – Максимальное количество значений, которые может принимать любой отдельный фактор.

Обычно для одного фактора необходимо проверить от 2 до 3 входных параметров. Это максимальное количество входных параметров определяет уровни.

Читайте название массива слева направо. Л9(34) Цифра 9 обозначает количество серий, цифра 3 — количество уровней, которые может принимать каждый фактор, а верхний индекс 4 — количество факторов. В той же статье используется Л4(23), что составляет четыре запуска для трех факторов, каждый из которых имеет два уровня.

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

  • Баланс: Каждый уровень фактора встречается одинаковое количество раз в своем собственном столбце.
  • Попарная полнота: Для любых двух столбцов каждая комбинация одного уровня из каждого встречается одинаковое количество раз.

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

Как провести тестирование ортогональных массивов: примеры

  1. Определите независимую переменную для сценария.
  2. Найдите наименьший массив с количеством прогонов.
  3. Сопоставьте факторы с массивом.
  4. Выберите значения для любых «остаточных» уровней.
  5. Расшифруйте фрагменты песен. контрольные примеры, добавляя любые особенно подозрительные комбинации, которые не были сгенерированы.

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

Пример 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, представляют собой таблицы и могут быть скопированы напрямую, если количество факторов и уровней совпадает.

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

Преимущества тестирования с использованием ортогональных матриц

  • Гарантирует тестирование парных комбинаций всех выбранных переменных.
  • Уменьшает количество тестовых случаев.
  • Создает меньшее количество тестовых случаев, которые, тем не менее, охватывают взаимодействие каждой пары переменных.
  • Можно обработать сложную комбинацию переменных.
  • Его проще сгенерировать и он менее подвержен ошибкам, чем наборы тестов, созданные вручную.
  • Это полезно для Интеграционное тестированиеи одинаково полезны для тестирование конфигурациигде комбинации браузеров, операционных систем и устройств быстро увеличиваются в размерах.
  • Это повышает производительность за счет сокращения циклов тестирования и времени тестирования.

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

Недостатки тестирования с использованием ортогональных массивов.

  • По мере увеличения объема входных данных возрастает и сложность разработки тестовых сценариев. В результате увеличиваются трудозатраты и время, и тестировщикам приходится прибегать к различным методам. Автоматизация тестирования.
  • Попарное покрытие не является полным покрытием. Дефект, который проявляется только при одновременном появлении трех определенных значений, может пройти через весь массив без изменений.
  • Факторы с разным числом уровней не отображаются на стандартный массив корректно, поэтому необходим массив смешанных уровней или генератор покрывающих массивов.
  • Выбор уровней — это вопрос личного мнения. Если важное значение отсутствует во входной модели, ни один массив не сможет его восстановить.
  • Ограничения между значениями, например, способ оплаты, действительный только в одной стране, сложно выразить словами, и обычно это приводит к появлению некорректных строк, которые приходится удалять вручную.

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

Ошибки или ошибки при выполнении ОАТ

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

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

Часто задаваемые вопросы (FAQ)

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

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

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

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

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

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

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

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

Подведем итог этой публикации следующим образом: