Hvad er mutationstest?
Da ordet 'mutere' generelt betyder 'ændringen', betyder det også mutationstesten. Mutationstest er den type softwaretestning, der udføres ved at ændre eller mutere kodestykket for at kontrollere / verificere, at testtilfældene er tilstrækkelige til at finde fejlene / manglerne. Mutationstest hører under White Box-testen og udføres grundlæggende, mens du udfører enhedstestene i et bestemt modul i en applikation. De ændringer, der er foretaget i den udførte kilde / hovedkode, foretages i en lille mængde, så det ikke vil påvirke det overordnede mål for det. Dette er også kendt som fejldetekteringsteknik, da det gøres med det formål at lokalisere svagheden i testtilfælde ved at oprette en fejl i den originale kode.
Før du udfører nogen test, er det meget vigtigt at forstå målet bag det. Hovedmålet med mutationstest er at finde effektiviteten af de udviklede testtilfælde, som burde være i stand til at registrere selv den lille ændring, der er foretaget i koden. Det gøres for at finde problemerne i testpakken og testdataene, der bruges, mens testen udføres af ethvert softwareprogram. Flere mutanter eller versioner af den originale kode oprettes, og hver af dem testes mod de originale testtilfælde. Hvis testtilfælderesultaterne forbliver de samme, som vi har i den originale kode, kontrolleres både koden og testtilfældene igen, fordi enten koden ikke blev udført, eller testpakken ikke er i stand til at finde den mutante kode.
Typer af mutationstest
Der er dybest set 3 typer mutationstest, der udføres for at skabe mutanter af den originale kode:
1. Værdimutation
Som navnet angiver, ændres værdien af konstanter, parametre, der er videregivet i metoderne, værdier, der bruges i løkker, for at oprette et mutantprogram. Enten ændres den store værdi til en mindre eller omvendt. Grundlæggende ændres de værdier, der allerede er defineret i programmet, til at udføre værdimutation.
Oprindelig kode:
int a = 75636737;
int b = 3454;
int mult = a * b;
print(mult);
Mutantkode:
int a = 75;
int b = 345466465;
int mult = a * b;
print(mult);
2. Beslutningsmutation
I beslutningsmutation ændres de logiske og aritmetiske operatører, der bruges i programmet, hvilket ændrer den samlede beslutningstagning i programmet og dets respektive resultater. For eksempel kører visse 'if' -sætninger kun, når (a> b). I mutantkode ændres denne operatør til (a <b), hvilket ændrer den samlede beslutningstagning i kode.
Oprindelig kode:
if (a>b || b>c)
(
print(“yes”);
)
else
(
print (“No”);
)
Mutantkode:
if (a (
print(“yes”);
)
else
(
print (“No”);
)
3. Erklæring Mutation
I Statement Mutation foretages ændringer i de fulde kodeangivelser for at oprette et mutantprogram. Ændringer i sætningen kan være at slette hele sætningen, ændre rækkefølgen af sætningen i kode, kopiere og indsætte udsagnene på et andet sted i kode, gentage eller duplikere de få sætninger i den originale kode.
Oprindelig kode:
if (a > b)
(
print(“a is greater”);
)
else
(
print(“b is greater”);
)
Mutantkode:
if(a > b)
(
// removing the statement
)
else
(
print(“b is greater”);
)
Fordele og ulemper ved mutationstest
Fordele og ulemper ved mutationstest gives nedenfor:
Fordele
Nogle af fordelene ved mutationstest er givet nedenfor:
- En af de største fordele ved mutationstesting er, at det hjælper med at finde de skjulte defekter og maksimal kodedækning for at identificere den del af koden, der ikke er grundigt testet af de originale testtilfælde.
- Mutationstest hjælper med at finde kvaliteten af testtilfælde, der bruges til test af softwaren og giver ægte feedback til testere om testprocessen og testkvaliteten.
- Det hjælper med at finde fejl i høj kvalitet, som ikke er let at finde ved normal test.
- Mutationstest afslører undertiden de skjulte defekter som kodetydighed, forkerte værdier af variabler osv. I koden i de tidlige stadier af softwaretest, hvilket er meget gavnligt.
- Til tider er både koden og testhændelsen korrekte, men problemet skyldes testdata. Mutationstest hjælper med at finde ud af problemerne i testdata.
Ulemper
Nedenfor gives nogle af ulemperne ved mutationstest:
- Ved mutationstest oprettes og testes forskellige mutanter af koden mod den originale testsuite, og det bruger derfor meget tid, mens den kun udfører enhedstestning af en enkelt funktion / modul i en applikation.
- Som nævnt ovenfor testes alle mutanter mod den originale pakke, så der ville være et stort antal testtilfælde, der skal udføres, og dette kan derfor ikke udføres uden et automatiseringsværktøj, der er dyre og kan hæmme projektbudgettet.
- Komplekse mutanter oprettet af den originale kode kan føre til forvirring og fejl i den originale kode.
Konklusion
Ovenstående forklaring definerer klart, hvad der er Mutationstest og dets betydning inden for testning af en applikation. Hvis vi ønsker gennemgang og udstødningstest af en applikation med testscenarierne for maksimal kodedækning, spiller mutationstest en afgørende rolle.
Anbefalede artikler
Dette er en guide til mutationstest. Her diskuterer vi, hvad der er mutationstest? og typerne af mutationstest sammen med fordele og ulemper. Du kan også gennemgå vores andre foreslåede artikler for at lære mere
- Hvad er reaktion?
- Negativ testning
- Test af mobilapplikation
- Avanceret krypteringsstandard
- Kode dækning vs test dækning | Top 4 forskelle at lære
- Kode dækningsværktøjer | Top 6 kode dækningsværktøjer