Hvad er domænetest i softwaretest? (med eksempel)
Hvad er domænetestning?
Domænetest er en Software Testing proces, hvor applikationen testes ved at give et minimum antal input og evaluere dens passende output. Det primære mål med domænetestning er at kontrollere, om softwareapplikationen accepterer input inden for det acceptable område og leverer påkrævet output.
Det er et Funktionstest teknik, hvor outputtet af et system testes med et minimalt antal input for at sikre, at systemet ikke accepterer ugyldige og uden for rækkevidde inputværdier. Det er en af de vigtigste Hvid Box Test metoder. Det verificerer også, at systemet ikke bør acceptere input, betingelser og indekser uden for det specificerede eller gyldige interval.
Domænetestning er forskellig for hvert specifikt domæne, så du skal have domænespecifik viden for at teste et softwaresystem.
Enklere praksis for domænetestning
Ved domænetest opdeler vi et domæne i underdomæner (ækvivalensklasser) og tester derefter ved hjælp af værdier fra hvert underdomæne. For eksempel, hvis et websted (domæne) er blevet givet til test, vil vi opdele webstedet i små portioner (underdomæne) for at lette testen.
Domæne kan involvere test af en hvilken som helst inputvariabel eller kombination af inputvariable.
Praktiserende læger studerer ofte de enkleste tilfælde af domænetest mindre end to andre navne, "grænsetest" og "ækvivalensklasseanalyse."
Grænsetest – Grænseværdianalyse (BVA) er baseret på test ved grænserne mellem skillevægge. Vi vil teste både de gyldige og ugyldige inputværdier i partitionen/klasserne.
Ekvivalensklassetest – Idéen bag denne teknik er at opdele (dvs. at opdele) et sæt af testbetingelser i grupper eller sæt, der kan betragtes som ens (dvs. systemet skal håndtere dem på samme måde), deraf "ækvivalensopdeling."
Denne forenklede formular gælder for domænetest –
- Kun til test af inputvariabler
- Kun ved test på systemniveau
- Kun ved test en ad gangen
- Kun når de er testet på en meget overfladisk måde
Det kan forenkles som nedenfor:
Variabel | Gyldig klasseækvivalensklasse | Ugyldig klasseækvivalensklasse | Grænser og særlige tilfælde | Noter |
---|---|---|---|---|
X | 0-100 | 0 | ||
100 | ||||
<0 | -1 | |||
> 100 | 101 |
Forklaring:
- Hvis et felt accepterer intervaller fra 0-100, bør feltet ikke acceptere -1 og 101, da de er ugyldige indtastninger og ud over grænserne.
- Feltet skal acceptere værdier såsom 0,100 og et hvilket som helst tal mellem dem.
Byggebord som disse (i praksis)
- For at opbygge en ækvivalensklasseanalyse over tid, læg oplysningerne i et regneark. Start med at liste variabler. Tilføj oplysninger om dem, efterhånden som du får dem.
- Tabellen skal til sidst indeholde alle variabler. Det betyder alle inputvariabler, alle outputvariabler og alle mellemliggende variabler, som du kan observere.
- I praksis er de fleste tabeller, som jeg har set, ufuldstændige. De bedste set viser alle variablerne og tilføjer detaljer for kritiske variabler.
Domæneteststrategi
Mens du tester domæne, skal du overveje følgende ting,
- Hvilket domæne tester vi?
- Hvordan grupperer man værdierne i klasser?
- Hvilke værdier i klasserne skal testes?
- Hvordan bestemmer man resultatet?
Hvilket domæne tester vi?
Ethvert domæne, som vi tester, har en vis inputfunktionalitet og en outputfunktionalitet. Der vil være nogle inputvariabler, der skal indtastes, og det korrekte output skal verificeres.
Eksempel på domænetest
- Overvej et enkelt inputtestscenarie:
C = a+b, hvor a og b er inputvariable og C er outputvariablen.
Her i ovenstående eksempel er der ikke behov for klassificering eller kombination af variablerne er påkrævet.
- Overvej nedenstående multiple input og passende outputscenarie:
Overvej en spiludstilling for børn, 6 konkurrencer er lagt ud, og billetter skal gives i henhold til alder og køn input. Billetsalget er et af de moduler, der skal testes i for hele funktionaliteten af Games-udstillingen.
Ifølge scenariet fik vi seks scenarier baseret på alderen og konkurrencerne:
- Alder >5 og <10, dreng skal deltage i Storytelling.
- Alder >5 og <10, pige skal deltage i tegnekonkurrencen.
- Alder >10 og <15, dreng skal deltage i Quiz.
- Alder >10 og <15, pige bør deltage i essayskrivning.
- Alder <5, både drenge og piger bør deltage i Rhymes Competition.
- Alder >15, både drenge og piger skal deltage i poesikonkurrencen.
Her vil input være Alder og Køn og derfor vil billetten til konkurrencen blive udstedt. Denne sagsopdeling af input eller blot gruppering af værdier kommer ind i billedet.
Hvordan grupperer man værdierne i klasser?
At partitionere nogle værdier betyder at opdele dem i ikke-overlappende undersæt.
Som vi diskuterede tidligere er der to typer partitionering:
- Ækvivalensopdeling – Ækvivalensopdeling er en software test teknik, der opdeler inputdata fra en softwareenhed i partitioner med tilsvarende data, hvorfra testcases kan udledes. I princippet er testcases designet til at dække hver partition mindst én gang.
- Grænseværdianalyse – Grænseværdianalyse er en software test teknik, hvor test er designet til at inkludere repræsentanter for grænseværdier i et interval. Ideen kommer fra grænse.
For ovenstående eksempel opdeler vi værdierne i en delmængde eller delmængden. Vi opdeler alderen i nedenstående klasser:
- Klasse 1: Børn i aldersgruppen 5 til 10
- Klasse 2: Børn med aldersgruppe under 5
- Klasse 3: Børn i aldersgruppen 10 til 15 år
- Klasse 4: Børn med aldersgruppe over 15 år.
Hvilke værdier i klasserne skal testes?
De værdier, der hentes til test, skal være grænseværdier:
- Grænser er repræsentanter for de ækvivalensklasser, vi prøver dem fra. De er mere tilbøjelige til at afsløre en fejl end andre klassemedlemmer, så de er bedre repræsentanter.
- Den bedste repræsentant for en ækvivalensklasse er en værdi i mellem intervallet.
Til ovenstående eksempel har vi følgende klasser, der skal testes:
For eksempel for scenariet #1:
- Klasse 1: Børn med aldersgruppe 5 til 10 (alder >5 og <=10)
Grænseværdier:
- Værdier skal være lig med eller mindre end 10. Derfor bør alder 10 inkluderes i denne klasse.
- Værdier skal være større end 5. Derfor bør 5 år ikke inkluderes i denne klasse.
- Værdier skal være lig med eller mindre end 10. Derfor bør alder 11 ikke inkluderes i denne klasse.
- Værdier skal være større end 5. Derfor bør 6-årsalderen inkluderes i denne klasse.
Ækvivalenspartitionsværdier:
Ækvivalenspartition henvises til, når man kun skal teste én betingelse fra hver partition. I dette antager vi, at hvis én betingelse i en partition virker, så burde alle betingelsen virke. På samme måde, hvis en betingelse i den partition ikke virker, antager vi, at ingen af de andre betingelser vil fungere. For eksempel,
(Alder >5 og <=10)
Da værdierne fra 6 til 10 er gyldige, skal en af værdierne blandt 6,7,8,9 og 10 hentes. Den valgte alder "8" er derfor en gyldig inputalder for aldersgruppen mellem (Alder >5 og <=10). Denne slags partition omtales som ækvivalenspartition.
Scenario | Grænseværdier, der skal tages | Ækvivalens opdelingsværdier |
---|---|---|
Dreng – Alder >5 og <=10 | Input alder = 6 Input alder = 5 Input alder = 11 Input alder = 10 |
Input alder = 8 |
Pige – alder >5 og <=10 | Input alder = 6 Input alder = 5 Input alder = 11 Input alder = 10 |
Input alder = 8 |
Dreng – Alder >10 og <=15 | Input alder = 11 Input alder = 10 Input alder = 15 Input alder = 16 |
Input alder = 13 |
Pige – alder >10 og <=15 | Input alder = 11 Input alder = 10 Input alder = 15 Input alder = 16 |
Input alder = 13 |
Alder <=5 | Input alder = 4 Input alder = 5 |
Input alder = 3 |
Alder> 15 | Input alder = 15 Input alder = 16 |
Input alder = 25 |
Hvordan afgør vi, om programmet bestod eller ikke bestod testen?
At bestå funktionaliteten afhænger ikke kun af resultaterne af ovenstående scenarier. Det givne input og det forventede output vil give os resultaterne, og det kræver domænekendskab.
Bestemmelse af resultaterne af eksemplet:
Derfor, hvis alle testsager i ovenstående bestå, bliver domænet for udstedelse af billetter i konkurrencen bestået. Hvis ikke, bliver domænet mislykket.
Domæneteststruktur
Normalt følger testere nedenstående trin i en domænetest. Disse kan tilpasses/springes over i henhold til vores testbehov.
- Identificer de potentielt interessante variabler.
- Identificer den eller de variabler, du kan analysere nu, og bestil dem (mindst til størst og omvendt).
- Opret og identificer grænseværdier og ækvivalensklasseværdier som ovenfor.
- Identificer sekundære dimensioner og analyser hver på en klassisk måde. (I ovenstående eksempel er køn den sekundære dimension).
- Identificer og test variabler, der holder resultater (outputvariable).
- Evaluer, hvordan programmet bruger værdien af denne variabel.
- Identificer yderligere potentielt relaterede variabler til kombinationstestning.
- Forestil dig risici, der ikke nødvendigvis er knyttet til en åbenlys dimension.
- Identificer og opstil uanalyserede variabler. Indsaml information til senere analyse.
- Opsummer din analyse med en risiko/ækvivalens tabel.
Resumé
Domænetest, som det er beskrevet ovenfor, kræver viden om at give det rigtige input for at opnå det ønskede output. Det er således kun muligt at bruge det til små bidder af kode.