Vad är domäntestning vid mjukvarutestning? (med exempel)
⚡ Smart sammanfattning
Domäntestning kontrollerar en applikation genom att mata den med minsta möjliga mängd användbara indata, som täcker giltiga, ogiltiga och randvärden, och bekräftar att endast värden inom det accepterade intervallet producerar den erforderliga utdata.

Vad är domäntestning?
Domäntestning är en mjukvarutestning en process där applikationen testas genom att ange ett minimalt antal indata och utvärdera dess lämpliga utdata. Det primära målet med domäntestning är att kontrollera om programvaruapplikationen accepterar indata inom det acceptabla intervallet och levererar erforderlig utdata.
Det är ett funktionstestning teknik där ett systems utdata testas med ett minimalt antal ingångar för att säkerställa att systemet inte accepterar ogiltiga och ingångsvärden utanför intervallet. Det behandlas också som en av de viktiga vit box testning metoder. Den verifierar vidare att systemet inte ska acceptera indata, villkor och index utanför det angivna eller giltiga intervallet.
Domäntestning skiljer sig åt för varje specifik domän, så du behöver domänspecifik kunskap för att testa ett programvarusystem.
Enklare praxis för domäntestning
I domäntestning delar vi upp en domän i underdomäner (ekvivalensklasser) och testar sedan med värden från varje underdomän. Till exempel, om en webbplats (domän) har getts för testning, kommer vi att dela upp webbplatsen i små delar (underdomän) för att underlätta testningen.
Domänen kan innebära testning av en enda ingångsvariabel eller en kombination av ingångsvariabler.
Utövare studerar ofta de enklaste fallen av domäntestning under två andra namn, "gränstestning" och "ekvivalensklassanalys".
Gränsprovning - Gränsvärdesanalys (BVA) är baserat på testning vid gränserna mellan partitioner. Vi kommer att testa både giltiga och ogiltiga indatavärden i partitionen/klasserna.
Ekvivalensklasstestning – Tanken bakom denna teknik är att dela upp (dvs. att partitionera) en uppsättning testvillkor i grupper eller uppsättningar som kan anses vara lika (dvs systemet ska hantera dem på samma sätt), därav "ekvivalenspartitionering".
Det förenklade formuläret gäller för domäntestning –
- Endast till tester av indatavariabler
- Endast när det testas på systemnivå
- Endast när man testar en i taget
- Endast när den testas på ett mycket ytligt sätt
Det kan förenklas enligt nedan:
| Variabel | Giltig klassekvivalensklass | Ogiltig klassekvivalensklass | Gränser & Specialfall | Anmärkningar |
|---|---|---|---|---|
| X | 0-100 | 0 | ||
| 100 | ||||
| <0 | -1 | |||
| > 100 | 101 |
Förklaring:
- Om ett fält accepterar intervall från 0–100, bör fältet inte acceptera -1 och 101, eftersom de är ogiltiga poster och bortom gränserna.
- Fältet ska acceptera värden som 0, 100 och valfritt tal däremellan.
Bygga tabeller som dessa (i praktiken)
- För att bygga en ekvivalensklassanalys över tid, lägg in informationen i ett kalkylblad. Börja med att lista variabler. Lägg till information om dem allt eftersom du får den.
- Tabellen ska slutligen innehålla alla variabler. Det betyder alla indatavariabler, alla utdatavariabler och alla mellanliggande variabler som du kan observera.
- I praktiken är de flesta sådana tabeller ofullständiga. De bästa listar alla variabler och lägger till detaljer för de kritiska.
Domänteststrategi
När du testar domäner måste du tänka på följande saker:
- Vilken domän testar vi?
- Hur grupperar man värdena i klasser?
- Vilka värden för klasserna ska testas?
- Hur bestämmer man resultatet?
Vilken domän testar vi?
Varje domän som vi testar har en viss inmatningsfunktionalitet och en utmatningsfunktionalitet. Det kommer att finnas några inmatningsvariabler som ska matas in, och lämplig utmatning måste verifieras. Diagrammet nedan visar detta inmatnings-till-utmatningsförhållande.
Exempel på domäntestning
Tänk på ett enstaka indatatestscenario:
C = a+b, där a och b är indatavariabler och C är utdatavariabeln.
Här i exemplet ovan finns det inget behov av klassificering, och inte heller någon kombination av variablerna.
Tänk på nedanstående flera ingångar och lämpligt utdatascenario:
Överväg en spelutställning för barn. Sex tävlingar är planerade, och biljetter måste delas ut baserat på ålder och kön. Biljettförsäljningen är en av modulerna som ska testas för spelutställningens hela funktionalitet.
Enligt scenariot fick vi sex scenarier baserade på åldern och tävlingarna:
- Ålder >5 och <=10, pojke bör delta i berättandet.
- Flickor >5 och <10 år bör delta i teckningstävlingen.
- Ålder >10 och <=15, pojke bör delta i frågesporten.
- Ålder >10 och <=15, flicka bör delta i uppsatsskrivning.
- Ålder <=5, både pojkar och flickor bör delta i rimtävlingen.
- Ålder >15, både pojkar och flickor bör delta i poesitävlingen.
Här kommer indata att vara Ålder och Kön, och därmed kommer tävlingsbiljetten att utfärdas. I det här fallet sker uppdelning av indata, eller helt enkelt gruppering.ping av värderingar, kommer in i bilden.
Hur grupperar man värdena i klasser?
Att partitionera vissa värden innebär att dela upp dem i icke-överlappandeping delmängder.
Som vi diskuterade tidigare finns det två typer av partitionering:
- Ekvivalensuppdelning – Ekvivalenspartitionering är en mjukvarutestningsteknik som delar upp indata från en mjukvaruenhet i partitioner av ekvivalenta data från vilka testfall kan härledas. I princip är testfall utformade för att täcka varje partition minst en gång.
- Gränsvärdesanalys – Gränsvärdesanalys är en mjukvarutestningsteknik där tester utformas för att inkludera representanter för gränsvärden inom ett intervall. Idén kommer från gränsen.
I exemplet ovan delar vi upp värdena i delmängder. Vi delar upp åldern i följande klasser:
- Klass 1: Barn i åldersgruppen 5 till 10
- Klass 2: Barn under 5 år
- Klass 3: Barn i åldersgruppen 10 till 15
- Klass 4: Barn i åldersgruppen över 15 år.
Vilka värden för klasserna ska testas?
De värden som tas upp för testning bör vara gränsvärden:
- Gränser representerar de ekvivalensklasser vi samplar dem från. De är mer benägna att avslöja ett fel än andra klassmedlemmar, så de är bättre representativa.
- Den bästa representanten för en ekvivalensklass är ett värde mellan intervallet.
För exemplet ovan har vi följande klasser som ska testas:
Till exempel, för scenario #1:
Klass 1: Barn i åldersgruppen 5 till 10 år (ålder >5 och <=10)
Gränsvärden:
- Värdena bör vara lika med eller mindre än 10. Därför bör ålder 10 inkluderas i denna klass.
- Värdena bör vara större än 5. Därför bör 5 års ålder inte inkluderas i denna klass.
- Värdena bör vara lika med eller mindre än 10. Därför bör ålder 11 inte inkluderas i denna klass.
- Värdena bör vara större än 5. Därför bör 6 års ålder inkluderas i denna klass.
Ekvivalenspartitionvärden:
Ekvivalenspartition avses när man bara behöver testa ett villkor från varje partition. I detta antar vi att om ett villkor i en partition fungerar, så borde alla villkor fungera. På samma sätt, om ett villkor i den partitionen inte fungerar, antar vi att inget av de andra villkoren kommer att fungera. Till exempel,
(Ålder >5 och <=10)
Eftersom värdena från 6 till 10 är giltiga, måste ett av värdena bland 6, 7, 8, 9 och 10 väljas. Därför är den valda åldern "8" en giltig inmatningsålder för åldersgruppen mellan (Ålder >5 och <=10). Denna typ av partition kallas ekvivalenspartition.
| Scenario | Gränsvärden som ska tas | Ekvivalenspartitioneringsvärden |
|---|---|---|
| Pojke – Ålder >5 och <=10 | Inmatad ålder = 6 Inmatad ålder = 5 Inmatad ålder = 11 Inmatad ålder = 10 |
Inmatad ålder = 8 |
| Tjej – Ålder >5 och <=10 | Inmatad ålder = 6 Inmatad ålder = 5 Inmatad ålder = 11 Inmatad ålder = 10 |
Inmatad ålder = 8 |
| Pojke – Ålder >10 och <=15 | Inmatad ålder = 11 Inmatad ålder = 10 Inmatad ålder = 15 Inmatad ålder = 16 |
Inmatad ålder = 13 |
| Tjej – Ålder >10 och <=15 | Inmatad ålder = 11 Inmatad ålder = 10 Inmatad ålder = 15 Inmatad ålder = 16 |
Inmatad ålder = 13 |
| Ålder<=5 | Inmatad ålder = 4 Inmatad ålder = 5 |
Inmatad ålder = 3 |
| Ålder> 15 | Inmatad ålder = 15 Inmatad ålder = 16 |
Inmatad ålder = 25 |
Hur avgör vi om programmet godkände eller underkände testet?
Att funktionaliteten ska kunna godkännas beror inte bara på resultaten av ovanstående scenarier. Den givna inmatningen och den förväntade utmatningen kommer att ge oss resultaten, och detta kräver domänkunskap.
Bestämma resultatet av exemplet: skärmen nedan visar ärendeutdata för varje ålders- och könskombination.
Om alla testfall i ovanstående godkänns, godkänns domänen för utfärdande av biljetter i tävlingen. Om inte, underkänns domänen.
Domänteststruktur
Vanligtvis följer testare stegen nedan vid domäntestning. Dessa kan anpassas eller hoppas över enligt våra testbehov.
- Identifiera potentiellt intressanta variabler.
- Identifiera variablerna du kan analysera nu och beställ dem (minst till störst och vice versa).
- Skapa och identifiera gränsvärden och ekvivalensklassvärden enligt ovan.
- Identifiera sekundära dimensioner och analysera var och en på ett klassiskt sätt. (I exemplet ovan är kön den sekundära dimensionen.)
- Identifiera och testa variabler som håller resultat (outputvariabler).
- Utvärdera hur programmet använder värdet på denna variabel.
- Identifiera ytterligare potentiellt relaterade variabler för kombinationstestning, där testning av beslutstabeller hjälper.
- Föreställ dig risker som inte nödvändigtvis har en uppenbar dimension.
- Identifiera och lista oanalyserade variabler. Samla information för senare analys.
- Sammanfatta din analys med en risk/ekvivalenstabell.


