Š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.

  • 🎯 Osnovno obećanje: Svaki par razina između bilo koja dva faktora pojavljuje se barem jednom u generiranim prolazima.
  • 🔢 Ocjena: Niz se piše kao LIzvodi(RazineČimbenici), dakle L9(3⁴) znači devet prolaza za četiri faktora s tri razine.
  • 📉 Razmjer uštede: Četiri faktora na tri razine svaki se svodi iz 81 iscrpne kombinacije u devet ortogonalnih nizova.
  • 🧮 Pravilo ravnoteže: Stupci moraju biti popunjeni tako da se nijedna dva faktora ne pomiču zajedno, inače tablica nije ortogonalna.
  • 🛠️ alat: GeneratorProgrami poput PICT-a i ACTS-a automatski grade niz, što uklanja glavni izvor ručnih pogrešaka.
  • ⚠️ Poznata granica: Parno pokrivanje ne može otkriti defekt koji zahtijeva tri ili više specifičnih vrijednosti zajedno.

Ortogonalno testiranje nizova svođenjem ulaznih kombinacija na mali uravnoteženi skup testnih slučajeva

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.

Ortogonalna notacija polja koja prikazuje nizove, faktore i razine u formuli L(Runs)

  • 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

  1. Odredite nezavisnu varijablu za scenarij.
  2. Pronađite najmanji niz s brojem pokretanja.
  3. Preslikajte faktore na niz.
  4. Odaberite vrijednosti za sve "preostale" razine.
  5. 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.

Pitanja i odgovori

To je tehnika crne kutije. Niz se gradi samo od ulaznih parametara i njihovih dopuštenih vrijednosti, bez reference na izvorni kod, grane ili unutarnje stanje, tako da se može dizajnirati prije završetka implementacije.

Tester gradi ulazni model, obično s poslovnim analitičarom koji potvrđuje koje su vrijednosti legalne. Programeri doprinose tamo gdje je parametar interni, poput postavke predmemorije. Kvaliteta modela, a ne niz, određuje vrijednost paketa.

Ne, ovisi o njima. Particioniranje i analiza granica svode svako polje na nekoliko reprezentativnih vrijednosti, a niz zatim odlučuje koje će se od tih vrijednosti kombinirati. Pokretanje niza na nefiltriranim sirovim vrijednostima stvara nepotrebno veliku tablicu.

Potreban je niz miješanih razina, na primjer L18 koji miješa stupce s dvije i tri razine. Tamo gdje ne odgovara nijedan standardni niz, generator pokrivajućeg niza izravno obrađuje oblik i vraća manju tablicu nego kada se svaki faktor prisili na isti broj razina.

Bilo koji kvar koji zahtijeva tri ili više određenih vrijednosti odjednom. Empirijske studije podataka o kvarovima pokazuju da većinu kvarova pokreću jedan ili dva parametra, zbog čega je parno pokrivanje učinkovito, ali trostruko pokrivanje je preporučljivo za kritične značajke.

Uglavnom na razini integracije i sustava, gdje nekoliko komponenti ili postavki međusobno djeluje. Također odgovara matricama okruženja, kao što su preglednik, operativni sustav i veličina zaslona, ​​te bilo kojem konfiguriranom proizvodu gdje isporučene kombinacije brojčano nadmašuju dostupan testni prozor.

Strojno učenje čita zahtjeve i proizvodne zapise kako bi predložilo čimbenike i razine koji su važni, a modeli povijesti nedostataka rangiraju koje kombinacije zaslužuju trostruku pokrivenost. Matematika nizova je deterministička - inteligentni dio odabire što ulazi u model.

Izrađuje nacrt datoteke modela za generator, petlju vođenu podacima koja čita retke i tvrdnje oko njih. Provjerite tvrdnju o pokrivenosti sa samim generatorom, jer jezični model može stvoriti uvjerljivu tablicu koja nije ortogonalna.

Sažmite ovu objavu uz: