Preskus mutacije pri preskušanju programske opreme: Mutant Score & Primer analize

Kazalo:

Anonim

Preskušanje mutacij

Mutacijsko testiranje je vrsta testiranja programske opreme, pri kateri se določeni stavki izvorne kode spremenijo / mutirajo, da se preveri, ali testni primeri lahko najdejo napake v izvorni kodi. Cilj testiranja mutacij je zagotoviti kakovost testnih primerov v smislu trdnosti, da bi mutirajoča izvorna koda odpovedala.

Spremembe v programu mutant naj bodo izredno majhne, ​​da ne bodo vplivale na splošni cilj programa. Mutacijsko testiranje se imenuje tudi strategija testiranja na podlagi napak, saj vključuje ustvarjanje napake v programu in je vrsta testiranja bele škatle, ki se v glavnem uporablja za enotno testiranje.

Mutacija je bila prvotno predlagana leta 1971, vendar je zaradi visokih stroškov izgubila vnemo. Zdaj je spet izbral in se pogosto uporablja za jezike, kot sta Java in XML.

V tej vadnici boste izvedeli-

  • Kaj je testiranje mutacij?
  • Kako izvesti testiranje mutacije?
  • Kako ustvariti programe za mutante?
  • Kaj spremeniti v programu Mutant?
  • Vrste testiranja mutacij
  • Ocena mutacije:
  • Prednosti testiranja mutacij:
  • Slabosti testiranja mutacij:

Kako izvesti testiranje mutacije?

Sledijo koraki za izvedbo testiranja mutacij (analiza mutacij):

1. korak : Napake se v izvorno kodo programa vnesejo z ustvarjanjem številnih različic, imenovanih mutanti. Vsak mutant mora vsebovati eno samo napako, njegov cilj pa je, da mutantna različica odpove, kar dokazuje učinkovitost testnih primerov.

2. korak : Testni primeri se uporabljajo za izvirni program in tudi za program mutantov. Testni primer mora biti primeren in prilagojen za odkrivanje napak v programu.

3. korak : Primerjajte rezultate izvirnega in mutantnega programa.

4. korak : Če izvirni program in programi za mutante generirajo drugačen izhod, potem mutanta testni primer ubije. Zato je testni primer dovolj dober, da zazna spremembo med originalnim in mutantnim programom.

5. korak : Če izvirni program in program mutant generirata enake rezultate, Mutant ostane živ. V takih primerih je treba ustvariti učinkovitejše testne primere, ki uničijo vse mutante.

Kako ustvariti programe za mutante?

Mutacija ni nič drugega kot ena skladenjska sprememba, ki je narejena v programski izjavi. Vsak program mutant se mora od prvotnega programa razlikovati po eni mutaciji.

Originalni program Program mutantov
Če (x> y)
Natisnite "Hello"
Else
Print "Hi"
Če ( x )Natisnite "Hello"
Else
Print "Hi"

Kaj spremeniti v programu Mutant?

Obstaja več tehnik, ki bi jih lahko uporabili za ustvarjanje programov mutantov. Poglejmo jih

Nadomestni operaterji operandov Operatorji spreminjanja izrazov Operaterji za spremembo izjave
Zamenjajte operand z drugim operandom (x z y ali y z x) ali s konstantno vrednostjo. Zamenjajte operater ali vstavite nove operaterje v stavek programa. Programski stavki so spremenjeni tako, da ustvarjajo programe mutantov.
Primer -
Če (x> y) zamenja x in y vrednosti
If (5> y) zamenja x s konstanto 5
Primer -
If (x == y)
Lahko zamenjamo == v> = in imamo program mutant kot
If (x> = y) in vstavimo ++ v stavek
If (x == ++ y)
Primer -
izbrišite del else v stavku if-else
Izbrišite celoten stavek if-else, da preverite, kako se program obnaša
Nekateri vzorčni operaterji mutacije:
  • GOTO zamenjava nalepke
  • Zamenjava izjave o vrnitvi
  • Izbris izjave
  • Vstavljanje enoličnega operaterja (všeč - in ++)
  • Zamenjava logičnega konektorja
  • Primerljiva zamenjava imena polja
  • Odstranjevanje dela else v stavku if-else
  • Dodajanje ali zamenjava operaterjev
  • Nadomestitev izjave s spreminjanjem podatkov
  • Sprememba podatkov za spremenljivke
  • Sprememba podatkovnih vrst v programu

Avtomatizacija testiranja mutacij:

Testiranje mutacij je izjemno dolgotrajno in zapleteno za ročno izvajanje. Za pospešitev postopka je priporočljivo izbrati orodja za avtomatizacijo. Orodja za avtomatizacijo znižujejo tudi stroške testiranja.

Seznam razpoložljivih orodij -

  • Stryker
  • Testiranje PIT

Vrste testiranja mutacij

V programskem inženirstvu bi lahko testiranje mutacij v osnovi razvrstili v tri vrste - mutacija stavka, mutacija odločitve in mutacija vrednosti.

  1. Izjava Mutacija - razvijalec je izrezal in prilepil del kode, katerega rezultat je lahko odstranitev nekaterih vrstic
  2. Mutacija vrednosti - vrednosti primarnih parametrov so spremenjene
  3. Mutacija odločitve - nadzorne izjave je treba spremeniti

Ocena mutacije:

Rezultat mutacije je opredeljen kot odstotek pokončanih mutantov s skupnim številom mutantov.

  • Ocena mutacije = (ubiti mutanti / skupno število mutantov) * 100

Preskusni primeri so primerni za mutacijo, če je rezultat 100%. Rezultati eksperimenta so pokazali, da je testiranje mutacij učinkovit pristop za merjenje ustreznosti testnih primerov. Toda glavna pomanjkljivost je, da so visoki stroški generiranja mutantov in izvedbe vsakega testnega primera proti temu mutantu.

Prednosti testiranja mutacij:

Prednosti testiranja mutacij so naslednje:

  • To je močan pristop za doseganje velike pokritosti izvornega programa.
  • To testiranje je sposobno celovito preizkusiti program mutantov.
  • Preizkušanje mutacij razvijalcu programske opreme prinese dobro stopnjo odkrivanja napak.
  • Ta metoda razkrije nejasnosti v izvorni kodi in je sposobna zaznati vse napake v programu.
  • Kupci so deležni tega testiranja, saj dobijo najbolj zanesljiv in stabilen sistem.

Slabosti testiranja mutacij:

Po drugi strani pa so slabosti testiranja mutantov naslednje:

  • Preskušanje mutacij je izjemno drago in dolgotrajno, saj je treba ustvariti veliko programov za mutiranje.
  • Ker je zamudno, je pošteno reči, da tega testiranja ni mogoče izvesti brez avtomatiziranega orodja.
  • Vsaka mutacija bo imela enako število testnih primerov kot prvotni program. Torej bo morda treba preizkusiti veliko število programov za mutiranje v primerjavi s prvotnim testnim paketom.
  • Ker ta metoda vključuje spremembe izvorne kode, sploh ni uporabna za testiranje črne skrinjice.

Zaključek:

Ali želite izčrpno preizkusiti svojo prijavo? Odgovor je testiranje mutacije. To je najobsežnejša tehnika za preizkušanje programa. To je metoda, ki preverja učinkovitost in natančnost preskusnega programa za odkrivanje napak ali napak v sistemu.