Što je testiranje ortogonalnog niza? (Primjer)
⚡ Pametni sažetak
Ortogonalno testiranje nizova je tehnika crne kutije koja koristi statističke nizove za izgradnju kompaktnog skupa testova, pokrivajući svaki par ulaznih vrijednosti s daleko manje testnih slučajeva nego što to zahtijeva iscrpno kombinirano testiranje.

Testiranje ortogonalnog niza
Testiranje ortogonalnog niza (OAT) je tehnika testiranja softvera koja koristi ortogonalne nizove za stvaranje testnih slučajeva. To je statistički pristup testiranju i posebno je koristan kada testirani sustav prihvaća veliki broj ulaznih podataka. Testiranje ortogonalnih nizova maksimizira pokrivenost testovima uparivanjem i kombiniranjem ulaza, tako da se sustav testira s relativno manjim brojem testnih slučajeva i kraćim vremenom izvršavanja.
Na primjer, kada se mora provjeriti karta za vlak, moraju se testirati faktori poput broja putnika, broja karte, broja sjedala i broja vlakova. Testiranje svakog faktora pojedinačno je nezgrapno. Učinkovitije je kada inženjer osiguranja kvalitete kombinira nekoliko ulaznih podataka i testira ih u jednom prolazu. U takvim slučajevima možemo koristiti metodu testiranja ortogonalnog niza.
Ova vrsta sparivanja ili kombiniranja ulaza radi uštede vremena naziva se parno testiranje, a OATS tehnika je jedan od načina izrade parnog skupa za testiranje. Budući da tehnika radi isključivo na temelju ulaznih vrijednosti i očekivanih rezultata, bez ikakvog uvida u interni kod, pripada testiranje crne kutije obitelj.
Zašto OAT (Orthogonal Array Testing)?
U sadašnjem scenariju isporuka kvalitetnog softverskog proizvoda kupcu postala je izazovna zbog složenosti koda.
U konvencionalnoj metodi, testni paketi uključuju testne slučajeve izvedene iz svake kombinacije ulaznih vrijednosti i preduvjeta. Kao rezultat toga, potrebno je pokriti n testnih slučajeva.
Ali u stvarnom scenariju, testeri neće imati vremena za izvršavanje svih testnih slučajeva kako bi otkrili nedostatke, jer postoje druge aktivnosti poput dokumentacije, prijedloga i povratnih informacija od kupca koje se moraju obaviti unutar faze testiranja.
Stoga su voditelji testiranja željeli optimizirati broj i kvalitetu testnih slučajeva kako bi osigurali maksimum Pokrivenost testom uz minimalan napor. Taj se napor naziva optimizacija testnog slučaja.
- Sustavni i statistički način testiranja parnih interakcija.
- Interakcije i točke integracije glavni su izvor nedostataka.
- Izvršite dobro definiran, koncizan skup testnih slučajeva koji će vjerojatno otkriti većinu (ne sve) greške.
- Ortogonalni pristup jamči parno pokrivanje svih varijabli.
Tehnika se stoga nalazi uz ostale metode smanjenja unosa koje tim već koristi. Particioniranje ekvivalencije i analiza rubnih vrijednosti odlučiti koje vrijednosti vrijedi testirati za jedno polje; ortogonalni nizovi odlučuju koje od tih vrijednosti treba testirati zajedno.
Kako je predstavljeno testiranje ortogonalnih nizova
Ortogonalni niz opisan je kratkom formulom, a ne svojim sadržajem. Dijagram u nastavku prikazuje kako se tri veličine u toj formuli odnose na oblik niza.
- Poeni (N) – Broj redaka u nizu, što se prevodi u broj testnih slučajeva koji će biti generirani.
- Faktori (K) – Broj stupaca u nizu, što se prevodi u maksimalan broj varijabli koje se mogu obraditi.
- Razine (V) – Maksimalan broj vrijednosti koje se mogu uzeti za bilo koji pojedinačni faktor.
Jedan faktor obično ima 2 do 3 ulaza za testiranje. Taj maksimalni broj ulaza određuje razine.
Pročitajte naziv polja s lijeva na desno. U L9(34) 9 je broj ponavljanja, 3 je broj razina koje svaki faktor može poprimiti, a gornji indeks 4 je broj faktora. Isti članak koristi L4(23), što su četiri ponavljanja za tri faktora koji svaki ima dvije razine.
Dva svojstva čine niz ortogonalnim i oba moraju biti zadovoljena prije nego što se brojač ponavljanja može smatrati pouzdanim:
- Bilanca: Svaka razina faktora pojavljuje se isti broj puta u svom stupcu.
- Parna potpunost: Za bilo koja dva stupca, svaka kombinacija jedne razine iz svakog pojavljuje se isti broj puta.
Ako drugo svojstvo ne uspije, tablica je jednostavno skraćeni testni skup, a ne ortogonalni niz, a parno jamstvo koje opravdava smanjenje više ne vrijedi.
Kako napraviti testiranje ortogonalnog niza: primjeri
- Odredite nezavisnu varijablu za scenarij.
- Pronađite najmanji niz s brojem pokretanja.
- Preslikajte faktore na niz.
- Odaberite vrijednosti za sve "preostale" razine.
- Prepišite trčanja u test slučajevi, dodajući sve posebno sumnjive kombinacije koje nisu generirane.
Dva donja obrađena primjera primjenjuju tih pet koraka, prvo na mali problem s dvije razine, a zatim na veći problem s tri razine.
Primjer 1
Web stranica ima tri različita dijela (Gornji, Središnji, Donji) koji se mogu pojedinačno prikazivati ili skrivati od korisnika.
- Broj faktora = 3 (vrh, sredina, dno)
- Broj razina (vidljivost) = 2 (skriveno ili prikazano)
- Vrsta polja = L4(23)
(4 je broj prolaza do kojih se došlo nakon stvaranja OAT niza)
Ako se odlučimo za konvencionalnu tehniku promjene jednog dijela odjednom, potrebni su nam testni slučajevi poput 2 X 3 = 6 testnih slučajeva.
| Testni slučajevi | scenariji | Vrijednosti koje treba ispitati |
|---|---|---|
| Test #1 | SKRIVENA | vrh |
| Test #2 | POKAZANO | vrh |
| Test #3 | SKRIVENA | Dno |
| Test #4 | POKAZANO | Dno |
| Test #5 | SKRIVENA | Srednji |
| Test #6 | POKAZANO | Srednji |
Tih šest prolaza mijenjaju jedan dio odjednom i nikada ne stavljaju dva dijela u odabrano stanje zajedno. Testiranje svake kombinacije umjesto toga trajalo bi 23 = 8 trčanja.
Ako idemo na OAT testiranje, potrebna su nam 4 testna slučaja kao što je prikazano u nastavku:
| Testni slučajevi | VRH | Srednji | Dno |
|---|---|---|---|
| Test #1 | skriven | skriven | skriven |
| Test #2 | skriven | vidljiv | vidljiv |
| Test #3 | vidljiv | skriven | vidljiv |
| Test #4 | vidljiv | vidljiv | skriven |
Provjerite bilo koja dva stupca te tablice i sva četiri para Skriveno/Vidljivo pojavljuju se točno jednom, što je svojstvo ortogonalnosti u svom najmanjem obliku.
Primjer 2
Funkcionalnost mikroprocesora mora se ispitati:
- Temperatura: 100C, 150C i 200C.
- Tlak: 2 psi, 5 psi i 8 psi
- Doping Iznos: 4%, 6% i 8%
- Brzina taloženja: 0.1 mg/s, 0.2 mg/s i 0.3 mg/s
Korištenjem konvencionalne metode potrebne su nam 34 = 81 testnih slučajeva za pokrivanje svih ulaznih podataka. Umjesto toga, koristimo OATS metodu:
Broj faktora = 4 (temperatura, tlak,ping količina i brzina taloženja)
Razine = 3 razine po faktoru (temperatura ima 3 razine – 100 °C, 150 °C i 200 °C – a slično tome i ostali faktori imaju po 3 razine)
Stvorite polje kao ispod:
1. Stupci s brojem faktora
| Test slučaj # | Temperatura | Pritisak | Doping iznos | Stopa taloženja |
|---|
2. Unesite broj redaka jednak broju razina po faktoru. tj. temperatura ima 3 razine. Stoga umetnite 3 retka za svaku razinu temperature,
| Test slučaj # | Temperatura | Pritisak | Doping iznos | Stopa taloženja |
|---|---|---|---|---|
| 1 | 100C | |||
| 2 | 100C | |||
| 3 | 100C | |||
| 4 | 150C | |||
| 5 | 150C | |||
| 6 | 150C | |||
| 7 | 200C | |||
| 8 | 200C | |||
| 9 | 200C |
3. Sada rasporedite pritisak, učiniteping količina i brzine taloženja u kolonama.
Na primjer: Unesite 2 psi za temperature 100C, 150C i 200C, također unesite doping iznos 4% za 100C, 150C i 200C i tako dalje.
| Test slučaj # | Temperatura | Pritisak | Doping iznos | Stopa taloženja |
|---|---|---|---|---|
| 1 | 100C | 2 psi | 4% | 0.1 mg/s |
| 2 | 100C | 5 psi | 6% | 0.2 mg/s |
| 3 | 100C | 8 psi | 8% | 0.3 mg/s |
| 4 | 150C | 2 psi | 4% | 0.1 mg/s |
| 5 | 150C | 5 psi | 6% | 0.2 mg/s |
| 6 | 150C | 8 psi | 8% | 0.3 mg/s |
| 7 | 200C | 2 psi | 4% | 0.1 mg/s |
| 8 | 200C | 5 psi | 6% | 0.2 mg/s |
| 9 | 200C | 8 psi | 8% | 0.3 mg/s |
Stoga, u OA-ima, potrebno nam je 9 testnih slučajeva za pokrivanje.
Napomena o točnosti: popunjavajući preostala tri stupca ravno prema dolje, kao u koraku 3, ponavljajući isti pritisak, učiniteping i taloženje se utrostručuje unutar svakog temperaturnog bloka. Tlak iping količina se stoga kreće zajedno, a parovi poput 2 psi sa 6% se nikada ne pojavljuju, pa je devet redaka iznad reducirani testni skup, a ne pravi ortogonalni niz. Uravnoteženi L9(34) niz u nastavku zadržava istih devet prolaza, a istovremeno pokriva svih devet parova razina između svaka dva faktora.
| Test slučaj # | Temperatura | Pritisak | Doping iznos | Stopa taloženja |
|---|---|---|---|---|
| 1 | 100C | 2 psi | 4% | 0.1 mg/s |
| 2 | 100C | 5 psi | 6% | 0.2 mg/s |
| 3 | 100C | 8 psi | 8% | 0.3 mg/s |
| 4 | 150C | 2 psi | 6% | 0.3 mg/s |
| 5 | 150C | 5 psi | 8% | 0.1 mg/s |
| 6 | 150C | 8 psi | 4% | 0.2 mg/s |
| 7 | 200C | 2 psi | 8% | 0.2 mg/s |
| 8 | 200C | 5 psi | 4% | 0.3 mg/s |
| 9 | 200C | 8 psi | 6% | 0.1 mg/s |
Ortogonalno testiranje nizova u odnosu na parno testiranje (svi parovi)
Ta se dva termina u mnogim timovima koriste naizmjenično, no nisu identični. Oba ciljaju na pokrivanje parova vrijednosti, ali se razlikuju po tome koliko je strogo ograničena rezultirajuća tablica.
| Aspekt | Testiranje ortogonalnog niza | Parno (svi parovi) testiranje |
|---|---|---|
| Temeljna struktura | Ortogonalni niz, posuđen iz dizajna eksperimenata | Pokrivajući niz, generiran algoritmom pretraživanja |
| Pravilo pokrivenosti | Svaki par se pojavljuje jednak broj puta | Svaki par se pojavljuje barem jednom |
| Čimbenici s nejednakim razinama | Potreban je niz miješanih razina, koji možda ne postoji za traženi oblik | Izravno upravlja generator |
| Tipičan broj prolazaka | Jednako ili malo više, zbog zahtjeva za ravnotežom | Jednako ili manje za iste ulaze |
| Ograničenja između vrijednosti | Teško je izraziti unutar niza | Podržava većina modernih generatora |
U praksi, uravnoteženi ortogonalni niz je jasniji model poučavanja i sigurniji izbor kada faktori dijele isti broj razina, dok je pokrivajući niz ono što većina alata proizvodi za stvarne projekte s nezgodnim, nejednakim ulazima. Oba su komplementarna testiranje tablice odluka i testiranje prijelaza stanja, koji ciljaju na poslovna pravila i redoslijed, a ne na kombinacije vrijednosti.
Alati za testiranje ortogonalnih nizova
Ručna izgradnja niza praktična je samo za gore navedene male primjere. Iznad četiri ili pet faktora, timovi koriste generator, a alat odlučuje o broju izvršavanja umjesto njih.
- SLIKA: generator naredbenog retka otvorenog koda iz MicrosoftParametri i njihove vrijednosti zapisani su u običnoj tekstualnoj datoteci modela, a alat ispisuje skup kombinacija. Podržana su ograničenja i podmodeli, što je važno kada određeni parovi vrijednosti nisu valjani. Pogledajte PICT repozitorij.
- DJELA: istraživački alat tvrtke NIST koji generira nizove za pokrivanje od dva do šesterostrukog pokrivanja, a također objavljuje biblioteku unaprijed izračunatih nizova. Dostupan je od NIST-ov projekt kombinatornog testiranja.
- Komercijalne kombinatorne platforme: hostirani alati dodaju zahtjev tracjednostavnost, očekivani rezultati i izvoz u sustav upravljanja testiranjem, što odgovara većim timovima kojima je potreban revizijski trag.
- Objavljene biblioteke nizova: Standardni nizovi kao što su L4, L8, L9, L16 i L18 su tabelarno prikazani i mogu se izravno kopirati kada se broj faktora i razina podudara.
Bez obzira koji alat generira tablicu, generirani retci se i dalje moraju pretvoriti u izvršavajuće slučajeve sa stvarnim podacima i očekivanim rezultatima, a zatim zakazati kao i bilo koji drugi paket unutar tablice. tehnike testiranja softvera već se koristi na projektu.
Prednosti ortogonalnog testiranja nizova
- Jamči testiranje kombinacija svih odabranih varijabli u paru.
- Smanjuje broj testnih slučajeva.
- Stvara manji broj testnih slučajeva koji i dalje pokrivaju interakciju svakog para varijabli.
- Može se obraditi složena kombinacija varijabli.
- Jednostavniji je za generiranje i manje je sklon pogreškama od testnih skupova izrađenih ručno.
- Koristan je za Ispitivanje integracije, i podjednako korisno za testiranje konfiguracije, gdje se kombinacije preglednika, operativnih sustava i uređaja brzo množe.
- Poboljšava produktivnost zbog smanjenih ciklusa ispitivanja i vremena testiranja.
Spojevi koji štede tijekom regresijsko testiranje, jer je manji uravnoteženi paket dovoljno jeftin za ponovno pokretanje u svakom ciklusu, dok se iscrpni kombinirani paket obično pokrene jednom, a zatim tiho napusti.
Nedostaci ortogonalnog testiranja nizova
- Kako se unos podataka povećava, povećava se i složenost dizajna testnog slučaja. Kao rezultat toga, povećava se ručni napor i utrošeno vrijeme, a testeri moraju težiti Testiranje automatizacije.
- Parno pokrivanje nije potpuno pokrivanje. Defekt koji se pojavljuje samo kada se tri specifične vrijednosti pojave zajedno može proći kroz niz netaknut.
- Faktori s različitim brojem razina ne preslikavaju se čisto na standardni niz, stoga je potreban niz miješanih razina ili generator pokrivajućeg niza.
- Odabir razina je stvar procjene. Ako se važna vrijednost izostavi iz ulaznog modela, nijedan niz je ne može oporaviti.
- Ograničenja između vrijednosti, poput načina plaćanja koji vrijedi samo u jednoj zemlji, teško je izraziti i obično rezultiraju nevažećim retkima koji se moraju ručno ukloniti.
Nijedno od ovih ograničenja ne isključuje tehniku; ona jednostavno postavljaju njezine granice. Ortogonalni nizovi smanjuju problem kombiniranja, dok analiza rizika i testiranje domene odlučiti koji čimbenici zaslužuju mjesto u modelu za početak.
Pogreške ili pogreške tijekom izvođenja OAT
- Usmjeravanje napora testiranja na pogrešno područje aplikacije.
- Odabir pogrešnih parametara za kombiniranje.
- Korištenje ortogonalnog testiranja nizova gdje je ulazni skup dovoljno malen za iscrpno testiranje.
- Ručna primjena testiranja ortogonalnih nizova na modelu dovoljno velikom da mu je potreban generator.
- Oslanjanje isključivo na testiranje ortogonalnih nizova za visokorizične primjene, gdje je potrebna dublja pokrivenost.
Posljednja stavka je ona koja u praksi uzrokuje najveću štetu. Kod sigurnosno kritične ili financijske značajke, parni skup je donja granica, a ne gornja granica, i obično se nadopunjuje ciljanim slučajevima na testiranje sustava razini i sa širim planom opisanim u vrste testiranja softvera.

