Hva er mutasjonstesting?

Ettersom ordet "mutere" generelt betyr "endringen", betyr det også mutasjonstesting. Mutasjonstesting er den typen programvaretesting som utføres ved å endre eller mutere kodestykket for å sjekke / verifisere at testtilfellene er i stand nok til å finne feilene / manglene. Mutasjonstesting kommer under White Box-testen og utføres i utgangspunktet mens du utfører enhetstestene til en bestemt modul i en applikasjon. Endringene som er gjort i kilden / hovedkoden som er gjort, blir gjort i en liten mengde slik at det ikke vil påvirke det overordnede målet med den. Dette er også kjent som feildetekteringsteknikk, da det gjøres med det formål å finne svakheten i testtilfeller ved å opprette en feil i den opprinnelige koden.

Før du utfører noen test, er det veldig viktig å forstå målet bak. Hovedmålet med mutasjonstesting er å finne effektiviteten til de utviklede testsakene, som skal være i stand nok til å oppdage selv den lille endringen som er gjort i koden. Det gjøres for å finne problemene i testpakken og testdataene som blir brukt mens du utfører testen av hvilken som helst programvare. Flere mutanter eller versjoner av den opprinnelige koden lages, og hver og en av dem testes mot de originale testtilfellene. Hvis resultatene av testtilfellene forblir de samme som vi har i den opprinnelige koden, blir både koden og testtilfellene sjekket på nytt fordi enten koden ikke ble utført, eller at testpakken ikke er i stand til å finne den mutante koden.

Typer mutasjonstesting

Det er i utgangspunktet tre typer mutasjonstesting som utføres for å lage mutanter av den opprinnelige koden:

1. Verdimutasjon

Som navnet indikerer, i Verdimutasjon, blir verdien av konstanter, parametere som er passert i metodene, verdier som brukes i løkker endret for å lage et mutantprogram. Enten blir den store verdien endret til en mindre eller omvendt. I utgangspunktet endres verdiene som allerede er definert i programmet for å utføre Verdimutasjon.

Opprinnelig kode:

int a = 75636737;
int b = 3454;
int mult = a * b;
print(mult);

Mutantkode:

int a = 75;
int b = 345466465;
int mult = a * b;
print(mult);

2. Beslutningsmutasjon

I Decision Mutation, endres de logiske og aritmetiske operatørene som brukes i programmet, noe som endrer den samlede beslutningen i programmet og dets respektive resultater. For eksempel kjører en viss "if" -uttalelse bare når (a> b). I mutantkode endres denne operatøren til (a <b), noe som endrer den totale beslutningen om kode.

Opprinnelig kode:

if (a>b || b>c)
(
print(“yes”);
)
else
(
print (“No”);
)

Mutantkode:

if (a (
print(“yes”);
)
else
(
print (“No”);
)

3. Uttalelse mutasjon

I Statement Mutation blir det gjort endringer i de fullstendige kodeangivelsene for å lage et mutantprogram. Endringer i uttalelsen kan være å slette hele utsagnet, endre rekkefølgen på utsagnet i kode, kopiere og lime utsagnene på et annet sted i kode, gjenta eller duplisere de få utsagnene i den opprinnelige koden.

Opprinnelig kode:

if (a > b)
(
print(“a is greater”);
)
else
(
print(“b is greater”);
)

Mutantkode:

if(a > b)
(
// removing the statement
)
else
(
print(“b is greater”);
)

Fordeler og ulemper ved mutasjonstesting

Fordeler og ulemper ved mutasjonstesting er gitt nedenfor:

Fordeler

Noen av fordelene med mutasjonstesting er gitt nedenfor:

  1. En av de største fordelene med mutasjonstesting er at det hjelper med å finne de skjulte feilene og maksimal kodedekning for å identifisere den delen av koden som ikke er grundig testet av de originale testtilfellene.
  2. Mutasjonstesting hjelper med å finne kvaliteten på testtilfeller som brukes til å teste programvaren og gi ekte tilbakemeldinger til testere om testprosessen og testkvaliteten.
  3. Det hjelper å finne feilkvalitetene av høy kvalitet som ikke er enkle å finne ved normal testing.
  4. Mutasjonstesting avdekker noen ganger de skjulte feilene som kodetydighet, ukorrekte verdier av variabler osv. I koden i de tidlige stadiene av programvaretesting, noe som er veldig gunstig.
  5. Noen ganger er både koden og test saken riktig, men problemet skyldes testdata. Mutasjonstesting hjelper deg med å finne ut av problemene i testdata.

ulemper

Nedenfor er gitt noen av ulempene ved mutasjonstesting:

  1. Ved mutasjonstesting opprettes og testes forskjellige mutanter av koden mot den opprinnelige testserien, og derfor bruker den mye tid mens den bare utfører enhetstesting av en enkelt funksjon / modul i et program.
  2. Som nevnt ovenfor, testes alle mutantene mot den opprinnelige pakken, så det vil være et stort antall testtilfeller som må utføres, og dette kan derfor ikke utføres uten et automatiseringsverktøy som er kostbart og kan hemme prosjektbudsjettet.
  3. Komplekse mutanter laget av den opprinnelige koden kan føre til forvirring og feil i den opprinnelige koden.

Konklusjon

Ovennevnte forklaring definerer tydelig hva som er mutasjonstesting og dens betydning innen testing av en applikasjon. Hvis vi vil gjennom og eksostesting av en applikasjon med testscenariene for maksimal kodedekning, spiller mutasjonstesting en avgjørende rolle.

Anbefalte artikler

Dette er en guide til mutasjonstesting. Her diskuterer vi hva som er mutasjonstesting? og typer mutasjonstesting sammen med fordeler og ulemper. Du kan også gå gjennom våre andre foreslåtte artikler for å lære mer

  1. Hva er reaksjon?
  2. Negativ testing
  3. Testing av mobilapplikasjon
  4. Advanced Encryption Standard
  5. Kodedekning vs testdekning | Topp 4 forskjeller å lære
  6. Kode dekningsverktøy | Topp 6 kodedekningsverktøy