Mutationstestning
Mutation Testing är en typ av programvarutestning där vissa uttalanden av källkoden ändras / muteras för att kontrollera om testfallet kan hitta fel i källkoden. Målet med Mutation Testing är att säkerställa kvaliteten i testfall i termer av robusthet att den misslyckas med den muterade källkoden.
Ändringarna i det mutanta programmet bör hållas extremt små för att det inte påverkar programmets övergripande mål. Mutation Testing kallas också felbaserad teststrategi eftersom det innebär att skapa ett fel i programmet och det är en typ av White Box Testing som huvudsakligen används för Unit Testing.
Mutation föreslogs ursprungligen 1971 men förlorade glöd på grund av de höga kostnaderna. Nu har den igen plockat ånga och används ofta för språk som Java och XML.
I den här handledningen lär du dig-
- Vad är mutationstestning?
- Hur utför man mutationstester?
- Hur skapar man mutantprogram?
- Vad ska jag ändra i ett mutantprogram?
- Typer av mutationstestning
- Mutationspoäng:
- Fördelar med mutationstestning:
- Nackdelar med mutationstest:
Hur utför man mutationstester?
Nedan följer stegen för att utföra mutationstest (mutationsanalys):
Steg 1 : Fel införs i källkoden för programmet genom att skapa många versioner som kallas mutanter. Varje mutant bör innehålla ett enda fel, och målet är att få mutantversionen att misslyckas, vilket visar effektiviteten i testfallet.
Steg 2 : Testfall tillämpas på det ursprungliga programmet och även på det mutanta programmet. Ett testfall bör vara adekvat och det justeras för att upptäcka fel i ett program.
Steg 3 : Jämför resultaten från ett original- och mutantprogram.
Steg 4 : Om det ursprungliga programmet och mutantprogrammen genererar olika utdata, dödas mutanten av testfallet. Därför är testfallet tillräckligt bra för att upptäcka förändringen mellan originalet och mutantprogrammet.
Steg 5 : Om det ursprungliga programmet och det mutanta programmet genererar samma resultat, hålls Mutant vid liv. I sådana fall måste effektivare testfall skapas som dödar alla mutanter.
Hur skapar man mutantprogram?
En mutation är inget annat än en enda syntaktisk förändring som görs i programförklaringen. Varje mutantprogram ska skilja sig från det ursprungliga programmet med en mutation.
Originalprogram | Mutantprogram |
---|---|
Om (x> y) Skriv ut "Hej" Annars Skriv ut "Hej" | Om ( x Annars Skriv ut "Hej" |
Vad ska jag ändra i ett mutantprogram?
Det finns flera tekniker som kan användas för att generera mutantprogram. Låt oss titta på dem
Operand ersättningsoperatörer | Expression Modification Operators | Statement modification Operators |
---|---|---|
Ersätt operand med en annan operand (x med y eller y med x) eller med det konstanta värdet. | Byt ut en operatör eller infoga nya operatörer i ett programuttalande. | Programmatiska uttalanden ändras för att skapa mutantprogram. |
Exempel - Om (x> y) ersätter x- och y-värdena Om (5> y) ersätter x med konstant 5 | Exempel- Om (x == y) Vi kan ersätta == till> = och ha mutantprogram som (x> = y) och infoga ++ i uttalandet If (x == ++ y) | Exempel - Radera den andra delen i en if-else-sats Ta bort hela if-else-satsen för att kontrollera hur ett program beter sig. Några av exempelmutationsoperatorerna:
|
Automation av mutationstestning:
Mutationstestning är extremt tidskrävande och komplicerat att utföra manuellt. För att påskynda processen är det lämpligt att gå till automatiseringsverktyg. Automationsverktyg minskar också kostnaden för testning.
Lista över tillgängliga verktyg -
- Stryker
- PIT-testning
Typer av mutationstestning
Inom mjukvaruteknik kan mutationstest i grunden kategoriseras i tre typer av påståendemutationer, beslutsmutationer och värdemutationer.
- Uttalningsmutation - utvecklare klipper och klistrar in en del av en kod vars resultat kan vara att vissa rader tas bort
- Value Mutation - värden på primära parametrar ändras
- Beslutsmutation - kontrolluttalanden ska ändras
Mutationspoäng:
Mutationspoängen definieras som procentandelen dödade mutanter med det totala antalet mutanter.
- Mutationspoäng = (dödade mutanter / totalt antal mutanter) * 100
Testfall är mutations tillräckliga om poängen är 100%. Experimentella resultat har visat att mutationstestning är ett effektivt tillvägagångssätt för att mäta tillräckligheten i testfallet. Men den största nackdelen är att den höga kostnaden för att generera mutanterna och utföra varje testfall mot det mutanta programmet.
Fördelar med mutationstestning:
Följande är fördelarna med mutationstest:
- Det är ett kraftfullt tillvägagångssätt för att uppnå hög täckning av källprogrammet.
- Denna testning kan omfattande testa mutantprogrammet.
- Mutationstest ger programvaruutvecklaren en bra nivå av feldetektering.
- Denna metod avslöjar tvetydigheter i källkoden och har kapacitet att upptäcka alla fel i programmet.
- Kunder gynnas av denna testning genom att få ett mest tillförlitligt och stabilt system.
Nackdelar med mutationstest:
På andra sidan är följande nackdelarna med Mutant-testning:
- Mutationstestning är extremt kostsamt och tidskrävande eftersom det finns många mutantprogram som måste genereras.
- Eftersom det är tidskrävande är det rättvist att säga att denna testning inte kan göras utan ett automatiseringsverktyg.
- Varje mutation kommer att ha samma antal testfall än det ursprungliga programmet. Så ett stort antal mutantprogram kan behöva testas mot den ursprungliga testsviten.
- Eftersom denna metod innebär källkodsändringar är den inte alls tillämplig för Black Box Testing.
Slutsats:
Vill du ha en fullständig testning av din ansökan? Svaret är mutationstestning. Det är den mest omfattande tekniken för att testa ett program. Detta är metoden som kontrollerar om ett testprogram är effektivt och noggrant för att upptäcka fel eller fel i systemet.