Vad är domänprovning?
Domain Testing är en mjukvarutestningsprocess där applikationen testas genom att ge ett minimalt antal ingångar och utvärdera lämpliga utdata. Det primära målet med domäntestning är att kontrollera om programvaran accepterar ingångar inom acceptabelt intervall och levererar erforderlig utdata.
Det är en funktionstestningsteknik där utdata från ett system testas med ett minimalt antal ingångar för att säkerställa att systemet inte accepterar ogiltiga och utanför intervallet ingångsvärden. Det är en av de viktigaste testmetoderna för White Box. Det verifierar också att systemet inte ska acceptera ingångar, villkor och index utanför det angivna eller giltiga intervallet.
Domänprovning skiljer sig åt för varje specifik domän så du måste ha domänspecifik kunskap för att testa ett programvarusystem.
I den här handledningen lär du dig-
- Enklare övning av domänprovning
- Strategi för testning av domäner
- Exempel på domäntestning
- Domain Testing Structure
Enklare övning av domänprovning
Vid domänprovning 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 givits för testning kommer vi att dela upp webbplatsen i små delar (underdomän) för att underlätta testningen.
Domänen kan innefatta testning av valfri ingångsvariabel eller kombination av ingångsvariabler.
Utövare studerar ofta de enklaste fallen av domentestning mindre än två andra namn, "gränstestning" och "ekvivalensklassanalys."
Gränsprovning - Gränsvärde-analys (BVA) baseras på testning vid gränserna mellan partitioner. Vi testar både giltiga och ogiltiga ingångsvärden i partitionen / klasserna.
Testning av ekvivalensklass - Tanken bakom denna teknik är att dela upp (dvs. att dela) en uppsättning testvillkor i grupper eller uppsättningar som kan betraktas som desamma (dvs. systemet ska hantera dem på motsvarande sätt), därav "ekvivalenspartitionering."
Det förenklade formuläret gäller för domänprovning -
- Endast för test av ingångsvariabler
- Endast när det testas på systemnivå
- Endast när testas en i taget
- Endast när det testas på ett mycket ytligt sätt
Det kan förenklas enligt nedan:
Variabel | Giltig klassekvivalensklass | Ogiltig klassekvivalensklass | Gränser och specialfall | Anteckningar |
---|---|---|---|---|
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 utanför gränserna.
- Fältet bör acceptera värden som 0,100 och valfritt tal mellan dem.
Byggbord som dessa (i praktiken)
- För att bygga en ekvivalensklassanalys över tiden placerar du informationen i ett kalkylblad. Börja med att lista variabler. Lägg till information om dem när du får den.
- Tabellen bör så småningom innehålla alla variabler. Detta betyder alla ingångsvariabler, alla utdatavariabler och alla mellanliggande variabler som du kan observera.
- I praktiken är de flesta tabeller som jag har sett ofullständiga. De bästa som ses listar alla variabler och lägger till detaljer för kritiska variabler.
Strategi för testning av domäner
Medan domänstestning måste du överväga att följa saker,
- Vilken domän testar vi?
- Hur grupperar man värdena i klasser?
- Vilka värden för de klasser som ska testas?
- Hur bestämmer man resultatet?
Vilken domän testar vi?
Varje domän som vi testar har en del inmatningsfunktioner och en utdatafunktion. Det kommer att finnas några inmatningsvariabler som ska anges, och lämplig utdata måste verifieras.
Exempel på domäntestning
- Överväga ett enda ingångstestscenario:
C = a + b, där a och b är inmatningsvariabler och C är utgående variabel.
Här i exemplet ovan finns inget behov av klassificering eller kombination av variabler krävs.
- Tänk på nedanstående flera ingångar och lämpligt utgångsscenario:
Tänk på en spelutställning för barn, 6 tävlingar läggs ut och biljetter måste ges beroende på ålder och kön. Biljettförsäljningen är en av de moduler som ska testas för hela spelutställningens funktionalitet.
Enligt scenariot fick vi sex scenarier baserat på ålder och tävlingar:
- Ålder> 5 och <10, Pojke ska delta i Storytelling.
- Ålder> 5 och <10, tjej ska delta i tävling.
- Ålder> 10 och <15, Pojke ska delta i frågesport.
- Ålder> 10 och <15, tjej ska delta i uppsatsskrivning.
- Ålder <5 bör både pojkar och flickor delta i Rhymes Competition.
- Ålder> 15 bör både pojkar och flickor delta i poesitävlingen.
Här kommer inmatningen att vara ålder och kön och därmed kommer biljetten till tävlingen att ges ut. Denna fallpartition av ingångar eller helt enkelt gruppering av värden kommer in i bilden.
Hur grupperar man värdena i klasser?
Partitionering av vissa värden innebär att man delar upp det i icke-överlappande delmängder.
Som vi diskuterade tidigare finns det två typer av partitionering:
- Equivalence partitioning - Equivalence partitioning är en programvarutestningsteknik som delar in data från en mjukvaruenhet i partitioner av motsvarande 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 test är utformade för att inkludera representanter för gränsvärden i ett intervall. Idén kommer från gränsen .
För ovanstående exempel delar vi värdena i en delmängd eller delmängd. Vi delar upp åldern i följande klasser:
- Klass 1: Barn med åldersgrupp 5 till 10
- Klass 2: Barn med åldersgrupp under 5 år
- Klass 3: Barn med åldersgruppen 10 till 15 år
- Klass 4: Barn med åldersgrupp över 15 år.
Vilka värden för de klasser som ska testas?
Värdena som plockas upp för testning bör vara gränsvärden:
- Gränser är representanter för de ekvivalensklasser vi provar dem från. De är mer benägna att avslöja ett fel än andra klassmedlemmar, så de är bättre representanter.
- Den bästa representanten för en ekvivalensklass är ett värde mellan intervallet.
För ovanstående exempel har vi följande klasser att testa:
Till exempel för scenariot nr 1:
- Klass 1: Barn med åldersgrupp 5 till 10 (Ålder> 5 och <= 10)
Gränsvärden:
- Värden 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 ålder 5 inte inkluderas i denna klass.
- Värden 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 ålder 6 ingå i denna klass.
Equivalence partition Värden:
Ekvivalenspartition hänvisas när man bara måste testa ett villkor från varje partition. I detta antar vi att om ett villkor i en partition fungerar, så ska alla villkor fungera. På samma sätt, om ett villkor i den partitionen inte fungerar antar vi att inget av de andra villkoren fungerar. Till exempel,
(Ålder> 5 och <= 10)
Eftersom värdena från 6 till 10 är giltiga måste ett av värdena mellan 6,7,8,9 och 10 plockas upp. Därför är vald ålder "8" en giltig ålder för åldersgruppen mellan (Ålder> 5 och <= 10). Denna typ av partition kallas ekvivalenspartition.
Scenario | Gränsvärden som ska tas | Partitioneringsvärden för ekvivalens |
---|---|---|
Pojke - Ålder> 5 och <= 10 | Ingångs ålder = 6 Ingångs ålder = 5 Ingång ålder = 11 Ingång ålder = 10 | Ingångsålder = 8 |
Flicka - Ålder> 5 och <= 10 | Ingångs ålder = 6 Ingångs ålder = 5 Ingång ålder = 11 Ingång ålder = 10 | Ingångsålder = 8 |
Pojke - Ålder> 10 och <= 15 | Ingångs ålder = 11 Ingångs ålder = 10 Ingång ålder = 15 Ingång ålder = 16 | Ingångsålder = 13 |
Flicka - Ålder> 10 och <= 15 | Ingångs ålder = 11 Ingångs ålder = 10 Ingång ålder = 15 Ingång ålder = 16 | Ingångsålder = 13 |
Ålder <= 5 | Ingångsålder = 4 Ingångsålder = 5 | Ingångsålder = 3 |
Ålder> 15 | Ingångsålder = 15 Ingångsålder = 16 | Ingångsålder = 25 |
Hur avgör vi om programmet har klarat eller misslyckats med testet?
Att skicka funktionaliteten beror inte bara på resultaten av ovanstående scenarier. Den givna ingången och den förväntade utgången ger oss resultaten och detta kräver domänkunskap.
Bestämma resultaten av exemplet:
Följaktligen, om alla testfall av ovanstående passerar, passerar domänen för utfärdande av biljetter i tävlingen. Om inte, misslyckas domänen.
Domain Testing Structure
Vanligtvis följer testarna nedanstående steg i en domänprovning. Dessa kan anpassas / hoppas över efter våra testbehov.
- Identifiera de potentiellt intressanta variablerna.
- Identifiera variablerna som du kan analysera nu och ordna dem (minsta till största 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 innehåller resultat (outputvariabler).
- Utvärdera hur programmet använder värdet på denna variabel.
- Identifiera ytterligare potentiellt relaterade variabler för kombinationstestning.
- Föreställ dig risker som inte nödvändigtvis kartläggs till en uppenbar dimension.
- Identifiera och lista icke analyserade variabler. Samla information för senare analys.
- Sammanfatta din analys med en risk / ekvivalens tabell.
Sammanfattning:
Domäntestning, som det beskrivs ovan, kräver kunskap om att tillhandahålla rätt input för att uppnå önskad produktion. Således är det endast möjligt att använda den för små bitar av kod.