Testovanie mutácií pri testovaní softvéru: skóre mutantov & Príklad analýzy

Obsah:

Anonim

Testovanie mutácií

Testovanie mutácií je typ testovania softvéru, pri ktorom sú určité výroky zdrojového kódu zmenené / mutované, aby sa skontrolovalo, či sú testovacie prípady schopné nájsť chyby v zdrojovom kóde. Cieľom testovania mutácií je zabezpečiť kvalitu testovacích prípadov z hľadiska robustnosti, ktorá by zlyhala pri mutovanom zdrojovom kóde.

Zmeny vykonané v mutantnom programe by sa mali udržiavať veľmi malé, aby neovplyvnili celkový cieľ programu. Mutačné testovanie sa tiež nazýva stratégia testovania na základe porúch, pretože spočíva v vytvorení chyby v programe a jedná sa o typ testovania bielej skrinky, ktorý sa používa hlavne na testovanie jednotiek.

Mutácia bola pôvodne navrhnutá v roku 1971, ale stratila horlivosť kvôli vysokým nákladom. Teraz opäť nabral na sile a je široko používaný pre jazyky ako Java a XML.

V tomto návode sa naučíte

  • Čo je to testovanie mutácií?
  • Ako vykonať testovanie mutácií?
  • Ako vytvoriť mutantné programy?
  • Čo zmeniť v mutantnom programe?
  • Druhy testovania mutácií
  • Mutačné skóre:
  • Výhody mutačného testovania:
  • Nevýhody testovania mutácií:

Ako vykonať testovanie mutácií?

Nasledujú kroky na vykonanie testovania mutácií (analýza mutácií):

Krok 1 : Poruchy sa zavádzajú do zdrojového kódu programu vytvorením mnohých verzií nazývaných mutanty. Každý mutant by mal obsahovať jednu chybu a cieľom je spôsobiť zlyhanie mutantnej verzie, čo demonštruje účinnosť testovacích prípadov.

Krok 2 : Testovacie prípady sa použijú na pôvodný program a tiež na mutantný program. Testovací prípad by mal byť adekvátny a je vylepšený, aby zistil chyby v programe.

Krok 3 : Porovnajte výsledky pôvodného a mutantného programu.

Krok 4 : Ak pôvodný program a mutantné programy vygenerujú odlišný výstup, mutant je testovacím prípadom zabitý. Preto je testovací prípad dosť dobrý na to, aby zistil zmenu medzi pôvodným a mutantným programom.

Krok 5 : Ak pôvodný program a mutantný program vygenerujú rovnaký výstup, Mutant zostane nažive. V takýchto prípadoch je potrebné vytvoriť efektívnejšie testovacie prípady, ktoré zabijú všetkých mutantov.

Ako vytvoriť mutantné programy?

Mutácia nie je nič iné ako jedna syntaktická zmena vykonaná v programovom vyhlásení. Každý mutantný program by sa mal líšiť od pôvodného programu o jednu mutáciu.

Pôvodný program Mutantný program
If (x> y)
Print "Hello"
Else
Print "Hi"
If ( x )Print "Hello"
Else
Print "Hi"

Čo zmeniť v mutantnom programe?

Existuje niekoľko techník, ktoré by sa mohli použiť na generovanie mutantných programov. Pozrime sa na ne

Náhradné operátory operandu Operátori úpravy výrazov Prevádzkovatelia úpravy výpisu
Nahraďte operand iným operandom (x za y alebo y za x) alebo za konštantnú hodnotu. Nahradiť operátor alebo vložiť nové operátory do programového vyhlásenia. Programové príkazy sú upravené tak, aby vytvorili mutantné programy.
Príklad -
Ak (x> y) nahraďte hodnoty xay
Ak (5> y) nahraďte x konštantou 5
Príklad -
If (x == y)
Môžeme nahradiť == do> = a mať mutantný program ako
If (x> = y) a vloženie ++ do príkazu
If (x == ++ y)
Príklad -
Vymazanie časti else v príkaze if-else
Vymazaním celého výroku if-else skontrolujete, ako sa program správa.
Niektoré operátory ukážkových mutácií:
  • Výmena štítku GOTO
  • Výmena výpisu z vrátenia
  • Vymazanie výpisu
  • Unárne vloženie operátora (Like - a ++)
  • Výmena logického konektora
  • Porovnateľná výmena názvu poľa
  • Odstránenie časti else vo vyhlásení if-else
  • Pridanie alebo výmena operátorov
  • Nahradenie výpisu zmenou údajov
  • Úprava údajov pre premenné
  • Úprava dátových typov v programe

Automatizácia testovania mutácií:

Testovanie mutácií je mimoriadne časovo náročné a komplikované pri manuálnom vykonávaní. Na urýchlenie procesu je vhodné vyhľadať automatizačné nástroje. Automatizačné nástroje tiež znižujú náklady na testovanie.

Zoznam dostupných nástrojov -

  • Stryker
  • Testovanie PIT

Druhy testovania mutácií

V softvérovom inžinierstve je možné testovanie mutácií zásadne rozdeliť do 3 typov - mutácia vyhlásenia, mutácia rozhodnutia a hodnotová mutácia.

  1. Statement Mutation - vývojár vystrihol a prilepil časť kódu, ktorej výsledkom môže byť odstránenie niektorých riadkov
  2. Hodnotová mutácia - hodnoty primárnych parametrov sa upravia
  3. Výroky Mutation - Control sa musia zmeniť

Mutačné skóre:

Mutačné skóre je definované ako percento zabitých mutantov z celkového počtu mutantov.

  • Skóre mutácie = (zabití mutanti / celkový počet mutantov) * 100

Testové prípady sú adekvátne mutácie, ak je skóre 100%. Experimentálne výsledky ukázali, že testovanie mutácií je efektívnym prístupom k meraniu adekvátnosti testovacích prípadov. Hlavnou nevýhodou však je, že vysoké náklady na generovanie mutantov a vykonanie každého testovacieho prípadu proti danému mutantnému programu.

Výhody mutačného testovania:

Nasledujú výhody testovania mutácií:

  • Jedná sa o efektívny prístup k dosiahnutiu vysokého pokrytia zdrojového programu.
  • Toto testovanie je schopné komplexne otestovať mutantný program.
  • Testovanie mutácií prináša vývojárovi softvéru dobrú úroveň detekcie chýb.
  • Táto metóda odhaľuje nejasnosti v zdrojovom kóde a je schopná zistiť všetky chyby v programe.
  • Zákazníci majú z tohto testovania úžitok, pretože získajú najspoľahlivejší a najstabilnejší systém.

Nevýhody testovania mutácií:

Na druhej strane sú nasledujúce nevýhody testovania mutantov:

  • Testovanie mutácií je mimoriadne nákladné a časovo náročné, pretože je potrebné generovať veľa mutantných programov.
  • Z časového hľadiska je spravodlivé tvrdiť, že toto testovanie sa nezaobíde bez automatizačného nástroja.
  • Každá mutácia bude mať rovnaký počet testovacích prípadov ako pôvodný program. Môže teda byť potrebné testovať veľké množstvo mutantných programov oproti pôvodnej testovacej skupine.
  • Pretože táto metóda zahŕňa zmeny zdrojového kódu, nie je vôbec použiteľná na testovanie Black Box.

Záver:

Prajete si dôkladné otestovanie svojej aplikácie? Odpoveďou je testovanie mutácií. Je to najkomplexnejšia technika na otestovanie programu. Toto je metóda, ktorá kontroluje efektívnosť a presnosť testovacieho programu na zisťovanie porúch alebo chýb v systéme.