Hvad er domænetest i softwaretest? (med eksempel)
⚡ Smart opsummering
Domænetestning kontrollerer en applikation ved at give den det mindste brugbare sæt af input, der dækker gyldige, ugyldige og randværdier, og bekræfter, at kun værdier inden for det accepterede område producerer det nødvendige output.
Hvad er domænetestning?
Domænetestning er en software test en 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 det krævede output.
Det er et funktionstest teknik, hvor et systems output testes med et minimalt antal input for at sikre, at systemet ikke accepterer ugyldige og inputværdier uden for intervallet. Det behandles også som en af de vigtige hvid boks test metoder. Den verificerer yderligere, at systemet ikke skal acceptere input, betingelser og indekser uden for det angivne eller gyldige område.
Domænetestning er forskellig for hvert specifikt domæne, så du har brug for 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 testning af en hvilken som helst inputvariabel eller en kombination af inputvariabler.
Praktikere studerer ofte de enkleste tilfælde af domænetestning under to andre navne, "grænsetestning" og "ækvivalensklasseanalyse".
Grænsetest - Grænseværdianalyse (BVA) er baseret på testning ved grænserne mellem partitioner. Vi vil teste både de gyldige og ugyldige inputværdier i partitionen/klasserne.
Ækvivalensklassetestning – 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."
Den forenklede formular gælder for domænetestning –
- Kun til test af inputvariabler
- Kun når den testes hos 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 poster og uden for grænserne.
- Feltet skal acceptere værdier som 0, 100 og ethvert tal derimellem.
Opbygning af tabeller som disse (i praksis)
- For at opbygge en ækvivalensklasseanalyse over tid, skal du sætte informationen ind i et regneark. Start med at liste variabler. Tilføj information om dem, efterhånden som du får den.
- 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 sådanne tabeller ufuldstændige. De bedste oplister alle variabler og tilføjer detaljer om de kritiske.
Domæneteststrategi
Når du tester domæner, 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, vi tester, har en vis inputfunktionalitet og en outputfunktionalitet. Der vil være nogle inputvariabler, der skal indtastes, og det relevante output skal verificeres. Diagrammet nedenfor viser dette input-til-output-forhold.
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, og det er heller ikke nødvendigt med nogen kombination af variablerne.
Overvej nedenstående multiple input og passende outputscenarie:
Overvej en spiludstilling for børn. Der er planlagt seks konkurrencer, og billetterne skal gives i henhold til alder og køn. Billetuddelingen er et af de moduler, der skal testes for at sikre spiludstillingens samlede funktionalitet.
Ifølge scenariet fik vi seks scenarier baseret på alderen og konkurrencerne:
- Drengen er >5 og <10 år og bør deltage i historiefortælling.
- Pige >5 og <10 år skal deltage i tegnekonkurrencen.
- Drengen er >10 og <=15 år og skal deltage i quizzen.
- Pige >10 og <=15 år skal deltage i essayskrivning.
- Alder <=5, både drenge og piger bør deltage i rimkonkurrencen.
- Alder >15, både drenge og piger skal deltage i poesikonkurrencen.
Her vil inputtet være Alder og Køn, og derfor vil billetten til konkurrencen blive udstedt. I dette tilfælde er der opdeling af input, eller blot grupperingping af værdier, kommer ind i billedet.
Hvordan grupperer man værdierne i klasser?
At opdele nogle værdier betyder at opdele dem i ikke-overlappendeping delmængder.
Som vi diskuterede tidligere er der to typer partitionering:
- Ækvivalensopdeling – Ækvivalenspartitionering er en softwaretestteknik, der opdeler inputdataene fra en softwareenhed i partitioner af ækvivalente data, hvorfra test tilfælde kan udledes. I princippet er testtilfælde designet til at dække hver partition mindst én gang.
- Grænseværdianalyse – Grænseværdianalyse er en softwaretestteknik, hvor tests er designet til at inkludere repræsentanter for grænseværdier i et interval. Ideen kommer fra grænsen.
I ovenstående eksempel opdeler vi værdierne i delmængder. Vi opdeler alderen i nedenstående klasser:
- Klasse 1: Børn i aldersgruppen 5 til 10 år
- Klasse 2: Børn under 5 år
- Klasse 3: Børn i aldersgruppen 10 til 15 år
- Klasse 4: Børn over 15 år.
Hvilke værdier i klasserne skal testes?
De værdier, der indsamles til test, skal være randværdier:
- Grænser er repræsentative for de ækvivalensklasser, vi sampler dem fra. De er mere tilbøjelige til at afsløre en fejl end andre klassemedlemmer, så de er bedre repræsentative.
- 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 scenarie #1:
Klasse 1: Børn i aldersgruppen 5 til 10 år (alder >5 og <=10)
Grænseværdier:
- Værdierne skal være lig med eller mindre end 10. Derfor bør alderen 10 medtages i denne klasse.
- Værdier skal være større end 5. Derfor bør 5 år ikke inkluderes i denne klasse.
- Værdierne skal være lig med eller mindre end 10. Derfor bør alder 11 ikke medtages i denne klasse.
- Værdier skal være større end 5. Derfor bør 6-årsalderen inkluderes i denne klasse.
Ækvivalenspartitionværdier:
Ækvivalenspartition refererer til, når man kun skal teste én betingelse fra hver partition. I dette antager vi, at hvis én betingelse i en partition fungerer, så burde alle betingelserne fungere. På samme måde, hvis én betingelse i den partition ikke fungerer, 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 vælges. Derfor er den valgte alder "8" en gyldig inputalder for aldersgruppen mellem (Alder >5 og <=10). Denne type opdeling kaldes en ækvivalensopdeling.
| 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?
Om funktionaliteten kan bestås, afhænger det ikke kun af resultaterne af ovenstående scenarier. Det givne input og det forventede output vil give os resultaterne, og dette kræver domæneviden.
Bestemmelse af resultaterne af eksemplet: Skærmen nedenfor viser billetudskriften for hver kombination af alder og køn.
Hvis alle ovenstående testtilfælde derfor består, bestås domænet for udstedelse af billetter i konkurrencen. Hvis ikke, dumpes domænet.
Domæneteststruktur
Normalt følger testere nedenstående trin i domænetestning. Disse kan tilpasses eller 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.
- Identificér 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, hvor test af beslutningstabeller hjælper.
- Forestil dig risici, der ikke nødvendigvis har en åbenlys dimension.
- Identificer og opstil uanalyserede variabler. Indsaml information til senere analyse.
- Opsummer din analyse med en risiko/ækvivalens tabel.


