Какво е тестване на ортогонален масив? (Пример)
⚡ Умно обобщение
Ортогоналното тестване на масиви е техника на „черна кутия“, която използва статистически масиви за изграждане на компактен тестов набор, покриващ всяка двойка входни стойности с много по-малко тестови случаи, отколкото изисква изчерпателното комбинирано тестване.
Тестване на ортогонален масив
Тестване на ортогонален масив (OAT) е техника за тестване на софтуер, която използва ортогонални масиви за създаване на тестови случаи. Това е статистически подход за тестване и е особено полезен, когато тестваната система приема голям брой входни данни. Ортогоналното тестване на масиви максимизира тестовото покритие чрез сдвояване и комбиниране на входните данни, така че системата се упражнява със сравнително по-малко тестови случаи и по-малко време за изпълнение.
Например, когато трябва да се провери билет за влак, трябва да се тестват фактори като брой пътници, номер на билет, номера на седалките и номера на влаковете. Тестването на всеки фактор един по един е тромаво. По-ефективно е, когато QA инженерът комбинира няколко входни данни заедно и ги тества наведнъж. В такива случаи можем да използваме метода за тестване с ортогонален масив.
Този тип сдвояване или комбиниране на входни данни за пестене на време се нарича Pairwise testing (тестване по двойки), а техниката OATS е един от начините за създаване на набор от тестове по двойки. Тъй като техниката работи единствено въз основа на входните стойности и очакваните резултати, без никакъв поглед върху вътрешния код, тя принадлежи към... тестване на черна кутия семейство.
Защо OAT (тестване на ортогонален масив)?
В настоящия сценарий доставянето на качествен софтуерен продукт на клиента стана предизвикателство поради сложността на кода.
При конвенционалния метод, тестовите пакети включват тестови случаи, получени от всяка комбинация от входни стойности и предварителни условия. В резултат на това трябва да бъдат обхванати n броя тестови случаи.
Но в реален сценарий тестерите няма да имат свободното време да изпълнят всички тестови случаи, за да открият дефектите, тъй като има други дейности, като документация, предложения и обратна връзка от клиента, които трябва да бъдат взети предвид във фазата на тестване.
Следователно мениджърите на тестовете искаха да оптимизират броя и качеството на тестовите случаи, за да осигурят максимум Тестово покритие с минимални усилия. Това усилие се нарича оптимизация на тестови случаи.
- Систематичен и статистически начин за тестване на двойни взаимодействия.
- Взаимодействията и точките на интеграция са основен източник на дефекти.
- Изпълнете добре дефиниран, кратък набор от тестове, които е вероятно да разкрият повечето (не всички) грешки.
- Ортогоналният подход гарантира двойно покритие на всички променливи.
Следователно, техниката е редом с другите методи за намаляване на вложенията, които екипът вече използва. Разделяне на еквивалентност и анализ на гранични стойности решите кои стойности си струва да се тестват за едно поле; ортогоналните масиви решават кои от тези стойности трябва да се тестват заедно.
Как се представя тестването на ортогонални масиви
Ортогоналният масив се описва с кратка формула, а не със съдържанието си. Диаграмата по-долу показва как трите величини в тази формула се свързват с формата на масива.
- Бягания (N) – Брой редове в масива, което се превежда в броя на генерираните тестове.
- Фактори (K) – Брой колони в масива, което се превежда в максималния брой променливи, които могат да бъдат обработени.
- Нива (V) – Максимален брой стойности, които могат да се приемат за всеки един фактор.
Един фактор обикновено има 2 до 3 входа за тестване. Този максимален брой входове определя нивата.
Прочетете името на масива отляво надясно. В Л9(3)4) 9 е броят на повторенията, 3 е броят нива, които всеки фактор може да приеме, а горният индекс 4 е броят на факторите. В същата статия се използва Л4(2)3), което е четири цикъла за три фактора, всеки от които има две нива.
Две свойства правят масива ортогонален и и двете трябва да са валидни, преди да може да се довери броят на изпълненията:
- Баланс: Всяко ниво на даден фактор се появява еднакъв брой пъти в собствената си колона.
- Пълнота по двойки: За всеки две колони всяка комбинация от едно ниво от всяка се появява еднакъв брой пъти.
Ако второто свойство не е изпълнено, таблицата е просто съкратен тестов набор, а не ортогонален масив, и гаранцията за двойки, която оправдава намаляването, вече не важи.
Как да направите тестване на ортогонален масив: Примери
- Идентифицирайте независимата променлива за сценария.
- Намерете най-малкия масив с броя изпълнения.
- Картирайте факторите към масива.
- Изберете стойностите за всички „остатъчни“ нива.
- Транскрибирайте бяганията в тестови случаи, добавяйки всички особено подозрителни комбинации, които не са генерирани.
Двата примера по-долу прилагат тези пет стъпки, първо към малък проблем на две нива, а след това към по-голям проблем на три нива.
Пример 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
- Насочване на усилията за тестване към грешната област на приложението.
- Избор на грешни параметри за комбиниране.
- Използване на ортогонално тестване на масиви, където входният набор е достатъчно малък за изчерпателно тестване.
- Ръчно прилагане на тестване на ортогонални масиви върху модел, достатъчно голям, за да се нуждае от генератор.
- Разчитане единствено на ортогонално тестване на решетки за приложения с висок риск, където се изисква по-задълбочено покритие.
Последният елемент е този, който причинява най-големи щети на практика. При критична за безопасността или финансова характеристика, двойният набор е долна граница, а не горна граница, и обикновено се допълва с целеви случаи на системно тестване ниво и с по-широкия план, описан в видове софтуерно тестване.

