Mutasjonstesting i programvaretesting: Mutant Score & Analyseeksempel

Innholdsfortegnelse:

Anonim

Mutasjonstesting

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

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

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

I denne veiledningen vil du lære-

  • Hva er mutasjonstesting?
  • Hvordan utføre mutasjonstesting?
  • Hvordan lage mutantprogrammer?
  • Hva skal jeg endre i et mutantprogram?
  • Typer av mutasjonstesting
  • Mutasjonspoeng:
  • Fordeler med mutasjonstesting:
  • Ulemper ved mutasjonstesting:

Hvordan utføre mutasjonstesting?

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

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

Trinn 2 : Testtilfeller brukes på det opprinnelige programmet og også på mutantprogrammet. En testtilfelle skal være tilstrekkelig, og den blir justert for å oppdage feil i et program.

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

Trinn 4 : Hvis det opprinnelige programmet og mutantprogrammene genererer forskjellig utgang, blir mutanten drept av testsaken. Derfor er testsaken god nok til å oppdage endringen mellom originalen og mutantprogrammet.

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

Hvordan lage mutantprogrammer?

En mutasjon er bare en enkelt syntaktisk endring som gjøres i programerklæringen. Hvert mutantprogram skal avvike fra det opprinnelige programmet med en mutasjon.

Opprinnelig program Mutantprogram
Hvis (x> y)
Skriv ut "Hei"
Ellers
skriv ut "Hei"
Hvis ( x )Skriv ut "Hei"
Ellers
skriv ut "Hei"

Hva skal jeg endre i et mutantprogram?

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

Operand erstatningsoperatører Ekspressjonsmodifikasjonsoperatører Statement modification Operators
Bytt ut operanden med en annen operand (x med y eller y med x) eller med den konstante verdien. Erstatt en operatør eller innsetting av nye operatører i en programerklæring. Programmatiske setninger er modifisert for å lage mutantprogrammer.
Eksempel -
Hvis (x> y) erstatter x- og y-verdiene
Hvis (5> y) erstatter x med konstant 5
Eksempel -
Hvis (x == y)
Vi kan erstatte == til> = og ha mutantprogram som
Hvis (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 eksempelmutasjonsoperatører:
  • GOTO utskifting av etikett
  • Erstatning for returoppgave
  • Uttalelse sletting
  • Unary operatørinnføring (Like - og ++)
  • Utskifting av logisk kontakt
  • Sammenlignbar erstatning for matriser
  • Fjerning av annet del i if-else uttalelsen
  • Legge til eller bytte ut operatører
  • Erstatning av erklæring ved å endre data
  • Datamodifisering for variablene
  • Endring av datatyper i programmet

Automatisering av mutasjonstesting:

Mutasjonstesting er ekstremt tidkrevende og komplisert å utføre manuelt. For å øke hastigheten på prosessen, anbefales det å gå etter automatiseringsverktøy. Automatiseringsverktøy reduserer også kostnadene ved testing.

Liste over tilgjengelige verktøy -

  • Stryker
  • PIT-testing

Typer av mutasjonstesting

I programvareteknikk kan mutasjonstesting fundamentalt kategoriseres i tre typer påstandsmutasjoner, beslutningsmutasjoner og verdimutasjoner.

  1. Statement Mutation - utvikler klipper og limer inn en del av en kode som resultatet kan være å fjerne noen linjer
  2. Verdimutasjon - verdier av primære parametere endres
  3. Beslutningsmutasjon - uttalelser om kontroll skal endres

Mutasjonspoeng:

Mutasjonspoengene er definert som prosentandelen av drepte mutanter med totalt antall mutanter.

  • Mutasjonspoeng = (Drepte mutanter / Totalt antall mutanter) * 100

Testtilfeller er tilstrekkelig med mutasjon hvis poengsummen er 100%. Eksperimentelle resultater har vist at mutasjonstesting er en effektiv tilnærming for å måle tilstrekkelighet i testtilfellene. Men den største ulempen er at de høye kostnadene ved å generere mutantene og utføre hver testsak mot det mutante programmet.

Fordeler med mutasjonstesting:

Følgende er fordelene med mutasjonstesting:

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

Ulemper ved mutasjonstesting:

På den andre siden er følgende ulempene ved mutant testing:

  • 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 originale programmet. Så det kan hende at et stort antall mutantprogrammer må testes mot den originale testpakken.
  • Siden denne metoden innebærer endring av kildekode, er den slett ikke aktuelt for Black Box Testing.

Konklusjon:

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