Hva er mutasjonstesting? (Eksempel)

Hva er mutasjonstesting?

Mutasjonstesting er en type programvaretesting der visse utsagn av kildekoden endres/muteres for å sjekke om testtilfellene er i stand til å finne feil i kildekoden. Målet med mutasjonstesting er å sikre kvaliteten på testtilfeller i form av robusthet at den skal mislykkes med den muterte kildekoden.

Endringene som gjøres i mutantprogrammet bør holdes ekstremt små at det ikke påvirker programmets overordnede mål. Mutasjonstesting kalles også feilbasert teststrategi da det innebærer å lage en feil i programmet og det er en type Hvit Box Testing som hovedsakelig brukes til Enhetstesting.

Mutasjon ble opprinnelig foreslått i 1971, men mistet gløden på grunn av de høye kostnadene. Nå har den igjen plukket damp og er mye brukt for språk som f.eks Java og XML.

Hvordan utføre mutasjonstesting?

Utfør mutasjonstesting

Følgende er trinnene for å utføre mutasjonstesting (mutasjonsanalyse):

Trinn 1: Feil blir introdusert i kildekoden til programmet ved å lage mange versjoner kalt mutanter. Hver mutant skal inneholde en enkelt feil, og målet er å få mutantversjonen til å mislykkes, noe som demonstrerer effektiviteten til testtilfellene.

Trinn 2: Testtilfeller brukes på det originale programmet og også på mutantprogrammet. EN Testsak skal være tilstrekkelig, og den er tilpasset for å oppdage feil i et program.

Trinn 3: Sammenlign resultatene av et originalt og mutant program.

Trinn 4: Hvis det originale programmet og mutantprogrammene genererer de forskjellige utdataene, blir mutanten drept av testsaken. Derfor er testsaken god nok til å oppdage endringen mellom original- og mutantprogrammet.

Trinn 5: Hvis det originale programmet og mutantprogrammet genererer samme utgang, holdes Mutant i live. I slike tilfeller må det opprettes mer effektive testtilfeller som dreper alle mutanter.

Hvordan lage mutantprogrammer?

Lag mutantprogrammer

En mutasjon er ikke annet enn en enkelt syntaktisk endring som gjøres i programsetningen. Hvert mutantprogram skal avvike fra det opprinnelige programmet med én mutasjon.

Originalt program Mutant program
Hvis (x>y)

Skriv ut "Hei"

Else

Skriv ut "Hei"

Hvis(x<y)

Skriv ut "Hei"

Else

Skriv ut "Hei"

Hva skal endres i et mutantprogram?

Det er flere teknikker som kan brukes til å generere mutante programmer. La oss se på dem

Operand erstatningsoperatører Modifikasjon av uttrykk Operatorer Erklæringsendring Operatorer
Erstatt operanden med en annen operand (x med y eller y med x) eller med konstantverdien. Bytt ut en operatør eller innsetting av nye operatører i en programerklæring. Programmatiske utsagn er modifisert for å lage mutante programmer.
Eksempel-

If(x>y) erstatte x- og y-verdier

If(5>y) erstatt x med konstant 5

Eksempel-

Hvis(x==y)

Vi kan erstatte == inn i >= og ha mutantprogram som

If(x>=y) og sette inn ++ i setningen

If(x==++y)

Eksempel-

Slett den andre delen i en if-else-setning

Slett hele if-else-setningen for å sjekke hvordan et program oppfører seg

Noen av prøvemutasjonsoperatører:

  • GOTO etiketterstatning
  • Returerklæringserstatning
  • Sletting av erklæring
  • Unær operatørinnsetting (som – og ++)
  • Utskifting av logisk kontakt
  • Sammenlignbar erstatning for arraynavn
  • Fjerning av annen del i if-else-setningen
  • Legge til eller bytte ut operatører
  • Erstatning av erklæring ved å endre dataene
  • Datamodifikasjon for variablene
  • Endring av datatyper i programmet

Automatisering av mutasjonstesting

Mutasjonstesting er ekstremt tidkrevende og komplisert å utføre manuelt. For å fremskynde prosessen, er det tilrådelig å gå for automatiseringsverktøy. Automatiseringsverktøy reduserer også kostnadene ved testing.

Liste over tilgjengelige verktøy-

Typer mutasjonstesting

In Engineering programvare, Mutasjonstesting kan fundamentalt kategoriseres i 3 typer - setningsmutasjon, beslutningsmutasjon og verdimutasjon.

  1. Uttalelsesmutasjon – Utvikler klipper ut og limer inn en del av en kode hvor resultatet kan være en fjerning av noen linjer
  2. Verdimutasjon– Verdiene til primære parametere endres
  3. Beslutningsmutasjon– kontrolluttalelser skal endres

Mutasjonspoeng

Mutasjonspoengsummen er definert som prosentandelen drepte mutanter med det totale antallet mutanter.

  • Mutasjonspoeng = (drepte mutanter / totalt antall mutanter) * 100

Mutasjonspoeng

Testtilfeller er mutasjonsadekvate hvis poengsummen er 100 %. Eksperimentelle resultater har vist at mutasjonstesting er en effektiv tilnærming for å måle tilstrekkeligheten av testtilfellene. Men den største ulempen er at de høye kostnadene ved å generere mutantene og utføre hver testsak mot det mutantprogrammet.

Fordeler med mutasjonstesting

Følgende er fordelene med mutasjonstesting:

  • Det er en kraftig tilnærming for å oppnå høy dekning av kildeprogrammet.
  • Denne testingen er i stand til å teste mutantprogrammet på en omfattende måte.
  • Mutasjonstesting gir programvareutvikleren et godt nivå av feildeteksjon.
  • Denne metoden avdekker uklarheter i kildekoden og har kapasitet til å oppdage alle feilene i programmet.
  • Kundene drar nytte av denne testen ved å få et mest pålitelig og stabilt system.

Ulemper med mutasjonstesting

På den andre siden er følgende ulemper med mutanttesting:

  • Mutasjonstesting er ekstremt kostbart og tidkrevende siden det er mange mutantprogrammer som må genereres.
  • Siden det er tidkrevende, er det rimelig å si at denne testingen ikke kan gjøres uten et automatiseringsverktøy.
  • Hver mutasjon vil ha samme antall testtilfeller enn det opprinnelige programmet. Så et stort antall mutantprogrammer må kanskje testes mot den originale testpakken.
  • Siden denne metoden innebærer endringer i kildekoden, er den ikke i det hele tatt aktuelt for Svart Box Testing.

Konklusjon

Ønsker du uttømmende testing av søknaden din? Svaret er mutasjonstesting. Det er den mest omfattende teknikken for å teste et program. Dette er metoden som sjekker effektiviteten og nøyaktigheten til et testprogram for å oppdage feil eller feil i systemet.

Oppsummer dette innlegget med: