Hvad er mutationstest? (Eksempel)

Hvad er mutationstestning?

Mutationstest er en type softwaretest, hvor visse udsagn af kildekoden ændres/muteres for at kontrollere, om testcaserne er i stand til at finde fejl i kildekoden. Målet med Mutation Testing er at sikre kvaliteten af ​​testcases med hensyn til robusthed, at den skulle fejle den muterede kildekode.

Ændringerne i mutantprogrammet bør holdes ekstremt små, så det ikke påvirker programmets overordnede mål. Mutationstest kaldes også fejlbaseret teststrategi, da det involverer at skabe en fejl i programmet, og det er en type Hvid Box Test som hovedsageligt bruges til Enhedstest.

Mutation blev oprindeligt foreslået i 1971, men mistede ildhu på grund af de høje omkostninger. Nu har den igen plukket damp og er meget brugt til sprog som f.eks Java og XML.

Hvordan udfører man mutationstest?

Udfør mutationstest

Følgende er trinene til at udføre mutationstest (mutationsanalyse):

Trin 1: Fejl introduceres i programmets kildekode ved at skabe mange versioner kaldet mutanter. Hver mutant bør indeholde en enkelt fejl, og målet er at få mutantversionen til at fejle, hvilket viser effektiviteten af ​​testcaserne.

Trin 2: Testcases anvendes på det originale program og også på mutantprogrammet. EN Test sag bør være tilstrækkelig, og den er tilpasset til at opdage fejl i et program.

Trin 3: Sammenlign resultaterne af et originalt og mutant program.

Trin 4: Hvis det originale program og mutantprogrammerne genererer de forskellige output, så bliver mutanten dræbt af testcasen. Derfor er testcasen god nok til at detektere ændringen mellem original- og mutantprogrammet.

Trin 5: Hvis det originale program og mutantprogram genererer det samme output, holdes Mutant i live. I sådanne tilfælde skal der skabes mere effektive testcases, der dræber alle mutanter.

Hvordan opretter man mutantprogrammer?

Opret mutantprogrammer

En mutation er intet andet end en enkelt syntaktisk ændring, der foretages i programsætningen. Hvert mutantprogram bør adskille sig fra det originale program med én mutation.

Originalt program Mutant program
Hvis (x>y)

Udskriv "Hej"

Else

Udskriv "Hej"

Hvis(x<y)

Udskriv "Hej"

Else

Udskriv "Hej"

Hvad skal man ændre i et mutantprogram?

Der er flere teknikker, der kan bruges til at generere mutantprogrammer. Lad os se på dem

Operaog erstatningsoperatører Udtryksændring Operatorer Redegørelsesændring Operatorer
Erstat operanden med en anden operand (x med y eller y med x) eller med den konstante værdi. Erstat en operatør eller indsættelse af nye operatører i en programerklæring. Programmatiske udsagn modificeres for at skabe mutantprogrammer.
Eksempel-

If(x>y) erstatte x- og y-værdier

If(5>y) erstatte x med konstant 5

Eksempel-

Hvis(x==y)

Vi kan erstatte == i >= og have mutant program som

If(x>=y) og indsætte ++ i sætningen

Hvis(x==++y)

Eksempel-

Slet den anden del i en if-else-sætning

Slet hele if-else-sætningen for at kontrollere, hvordan et program opfører sig

Nogle af prøvemutationsoperatører:

  • GOTO etiket udskiftning
  • Udskiftning af returerklæring
  • Sletning af erklæring
  • Unær operatorindsættelse (som – og ++)
  • Udskiftning af logisk stik
  • Sammenlignelig udskiftning af arraynavn
  • Fjernelse af anden del i if-else-erklæringen
  • Tilføjelse eller udskiftning af operatører
  • Erstatning af erklæring ved at ændre dataene
  • Datamodifikation for variablerne
  • Ændring af datatyper i programmet

Automatisering af mutationstestning

Mutationstest er ekstremt tidskrævende og kompliceret at udføre manuelt. For at fremskynde processen, er det tilrådeligt at gå efter automatiseringsværktøjer. Automatiseringsværktøjer reducerer også omkostningerne ved test.

Liste over tilgængelige værktøjer-

Typer af mutationstestning

In Software Engineering, Mutationstestning kunne grundlæggende kategoriseres i 3 typer - erklæringsmutation, beslutningsmutation og værdimutation.

  1. Statement Mutation – udvikleren klipper og indsætter en del af en kode, hvor resultatet kan være en fjernelse af nogle linjer
  2. Værdimutation– Værdier af primære parametre ændres
  3. Beslutningsmutation– kontrolerklæringer skal ændres

Mutationsscore

Mutationsscoren er defineret som procentdelen af ​​dræbte mutanter med det samlede antal mutanter.

  • Mutationsscore = (dræbte mutanter/samlet antal mutanter) * 100

Mutationsscore

Testtilfælde er mutationstilstrækkelige, hvis scoren er 100 %. Eksperimentelle resultater har vist, at mutationstest er en effektiv tilgang til at måle tilstrækkeligheden af ​​testcaserne. Men den største ulempe er, at de høje omkostninger ved at generere mutanterne og udføre hver testsag mod det mutantprogram.

Fordele ved mutationstestning

Følgende er fordelene ved mutationstest:

  • Det er en kraftfuld tilgang til at opnå høj dækning af kildeprogrammet.
  • Denne test er i stand til omfattende test af mutantprogrammet.
  • Mutationstest giver softwareudvikleren et godt niveau af fejldetektion.
  • Denne metode afdækker uklarheder i kildekoden og har kapacitet til at opdage alle fejl i programmet.
  • Kunderne får gavn af denne test ved at få et meget pålideligt og stabilt system.

Ulemper ved mutationstestning

På den anden side er følgende ulemper ved mutanttest:

  • Mutationstest er ekstremt dyrt og tidskrævende, da der er mange mutantprogrammer, der skal genereres.
  • Da det er tidskrævende, er det rimeligt at sige, at denne test ikke kan udføres uden et automatiseringsværktøj.
  • Hver mutation vil have det samme antal testtilfælde end det oprindelige program. Så et stort antal mutantprogrammer skal muligvis testes mod den originale testsuite.
  • Da denne metode involverer kildekodeændringer, er den slet ikke anvendelig til Sort Box Test.

Konklusion

Ønsker du en udtømmende test af din ansøgning? Svaret er mutationstest. Det er den mest omfattende teknik til at teste et program. Dette er metoden, som kontrollerer effektiviteten og nøjagtigheden af ​​et testprogram for at opdage fejl eller fejl i systemet.