Testování mutací
Testování mutací je typ testování softwaru, při kterém jsou určité výroky zdrojového kódu měněny / mutovány, aby se zkontrolovalo, zda jsou testovací případy schopny najít chyby ve zdrojovém kódu. Cílem testování mutací je zajištění kvality testovacích případů, pokud jde o robustnost, že by měl selhat mutovaný zdrojový kód.
Změny provedené v mutantním programu by měly být udržovány extrémně malé, aby neměly vliv na celkový cíl programu. Testování mutací se také nazývá testovací strategie založená na chybách, protože zahrnuje vytvoření chyby v programu a jedná se o typ testování White Box, který se používá hlavně pro testování jednotek.
Mutace byla původně navržena v roce 1971, ale ztratila horlivost kvůli vysokým nákladům. Nyní si znovu vybral páru a je široce používán pro jazyky jako Java a XML.
V tomto výukovém programu se naučíte
- Co je testování mutací?
- Jak provést testování mutací?
- Jak vytvořit mutantní programy?
- Co změnit v programu Mutant?
- Druhy testování mutací
- Mutační skóre:
- Výhody testování mutací:
- Nevýhody testování mutací:
Jak provést testování mutací?
Následují kroky k provedení testování mutací (analýza mutací):
Krok 1 : Do zdrojového kódu programu se zavádějí chyby vytvořením mnoha verzí nazývaných mutanty. Každý mutant by měl obsahovat jednu chybu a cílem je způsobit selhání mutantní verze, což ukazuje účinnost testovacích případů.
Krok 2 : Testovací případy se aplikují na původní program a také na mutantní program. Testovací případ by měl být adekvátní a je vylepšen, aby detekoval chyby v programu.
Krok 3 : Porovnejte výsledky původního a mutantního programu.
Krok 4 : Pokud původní program a mutantní programy generují odlišný výstup, pak je mutant zabit testovacím případem. Proto je testovací případ dostatečně dobrý, aby detekoval změnu mezi původním a mutantním programem.
Krok 5 : Pokud původní program a mutantní program generují stejný výstup, Mutant je udržován naživu. V takových případech je třeba vytvořit účinnější testovací případy, které zabijí všechny mutanty.
Jak vytvořit mutantní programy?
Mutace není nic jiného než jediná syntaktická změna provedená v programovém příkazu. Každý mutantní program by se měl lišit od původního programu o jednu mutaci.
Originální program | Mutantní program |
---|---|
If (x> y) Print "Hello" Else Print "Hi" | If ( x Else Print "Hi" |
Co změnit v programu Mutant?
Existuje několik technik, které lze použít ke generování mutantních programů. Pojďme se na ně podívat
Operandové náhradní operátory | Operátoři úpravy výrazů | Provozovatelé úprav prohlášení |
---|---|---|
Nahraďte operand jiným operandem (x za y nebo y za x) nebo za konstantní hodnotu. | Nahraďte operátor nebo vložte nové operátory do programového příkazu. | Programové příkazy jsou upraveny tak, aby vytvářely mutantní programy. |
Příklad - Pokud (x> y) nahraďte hodnoty xay Pokud (5> y) nahraďte x konstantou 5 | Příklad - If (x == y) Můžeme nahradit == do> = a mít mutantní program jako If (x> = y) a vložení ++ do příkazu If (x == ++ y) | Příklad - odstranění části else v příkazu if-else Odstraňte celý příkaz if-else a zkontrolujte, jak se chová program. Některé operátory ukázkových mutací:
|
Automatizace testování mutací:
Testování mutací je extrémně časově náročné a komplikované pro ruční provedení. Pro urychlení procesu je vhodné přejít na automatizační nástroje. Automatizační nástroje také snižují náklady na testování.
Seznam dostupných nástrojů -
- Stryker
- Testování PIT
Druhy testování mutací
V softwarovém inženýrství lze testování mutací zásadně rozdělit na 3 typy - mutace prohlášení, mutace rozhodnutí a hodnotová mutace.
- Statement Mutation - vývojář vyjme a vloží část kódu, jehož výsledkem může být odstranění některých řádků
- Hodnotová mutace - hodnoty primárních parametrů jsou upraveny
- Rozhodnutí Mutace - kontrolní prohlášení se musí změnit
Mutační skóre:
Mutační skóre je definováno jako procento zabitých mutantů s celkovým počtem mutantů.
- Skóre mutace = (zabití mutanti / celkový počet mutantů) * 100
Testovací případy jsou adekvátní mutací, pokud je skóre 100%. Experimentální výsledky ukázaly, že testování mutací je účinným přístupem k měření adekvátnosti testovacích případů. Hlavní nevýhodou však je, že vysoké náklady na generování mutantů a provedení každého testovacího případu proti tomuto mutantnímu programu.
Výhody testování mutací:
Výhody mutačního testování jsou následující:
- Jedná se o silný přístup k dosažení vysokého pokrytí zdrojového programu.
- Toto testování je schopné komplexně otestovat mutantní program.
- Testování mutací přináší vývojáři softwaru dobrou úroveň detekce chyb.
- Tato metoda odkrývá nejednoznačnosti ve zdrojovém kódu a má schopnost detekovat všechny chyby v programu.
- Zákazníci mají z tohoto testování prospěch, protože získávají nejspolehlivější a nejstabilnější systém.
Nevýhody testování mutací:
Na druhé straně jsou následující nevýhody testování mutantů:
- Testování mutací je extrémně nákladné a časově náročné, protože existuje mnoho mutantních programů, které je třeba generovat.
- Vzhledem k jeho časové náročnosti je spravedlivé říci, že toto testování nelze provést bez automatizačního nástroje.
- Každá mutace bude mít stejný počet testovacích případů než původní program. Může tedy být nutné otestovat velké množství mutantních programů oproti původní testovací sadě.
- Protože tato metoda zahrnuje změny zdrojového kódu, není vůbec použitelná pro testování Black Box.
Závěr:
Chcete důkladně otestovat svou aplikaci? Odpovědí je testování mutací. Jedná se o nejkomplexnější techniku testování programu. Jedná se o metodu, která kontroluje účinnost a přesnost testovacího programu pro detekci poruch nebo chyb v systému.