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 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:
|
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.
- Statement Mutation - utvikler klipper og limer inn en del av en kode som resultatet kan være å fjerne noen linjer
- Verdimutasjon - verdier av primære parametere endres
- 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.