Vad är domäntestning vid mjukvarutestning? (med exempel)

Vad är domäntestning?

Domäntestning är en Test av programvara process där applikationen testas genom att ge ett minsta antal ingångar och utvärdera dess lämpliga utdata. Det primära målet med domäntestning är att kontrollera om mjukvaruapplikationen accepterar indata inom det acceptabla intervallet och levererar nödvändig utdata.

Det är ett funktions~~POS=TRUNC teknik 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 Vit Box Testning metoder. Den verifierar också att systemet inte ska acceptera indata, villkor och index utanför det specificerade eller giltiga intervallet.

Domäntestning skiljer sig för varje specifik domän så du måste ha domänspecifik kunskap för att testa ett mjukvarusystem.

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än kan involvera testning av en indatavariabel eller kombination av indatavariabler.

Utövare studerar ofta de enklaste fallen av domäntestning mindre än två andra namn, "gränstestning" och "ekvivalensklassanalys."

Gränsprovning – Gränsvärdesanalys (BVA) baseras på testning vid gränserna mellan skiljeväggar. 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 –

  1. Endast till tester av indatavariabler
  2. Endast när den testas på systemnivå
  3. Endast när man testar en i taget
  4. 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:

  1. 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.
  2. Fältet ska acceptera värden som 0,100 och valfritt antal mellan dem.

Bygga bord som dessa (i praktiken)

  1. För att bygga en ekvivalensklassanalys över tid lägger du informationen i ett kalkylblad. Börja med att lista variabler. Lägg till information om dem när du får den.
  2. Tabellen bör så småningom innehålla alla variabler. Det betyder alla indatavariabler, alla utdatavariabler och alla mellanliggande variabler som du kan observera.
  3. I praktiken är de flesta tabeller som jag har sett ofullständiga. De bästa som setts listar alla variabler och lägger till detaljer för kritiska variabler.

Domänteststrategi

När du testar domänen måste du överväga följande saker,

  1. Vilken domän testar vi?
  2. Hur grupperar man värdena i klasser?
  3. Vilka värden för klasserna ska testas?
  4. Hur bestämmer man resultatet?

Vilken domän testar vi?

Varje domän som vi testar har viss ingångsfunktion och en utgångsfunktion. Det kommer att finnas några indatavariabler som ska matas in, och lämplig utdata måste verifieras.

Domänteststrategi

Exempel på domäntestning

  1. 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 eller en kombination av variablerna krävs.

  1. Tänk på nedanstående flera ingångar och lämpligt utdatascenario:

Överväg en spelutställning för barn, 6 tävlingar är upplagda och biljetter måste ges enligt ålder och kön. Biljettgivningen är en av modulerna som ska testas i för hela funktionaliteten av Games-utställningen.

Enligt scenariot fick vi sex scenarier baserade på åldern och tävlingarna:

  1. Ålder >5 och <10, pojke bör delta i storytelling.
  2. Ålder >5 och <10, tjej ska delta i rittävlingen.
  3. Ålder >10 och <15, pojke ska delta i Quiz.
  4. Ålder >10 och <15, tjej bör delta i uppsatsskrivande.
  5. Ålder <5, både pojkar och flickor bör delta i Rhymes Competition.
  6. Ålder >15, både pojkar och flickor bör delta i poesitävlingen.

Här kommer ingången att vara Ålder och Kön och därav kommer biljetten till tävlingen att utfärdas. Denna fallpartition av ingångar eller helt enkelt gruppering av värden kommer in i bilden.

Hur grupperar man värdena i klasser?

Att partitionera vissa värden innebär att dela upp dem i icke-överlappande delmängder.

Som vi diskuterade tidigare finns det två typer av partitionering:

  1. Ekvivalensuppdelning – Ekvivalenspartitionering är en mjukvarutestning teknik som delar in indata från en mjukvaruenhet i partitioner med 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.
  2. Gränsvärdesanalys – Gränsvärdesanalys är en mjukvarutestning teknik där tester är utformade för att inkludera representanter för gränsvärden i ett intervall. Idén kommer från gräns.

För exemplet ovan delar vi upp värdena i en delmängd eller delmängd. Vi delar upp åldern i följande klasser:

  1. Klass 1: Barn i åldersgruppen 5 till 10
  2. Klass 2: Barn med åldersgrupp under 5
  3. Klass 3: Barn i åldersgruppen 10 till 15 år
  4. Klass 4: Barn med åldersgrupp över 15.

Vilka värden för klasserna ska testas?

Värdena som hämtas för testning bör vara gränsvärden:

  1. Boundaries ä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.
  2. 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:

  1. Klass 1: Barn med åldersgrupp 5 till 10 (ålder >5 och <=10)

Gränsvärden:

  1. Värden ska vara lika med eller mindre än 10. Därför bör 10 år inkluderas i denna klass.
  2. Värdena bör vara större än 5. Därför bör 5 års ålder inte inkluderas i denna klass.
  3. Värden ska vara lika med eller lägre än 10. Därför bör 11 år inte inkluderas i denna klass.
  4. Värdena bör vara större än 5. Därför bör 6 års ålder inkluderas i denna klass.

Ekvivalenspartitionsvärden:

Ekvivalenspartition hänvisas till 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å 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 hämtas. 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 klara funktionen beror inte bara på resultaten av ovanstående scenarier. Den input som ges och den förväntade outputen kommer att ge oss resultaten och detta kräver domänkunskap.

Bestämma resultatet av exemplet:

Bestämma resultat

Därför, om alla testfall i ovanstående godkänns, godkänns domänen för att utfärda biljetter i tävlingen. Om inte, misslyckas domänen.

Domänteststruktur

Vanligtvis följer testare stegen nedan i en domäntestning. Dessa kan anpassas/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 Genus 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.
  • Föreställ dig risker som inte nödvändigtvis kartläggs till en uppenbar dimension.
  • Identifiera och lista oanalyserade variabler. Samla information för senare analys.
  • Sammanfatta din analys med en risk/ekvivalenstabell.

Sammanfattning

Domäntestning, som det beskrivs ovan, kräver kunskap om att ge rätt input för att uppnå önskad output. Således är det bara möjligt att använda den för små bitar av kod.

Sammanfatta detta inlägg med: