Testování mutací v testování softwaru: Mutant Score & Příklad analýzy

Obsah:

Anonim

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 )Print "Hello"
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í:
  • Výměna štítku GOTO
  • Výměna prohlášení o vrácení
  • Vymazání výpisu
  • Unární vkládání operátorů (Like - a ++)
  • Výměna logického konektoru
  • Srovnatelné nahrazení názvu pole
  • Odebrání části else v příkazu if-else
  • Přidání nebo nahrazení operátorů
  • Nahrazení výpisu změnou údajů
  • Úprava dat pro proměnné
  • Úprava datových typů v programu

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.

  1. Statement Mutation - vývojář vyjme a vloží část kódu, jehož výsledkem může být odstranění některých řádků
  2. Hodnotová mutace - hodnoty primárních parametrů jsou upraveny
  3. 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.