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 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í:
|
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.
- Statement Mutation - vývojár vystrihol a prilepil časť kódu, ktorej výsledkom môže byť odstránenie niektorých riadkov
- Hodnotová mutácia - hodnoty primárnych parametrov sa upravia
- 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.