Какво е тестване на ортогонален масив? (Пример)

⚡ Умно обобщение

Ортогоналното тестване на масиви е техника на „черна кутия“, която използва статистически масиви за изграждане на компактен тестов набор, покриващ всяка двойка входни стойности с много по-малко тестови случаи, отколкото изисква изчерпателното комбинирано тестване.

  • 🎯 Основно обещание: Всяка двойка нива между два фактора се появява поне веднъж в генерираните изпълнения.
  • 🔢 нотация: Масивът се записва като LПисти(НиваФактори), така че L9(3⁴) означава девет пробега за четири тристепенни фактора.
  • 📉 Мащаб на спестяване: Четири фактора на три нива, всеки от които се свежда от 81 изчерпателни комбинации до девет ортогонални серии.
  • 🧮 Правило за баланс: Колоните трябва да бъдат попълнени така, че два фактора да не се движат заедно, в противен случай таблицата не е ортогонална.
  • 🛠️ Инструментална: GeneratorСистеми като PICT и ACTS изграждат масива автоматично, което елиминира основния източник на ръчни грешки.
  • ⚠️ Известен лимит: Покритието по двойки не може да открие дефект, който изисква три или повече специфични стойности заедно.

Ортогонално тестване на масиви, редуциращо входните комбинации до малък балансиран набор от тестови случаи

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

Тестване на ортогонален масив (OAT) е техника за тестване на софтуер, която използва ортогонални масиви за създаване на тестови случаи. Това е статистически подход за тестване и е особено полезен, когато тестваната система приема голям брой входни данни. Ортогоналното тестване на масиви максимизира тестовото покритие чрез сдвояване и комбиниране на входните данни, така че системата се упражнява със сравнително по-малко тестови случаи и по-малко време за изпълнение.

Например, когато трябва да се провери билет за влак, трябва да се тестват фактори като брой пътници, номер на билет, номера на седалките и номера на влаковете. Тестването на всеки фактор един по един е тромаво. По-ефективно е, когато QA инженерът комбинира няколко входни данни заедно и ги тества наведнъж. В такива случаи можем да използваме метода за тестване с ортогонален масив.

Този тип сдвояване или комбиниране на входни данни за пестене на време се нарича Pairwise testing (тестване по двойки), а техниката OATS е един от начините за създаване на набор от тестове по двойки. Тъй като техниката работи единствено въз основа на входните стойности и очакваните резултати, без никакъв поглед върху вътрешния код, тя принадлежи към... тестване на черна кутия семейство.

Защо OAT (тестване на ортогонален масив)?

В настоящия сценарий доставянето на качествен софтуерен продукт на клиента стана предизвикателство поради сложността на кода.

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

Но в реален сценарий тестерите няма да имат свободното време да изпълнят всички тестови случаи, за да открият дефектите, тъй като има други дейности, като документация, предложения и обратна връзка от клиента, които трябва да бъдат взети предвид във фазата на тестване.

Следователно мениджърите на тестовете искаха да оптимизират броя и качеството на тестовите случаи, за да осигурят максимум Тестово покритие с минимални усилия. Това усилие се нарича оптимизация на тестови случаи.

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

Следователно, техниката е редом с другите методи за намаляване на вложенията, които екипът вече използва. Разделяне на еквивалентност и анализ на гранични стойности решите кои стойности си струва да се тестват за едно поле; ортогоналните масиви решават кои от тези стойности трябва да се тестват заедно.

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

Ортогоналният масив се описва с кратка формула, а не със съдържанието си. Диаграмата по-долу показва как трите величини в тази формула се свързват с формата на масива.

Ортогонална нотация на масиви, показваща серии, фактори и нива във формулата L(Runs)

  • Бягания (N) – Брой редове в масива, което се превежда в броя на генерираните тестове.
  • Фактори (K) – Брой колони в масива, което се превежда в максималния брой променливи, които могат да бъдат обработени.
  • Нива (V) – Максимален брой стойности, които могат да се приемат за всеки един фактор.

Един фактор обикновено има 2 до 3 входа за тестване. Този максимален брой входове определя нивата.

Прочетете името на масива отляво надясно. В Л9(3)4) 9 е броят на повторенията, 3 е броят нива, които всеки фактор може да приеме, а горният индекс 4 е броят на факторите. В същата статия се използва Л4(2)3), което е четири цикъла за три фактора, всеки от които има две нива.

Две свойства правят масива ортогонален и и двете трябва да са валидни, преди да може да се довери броят на изпълненията:

  • Баланс: Всяко ниво на даден фактор се появява еднакъв брой пъти в собствената си колона.
  • Пълнота по двойки: За всеки две колони всяка комбинация от едно ниво от всяка се появява еднакъв брой пъти.

Ако второто свойство не е изпълнено, таблицата е просто съкратен тестов набор, а не ортогонален масив, и гаранцията за двойки, която оправдава намаляването, вече не важи.

Как да направите тестване на ортогонален масив: Примери

  1. Идентифицирайте независимата променлива за сценария.
  2. Намерете най-малкия масив с броя изпълнения.
  3. Картирайте факторите към масива.
  4. Изберете стойностите за всички „остатъчни“ нива.
  5. Транскрибирайте бяганията в тестови случаи, добавяйки всички особено подозрителни комбинации, които не са генерирани.

Двата примера по-долу прилагат тези пет стъпки, първо към малък проблем на две нива, а след това към по-голям проблем на три нива.

Пример 1

Уеб страницата има три отделни секции (горна, средна, долна), които могат да бъдат показвани или скривани поотделно от потребителя.

  • Брой фактори = 3 (отгоре, от средата, отдолу)
  • Брой нива (видимост) = 2 (скрити или показани)
  • Тип масив = L4(23)

(4 е броят изпълнения, получени след създаването на OAT масива)

Ако използваме конвенционалната техника за промяна на една секция наведнъж, ще ни трябват тестови случаи, като например 2 X 3 = 6 тестови случая.

Тестови Случаи Сценарии Стойности, които трябва да бъдат тествани
Тест #1 СКРИТА Топ
Тест #2 ПОКАЗАНИ Топ
Тест #3 СКРИТА дъно
Тест #4 ПОКАЗАНИ дъно
Тест #5 СКРИТА Среден
Тест #6 ПОКАЗАНИ Среден

Тези шест цикъла променят по една секция наведнъж и никога не поставят две секции в избрано състояние едновременно. Тестването на всяка комбинация вместо това би отнело 23 = 8 бягания.

Ако отидем на OAT тестване, имаме нужда от 4 тестови случая, както е показано по-долу:

Тестови Случаи TOP Среден дъно
Тест #1 Скрит Скрит Скрит
Тест #2 Скрит Видим Видим
Тест #3 Видим Скрит Видим
Тест #4 Видим Видим Скрит

Проверете произволни две колони от тази таблица и всичките четири двойки Скрити/Видими се появяват точно веднъж, което е свойството ортогоналност в най-малката му форма.

Пример 2

Функционалността на микропроцесора трябва да бъде тествана:

  • Температура: 100C, 150C и 200C.
  • Налягане: 2 psi, 5 psi и 8 psi
  • Doping Сума: 4%, 6% и 8%
  • Скорост на отлагане: 0.1 мг/сек, 0.2 мг/сек и 0.3 мг/сек

Използвайки конвенционалния метод, се нуждаем от 34 = 81 тестови случая, за да покрием всички входни данни. Нека вместо това работим с метода OATS:

Брой фактори = 4 (температура, налягане,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 за температури 100C, 150C и 200C, по същия начин въведете doping количество 4% за 100C, 150C и 200C и така нататък.

Тестов случай # температура Налягане Doping размер Скорост на отлагане
1 100C 2 пси 4% 0.1 mg/s
2 100C 5 пси 6% 0.2 mg/s
3 100C 8 пси 8% 0.3 mg/s
4 150C 2 пси 4% 0.1 mg/s
5 150C 5 пси 6% 0.2 mg/s
6 150C 8 пси 8% 0.3 mg/s
7 200C 2 пси 4% 0.1 mg/s
8 200C 5 пси 6% 0.2 mg/s
9 200C 8 пси 8% 0.3 mg/s

Следователно в OA имаме нужда от 9 тестови случая, които да покрием.

Забележка за точност: запълвайки останалите три колони право надолу, както прави стъпка 3, повтаряйки същото налягане, направетеping и отлагането се утроява във всеки температурен блок. Налягане иping Следователно количеството се движи заедно и двойки като 2 psi с 6% никога не се появяват, така че деветте реда по-горе са редуциран тестов набор, а не истински ортогонален масив. Балансираният L9(34) масивът по-долу запазва същите девет серии, като същевременно покрива всичките девет двойки нива между всеки два фактора.

Тестов случай # температура Налягане Doping размер Скорост на отлагане
1 100C 2 пси 4% 0.1 mg/s
2 100C 5 пси 6% 0.2 mg/s
3 100C 8 пси 8% 0.3 mg/s
4 150C 2 пси 6% 0.3 mg/s
5 150C 5 пси 8% 0.1 mg/s
6 150C 8 пси 4% 0.2 mg/s
7 200C 2 пси 8% 0.2 mg/s
8 200C 5 пси 4% 0.3 mg/s
9 200C 8 пси 6% 0.1 mg/s

Ортогонално тестване на масиви срещу тестване по двойки (всички двойки)

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

Аспект Тестване на ортогонални масиви Тестване по двойки (всички двойки)
Основна структура Ортогонален масив, заимстван от дизайна на експериментите Покриващ масив, генериран от алгоритъм за търсене
Правило за покритие Всяка двойка се появява равен брой пъти Всяка двойка се появява поне веднъж
Фактори с неравномерни нива Необходим е масив от смесени нива, който може да не съществува за необходимата форма Управлява се директно от генератора
Типичен брой изпълнения Равно или малко по-високо, поради изискването за баланс Равно или по-ниско за едни и същи входни данни
Ограничения между стойностите Трудно е да се изрази в масива Поддържа се от повечето съвременни генератори

На практика, балансираният ортогонален масив е по-ясният модел на обучение и по-безопасният избор, когато факторите споделят едно и също ниво на брой, докато покриващ масив е това, което повечето инструменти създават за реални проекти с неудобни, неравномерни входни данни. И двата се допълват взаимно. тестване на таблицата с решения намлява тестване на прехода на състоянието, които са насочени към бизнес правила и последователност, а не към комбинации от стойности.

Инструменти за тестване на ортогонални масиви

Ръчното изграждане на масив е практично само за малките примери по-горе. След четири или пет фактора екипите използват генератор, а инструментът определя броя на изпълненията вместо тях.

  • СНИМКА: генератор на команден ред с отворен код от MicrosoftПараметрите и техните стойности се записват в обикновен текстов файл с модел и инструментът отпечатва набора от комбинации. Поддържат се ограничения и подмодели, което е важно, когато определени двойки стойности са невалидни. Вижте PICT хранилище.
  • ДЕЯНИЯ: изследователски инструмент от NIST, който генерира покриващи масиви за двупосочно до шестпосочно покритие, а също така публикува библиотека от предварително изчислени масиви. Той е достъпен от Проект за комбинаторно тестване на NIST.
  • Търговски комбинаторни платформи: хоствани инструменти добавят изискване tracлекота, очаквани резултати и експортиране в система за управление на тестове, която е подходяща за по-големи екипи, нуждаещи се от одитна следа.
  • Публикувани библиотеки за масиви: Стандартни масиви като L4, L8, L9, L16 и L18 са таблични и могат да бъдат копирани директно, когато броят на факторите и нивата съвпада.

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

Предимства на ортогоналното тестване на масиви

  • Гарантира тестване на комбинациите по двойки на всички избрани променливи.
  • Намалява броя на тестовите случаи.
  • Създава по-малко тестови случаи, които все още обхващат взаимодействието на всяка двойка променливи.
  • Може да се обработи сложна комбинация от променливи.
  • По-лесен за генериране и по-малко податлив на грешки от тестови набори, създадени на ръка.
  • Полезен е за Тестване на интеграциятаи еднакво полезни за тестване на конфигурацията, където комбинациите от браузъри, операционни системи и устройства се умножават бързо.
  • Подобрява производителността поради намалени тестови цикли и времена за тестване.

Спестяващите съединения по време на регресионно тестване, защото по-малкият балансиран пакет е достатъчно евтин, за да се изпълнява повторно всеки цикъл, докато изчерпателният комбиниран пакет обикновено се изпълнява веднъж и след това тихо се изоставя.

Недостатъци на тестването с ортогонални масиви

  • С увеличаването на входните данни, сложността на дизайна на тестовия случай се увеличава. В резултат на това ръчните усилия и времето, изразходвани за тестване, се увеличават и тестерите трябва да се стремят към... Тестване на автоматизацията.
  • Покритието по двойки не е пълно покритие. Дефект, който се появява само когато три специфични стойности се появят заедно, може да премине през масива незасегнат.
  • Фактори с различен брой нива не се преобразуват чисто в стандартен масив, така че е необходим масив със смесени нива или генератор на покриващи масиви.
  • Изборът на нива е въпрос на преценка. Ако дадена важна стойност е пропусната във входния модел, никой масив не може да я възстанови.
  • Ограниченията между стойностите, като например метод на плащане, който е валиден само в една държава, са неудобни за изразяване и обикновено водят до невалидни редове, които трябва да бъдат премахнати ръчно.

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

Грешки или грешки при извършване на OAT

  • Насочване на усилията за тестване към грешната област на приложението.
  • Избор на грешни параметри за комбиниране.
  • Използване на ортогонално тестване на масиви, където входният набор е достатъчно малък за изчерпателно тестване.
  • Ръчно прилагане на тестване на ортогонални масиви върху модел, достатъчно голям, за да се нуждае от генератор.
  • Разчитане единствено на ортогонално тестване на решетки за приложения с висок риск, където се изисква по-задълбочено покритие.

Последният елемент е този, който причинява най-големи щети на практика. При критична за безопасността или финансова характеристика, двойният набор е долна граница, а не горна граница, и обикновено се допълва с целеви случаи на системно тестване ниво и с по-широкия план, описан в видове софтуерно тестване.

Въпроси и Отговори

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

Тестерът изгражда входния модел, обикновено с бизнес анализатор, който потвърждава кои стойности са валидни. Разработчиците допринасят, когато даден параметър е вътрешен, като например настройка на кеша. Качеството на модела, а не масивът, определя стойността на пакета.

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

Необходим е масив със смесено ниво, например L18, който смесва колони от две и три нива. Когато няма стандартен масив, генератор на покриващи масиви обработва формата директно и връща по-малка таблица, отколкото ако се принуди всеки фактор да бъде на едно и също ниво.

Всяка повреда, която изисква три или повече конкретни стойности едновременно. Емпиричните изследвания на данни за повреди показват, че повечето повреди се задействат от един или два параметъра, поради което покритието по двойки е ефективно, но за критични характеристики е препоръчително тристранното покритие.

Най-вече на интеграционно и системно ниво, където взаимодействат няколко компонента или настройки. Също така е подходящ за матрици на средата, като браузър, операционна система и размер на екрана, както и за всеки конфигурируем продукт, където доставените комбинации надвишават наличния тестов прозорец.

Машинното обучение чете изисквания и производствени дневници, за да предложи факторите и нивата, които имат значение, а моделите с история на дефектите класират кои комбинации заслужават тристранно покритие. Математиката на масивите е детерминистична - интелигентната част е изборът на това, което влиза в модела.

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

Обобщете тази публикация с: