Innholdsfortegnelse:
Definisjon - Hva betyr mutasjonstesting?
Mutasjonstesting er en metode for programvaretesting der program eller kildekode blir bevisst manipulert, etterfulgt av en serie tester mot den muterte koden. Mutasjonene introdusert til kildekoden er designet for å etterligne vanlige programmeringsfeil. En god testtest oppdager typisk programmutasjoner og mislykkes automatisk.
Mutasjonstesting brukes på mange forskjellige plattformer, inkludert Java, C ++, C # og Ruby.
Techopedia forklarer mutasjonstesting
Mutasjonstesting er en enkel, men genial metode som brukes for å validere kildekodenes korrekthet og testprosessen. Konseptet ble første gang myntet av Richard Lipton i 1971, og det har vært en stor bølge av interesse siden den tiden.
Mutasjonstestingens arbeidsmekanisme er enkel og grei. Et stykke kildekode som omfatter alle enhetstester velges. Etter å ha verifisert all positiv testing for en gitt kildekode, introduseres en mutasjon i programmet.
Graden av mutasjon brukt på en gitt kodeblokk kan variere. En vanlig implementering av mutasjonstesting innebærer å erstatte en logisk operatør med den inverse. For eksempel brukes operatør "! =" I stedet for "= =." I noen tilfeller innebærer mutasjon omorganisering av linjer for å endre utførelsesrekkefølge eller til og med slette noen få linjer med kode. Komplekse testnivåer for mutasjon kan føre til kompilasjonsfeil.
Når et program er modifisert, utføres en serie enhetstester mot den muterte koden. Den muterte koden passerer eller mislykkes enhetstesten, avhengig av testkvaliteten. En velskrevet enhetstest må oppdage muterte kodefeil, noe som resulterer i feil. En enhetstest som ikke oppdager kodefeil kan kreve omskriving.
Mutasjonstesting letter følgende fordeler:
- Feilidentifikasjon av programkode
- Effektiv utvikling av test case
- Påvisning av smutthull i testdata
- Forbedret kvalitet på programvaren
- Eliminering av kodetydighet
Ulempene med mutasjonstesting inkluderer:
- Vanskelig implementering av komplekse mutasjoner
- Dyrt og tidkrevende
- Krever dyktige testere med programmeringskunnskap