Hva er Ortogonal Array-testing? (Eksempel)
⚡ Smart oppsummering
Ortogonal arraytesting er en svartboksteknikk som bruker statistiske arrayer til å bygge et kompakt testsett, som dekker hvert par av inngangsverdier med langt færre testtilfeller enn uttømmende kombinasjonstesting krever.

Ortogonal array-testing
Ortogonal array-testing (OAT) er en programvaretestingsteknikk som bruker ortogonale arrayer for å lage testtilfeller. Det er en statistisk testtilnærming, og den er spesielt nyttig når systemet som testes aksepterer et stort antall datainnganger. Ortogonal arraytesting maksimerer testdekningen ved å pare og kombinere inngangene, slik at systemet utføres med relativt færre testtilfeller og mindre utførelsestid.
For eksempel, når en togbillett må verifiseres, må faktorer som antall passasjerer, billettnummer, setnummer og tognummer testes. Det er tungvint å teste hver faktor én etter én. Det er mer effektivt når kvalitetssikringsingeniøren kombinerer flere inndata og tester dem i én kjøring. I slike tilfeller kan vi bruke testmetoden Orthogonal Array.
Denne typen paring eller kombinasjon av inndata for å spare tid kalles parvis testing, og OATS-teknikken er én måte å produsere et parvis testsett på. Fordi teknikken fungerer utelukkende fra inndataverdier og forventede resultater, uten noen innsikt i den interne koden, tilhører den svart boks testing familie.
Hvorfor OAT (Orthogonal Array Testing)?
I det nåværende scenariet har det blitt utfordrende å levere et kvalitetsprogramvareprodukt til kunden på grunn av kompleksiteten til koden.
I den konvensjonelle metoden inkluderer testsuiter testtilfeller utledet fra alle kombinasjoner av inngangsverdier og forhåndsbetingelser. Som et resultat må n antall testtilfeller dekkes.
Men i et reelt scenario vil ikke testerne ha tid til å utføre alle testtilfellene for å avdekke feilene, ettersom det er andre aktiviteter som dokumentasjon, forslag og tilbakemeldinger fra kunden som må imøtekommes i testfasen.
Derfor ønsket testlederne å optimalisere antall og kvalitet på testtilfellene for å sikre maksimalt Testdekning med minimal innsats. Denne innsatsen kalles testtilfelleoptimalisering.
- Systematisk og statistisk måte å teste parvise interaksjoner på.
- Interaksjoner og integrasjonspunkter er en viktig kilde til defekter.
- Utfør et veldefinert og konsist sett med testtilfeller som sannsynligvis vil avdekke de fleste (ikke alle) feil.
- Den ortogonale tilnærmingen garanterer parvis dekning av alle variabler.
Teknikken står derfor ved siden av de andre metodene for input-reduksjon som et team allerede bruker. Ekvivalenspartisjonering og grenseverdianalyse bestemme hvilke verdier som er verdt å teste for et enkelt felt; ortogonale matriser bestemmer hvilke av disse verdiene som skal testes sammen.
Hvordan ortogonal arraytesting er representert
En ortogonal matrise beskrives av en kort formel snarere enn av innholdet. Diagrammet nedenfor viser hvordan de tre størrelsene i formelen forholder seg til matrisens form.
- Løper (N) – Antall rader i arrayet, som oversettes til antall testtilfeller som skal genereres.
- Faktorer (K) – Antall kolonner i arrayet, som oversettes til det maksimale antallet variabler som kan håndteres.
- Nivåer (V) – Maksimalt antall verdier som kan tas på en enkelt faktor.
En enkelt faktor har vanligvis 2 til 3 innganger som skal testes. Det maksimale antallet innganger bestemmer nivåene.
Les arraynavnet fra venstre til høyre. L9(34) 9 er antall løp, 3 er antall nivåer hver faktor kan ta, og hevet 4 er antall faktorer. Den samme artikkelen bruker L4(23), som er fire kjøringer for tre faktorer som hver har to nivåer.
To egenskaper gjør en matrise ortogonal, og begge må holde før antall løp kan stoles på:
- Balanse: Hvert nivå av en faktor vises like mange ganger i sin egen kolonne.
- Parvis fullstendighet: For to kolonner vises hver kombinasjon av ett nivå fra hver like mange ganger.
Hvis den andre egenskapen feiler, er tabellen ganske enkelt et forkortet testsett, ikke en ortogonal matrise, og den parvise garantien som rettferdiggjør reduksjonen gjelder ikke lenger.
Hvordan gjøre Ortogonal Array Testing: Eksempler
- Identifiser den uavhengige variabelen for scenariet.
- Finn den minste matrisen med antall kjøringer.
- Kartlegg faktorene til matrisen.
- Velg verdiene for eventuelle "rest"-nivåer.
- Transkriber løpene til test tilfeller, og legger til eventuelle spesielt mistenkelige kombinasjoner som ikke genereres.
De to utarbeidede eksemplene nedenfor anvender disse fem trinnene, først på et lite problem med to nivåer og deretter på et større problem med tre nivåer.
Eksempel 1
En nettside har tre forskjellige seksjoner (øverst, midt, nederst) som kan vises eller skjules individuelt for en bruker.
- Antall faktorer = 3 (øverst, midt, bunn)
- Antall nivåer (synlighet) = 2 (skjult eller vist)
- Matrisetype = L4(23)
(4 er antallet kjøringer som er oppnådd etter at OAT-matrisen er opprettet)
Hvis vi går for den konvensjonelle teknikken med å endre én seksjon om gangen, trenger vi testtilfeller som 2 X 3 = 6 testtilfeller.
| test Cases | scenarier | Verdier som skal testes |
|---|---|---|
| Test nr. 1 | SKJULT | God |
| Test nr. 2 | VIST | God |
| Test nr. 3 | SKJULT | Bunn |
| Test nr. 4 | VIST | Bunn |
| Test nr. 5 | SKJULT | Middle |
| Test nr. 6 | VIST | Middle |
Disse seks løpene varierer én seksjon om gangen og plasserer aldri to seksjoner i en valgt tilstand sammen. Å teste hver kombinasjon i stedet ville ta to3 = 8 løp.
Hvis vi går for OAT-testing, trenger vi 4 testtilfeller som vist nedenfor:
| test Cases | TOPP | Middle | Bunn |
|---|---|---|---|
| Test nr. 1 | skjult | skjult | skjult |
| Test nr. 2 | skjult | Synlig | Synlig |
| Test nr. 3 | Synlig | skjult | Synlig |
| Test nr. 4 | Synlig | Synlig | skjult |
Sjekk to kolonner i den tabellen, og alle fire Skjult/Synlig-parene vises nøyaktig én gang, som er ortogonalitetsegenskapen i sin minste form.
Eksempel 2
En mikroprosessors funksjonalitet må testes:
- Temperatur: 100C, 150C og 200C.
- Trykk: 2 psi, 5 psi og 8 psi
- Doping Beløp: 4 %, 6 % og 8 %
- Avsetningshastighet: 0.1 mg/s, 0.2 mg/s og 0.3 mg/s
Ved å bruke den konvensjonelle metoden trenger vi 34 = 81 testtilfeller for å dekke alle inndataene. La oss heller jobbe med OATS-metoden:
Antall faktorer = 4 (temperatur, trykk, doping mengde og avsetningsrate)
Nivåer = 3 nivåer per faktor (temperatur har 3 nivåer – 100 °C, 150 °C og 200 °C – og på samme måte har de andre faktorene også 3 nivåer hver)
Lag en matrise som nedenfor:
1. Kolonner med antall faktorer
| Testtilfelle # | Temperatur | Trykk | Doping beløp | Deponeringshastighet |
|---|
2. Skriv inn antall rader som tilsvarer nivåer per faktor. Dvs. temperaturen har 3 nivåer. Sett derfor inn 3 rader for hvert temperaturnivå.
| Testtilfelle # | Temperatur | Trykk | Doping beløp | Deponeringshastighet |
|---|---|---|---|---|
| 1 | 100C | |||
| 2 | 100C | |||
| 3 | 100C | |||
| 4 | 150C | |||
| 5 | 150C | |||
| 6 | 150C | |||
| 7 | 200C | |||
| 8 | 200C | |||
| 9 | 200C |
3. Del nå opp presset, gjør detping mengde og avsetningsratene i kolonnene.
For eksempel: Skriv inn 2 psi for temperaturene 100C, 150C og 200C, skriv også inn doping beløp 4 % for 100C, 150C og 200C og så videre.
| Testtilfelle # | Temperatur | Trykk | Doping beløp | Deponeringshastighet |
|---|---|---|---|---|
| 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 |
Derfor, i OA-er, trenger vi 9 testtilfeller å dekke.
Nøyaktighetsmerknad: fyller de resterende tre kolonnene rett ned, slik trinn 3 gjør, gjentar det samme trykket, gjørping og avsetning tredobles inne i hver temperaturblokk. Trykk og gjørping Mengden beveger seg derfor sammen, og par som 2 psi med 6 % vises aldri, så de ni radene ovenfor er et redusert testsett snarere enn en ekte ortogonal matrise. Den balanserte L9(34)-matrisen nedenfor beholder de samme ni kjøringene samtidig som den dekker alle ni nivåpar mellom hver to faktorer.
| Testtilfelle # | Temperatur | Trykk | Doping beløp | Deponeringshastighet |
|---|---|---|---|---|
| 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 |
Ortogonal arraytesting vs. parvis (alle par) testing
De to begrepene brukes om hverandre i mange team, men de er ikke identiske. Begge tar sikte på å dekke verdipar, men de varierer i hvor strengt den resulterende tabellen er begrenset.
| Aspekt | Ortogonal array-testing | Parvis (alle par) testing |
|---|---|---|
| Underliggende struktur | Ortogonal matrise, lånt fra design av eksperimenter | Dekkende array, generert av en søkealgoritme |
| Dekningsregel | Hvert par forekommer like mange ganger | Hvert par dukker opp minst én gang |
| Faktorer med ulik nivå | Trenger en matrise med blandet nivå, som kanskje ikke finnes for den nødvendige formen | Håndtert direkte av generatoren |
| Typisk antall løp | Lik eller litt høyere, på grunn av balansekravet | Lik eller lavere for de samme inngangene |
| Begrensninger mellom verdier | Vanskelig å uttrykke inne i arrayet | Støttet av de fleste moderne generatorer |
I praksis er en balansert ortogonal matrise den tydeligere undervisningsmodellen og det tryggere valget når faktorer deler samme nivåtelling, mens en dekkende matrise er det de fleste verktøy produserer for virkelige prosjekter med vanskelige, ujevne input. Begge er komplementære til testing av beslutningstabell og testing av tilstandsovergang, som er rettet mot forretningsregler og sekvens i stedet for kombinasjoner av verdier.
Verktøy for ortogonale arraytesting
Å bygge en matrise for hånd er bare praktisk for de små eksemplene ovenfor. Utover fire eller fem faktorer bruker team en generator, og verktøyet bestemmer antall løp for dem.
- BILDE: en kommandolinjegenerator med åpen kildekode fra MicrosoftParametre og deres verdier skrives i en ren tekstmodellfil, og verktøyet skriver ut kombinasjonssettet. Begrensninger og delmodeller støttes, noe som er viktig når visse verdipar er ugyldige. Se PICT-arkivet.
- Apostlenes gjerninger: et forskningsverktøy fra NIST som genererer dekningsmatriser for toveis opptil seksveis dekning, og som også publiserer et bibliotek med forhåndsberegnede matriser. Det er tilgjengelig fra NIST kombinatorisk testprosjekt.
- Kommersielle kombinatoriske plattformer: Krav til å legge til hostede verktøy traceffektivitet, forventede resultater og eksport til et teststyringssystem, som passer for større team som trenger et revisjonsspor.
- Publiserte arraybiblioteker: Standardarrayer som L4, L8, L9, L16 og L18 er tabulert og kan kopieres direkte når faktor- og nivåtellingene samsvarer.
Uansett hvilket verktøy som produserer tabellen, må de genererte radene fortsatt gjøres om til kjørbare tilfeller med reelle data og forventede resultater, og deretter planlegges som enhver annen pakke inni. teknikker for programvaretesting allerede i bruk på prosjektet.
Fordeler med ortogonal arraytesting
- Garanterer testing av de parvise kombinasjonene av alle de valgte variablene.
- Reduserer antall testtilfeller.
- Oppretter færre testtilfeller som fortsatt dekker samspillet mellom hvert par av variabler.
- En kompleks kombinasjon av variablene kan håndteres.
- Er enklere å generere og mindre utsatt for feil enn testsett laget for hånd.
- Det er nyttig for Integrasjonstesting, og like nyttig for konfigurasjonstesting, hvor kombinasjoner av nettlesere, operativsystemer og enheter multipliseres raskt.
- Det forbedrer produktiviteten på grunn av reduserte testsykluser og testtider.
De sparende forbindelsene under Regresjonstesting, fordi en mindre balansert suite er billig nok til å kjøres på nytt hver syklus, mens en uttømmende kombinasjonssuite vanligvis kjøres én gang og deretter stille forlates.
Ulemper med ortogonal arraytesting
- Etter hvert som datainngangene øker, øker kompleksiteten i testcasedesignet. Som et resultat øker manuell innsats og tid brukt, og testerne må gå for Automatiseringstesting.
- Parvis dekning er ikke full dekning. En defekt som bare oppstår når tre spesifikke verdier forekommer sammen, kan passere urørt gjennom tabellen.
- Faktorer med ulikt antall nivåer kartlegges ikke rent på en standard array, så en blandet nivå array eller en dekkende array-generator er nødvendig.
- Å velge nivåene er en vurdering. Hvis en verdi som er viktig utelates fra inputmodellen, kan ingen array gjenopprette den.
- Begrensninger mellom verdier, for eksempel en betalingsmåte som bare er gyldig i ett land, er vanskelige å uttrykke og produserer vanligvis ugyldige rader som må fjernes manuelt.
Ingen av disse begrensningene utelukker teknikken; de setter bare dens grense. Ortogonale matriser reduserer kombinasjonsproblemet, mens risikoanalyse og domenetesting bestemme hvilke faktorer som fortjener en plass i modellen til å begynne med.
Feil eller feil under utførelse av OAT
- Å rette testinnsatsen mot feil område av applikasjonen.
- Å velge feil parametere å kombinere.
- Bruk av ortogonal array-testing der inngangssettet er lite nok til å teste uttømmende.
- Manuell bruk av ortogonal array-testing på en modell som er stor nok til å trenge en generator.
- Å stole utelukkende på ortogonal array-testing for høyrisikoapplikasjoner, der dypere dekning er nødvendig.
Det siste elementet er det som forårsaker mest skade i praksis. På en sikkerhetskritisk eller økonomisk funksjon er det parvise settet et gulv snarere enn et tak, og det suppleres vanligvis med målrettede tilfeller på systemtesting nivå og med den bredere planen beskrevet i typer programvaretesting.

