Co je testování mutací?
Protože slovo „mutovat“ obecně znamená „změna“, znamená to i testování mutací. Testování mutací je typ testování softwaru, který se provádí změnou nebo mutací části kódu, aby se ověřilo / ověřilo, že testovací případy jsou dostatečně schopné najít chyby / defekty. Testování mutací spadá pod testování White Box a v zásadě se provádí při provádění testů jednotky konkrétního modulu aplikace. Změny provedené ve zdrojovém / hlavním kódu jsou provedeny v malém množství, aby to neovlivnilo jeho celkový cíl. To se také nazývá technika detekce poruch, protože se provádí za účelem nalezení slabosti testovacích případů vytvořením poruchy v původním kódu.
Před provedením jakéhokoli testování je velmi důležité pochopit cíl, který je za ním. Hlavním cílem testování mutace je najít účinnost vyvinutých testovacích případů, které by měly být dostatečně schopné odhalit i malé změny provedené v kódu. Je provedeno za účelem nalezení problémů v testovací sadě a testovacích dat, která se používají při provádění testování jakékoli softwarové aplikace. Vytvoří se více mutantů nebo verzí původního kódu a každá z nich je testována proti původním testovacím případům. Pokud výsledky testovacího případu zůstanou stejné jako v původním kódu, pak se kód i testovací případy znovu zkontrolují, protože kód nebyl proveden nebo testovací sada není schopna najít mutantní kód.
Druhy testování mutací
V zásadě existují 3 typy testování mutací, které se provádějí za účelem vytvoření mutant původního kódu:
1. Hodnota mutace
Jak název napovídá, v hodnotové mutaci se mění hodnota konstant, parametrů předávaných metodami, hodnoty použité ve smyčkách se mění tak, aby se vytvořil mutantní program. Velká hodnota se změní na menší nebo naopak. V zásadě jsou hodnoty, které jsou již v programu definovány, změněny tak, aby provedly Value Mutation.
Původní kód:
int a = 75636737;
int b = 3454;
int mult = a * b;
print(mult);
Kód mutanta:
int a = 75;
int b = 345466465;
int mult = a * b;
print(mult);
2. Rozhodovací mutace
V rozhodnutí Mutace se mění logické a aritmetické operátory použité v programu, což mění celkové rozhodování v programu a jeho příslušné výsledky. Například určitý příkaz „if“ se spustí pouze tehdy, když (a> b). V mutantním kódu je tento operátor změněn na (a <b), což mění celkové rozhodování v kódu.
Původní kód:
if (a>b || b>c)
(
print(“yes”);
)
else
(
print (“No”);
)
Kód mutanta:
if (a (
print(“yes”);
)
else
(
print (“No”);
)
3. Mutace příkazu
V příkazu Mutace výrazů jsou provedeny změny v úplných prohlášeních kódu, aby se vytvořil mutantní program. Změny v příkazu mohou být vymazáním celého příkazu, změnou pořadí příkazu v kódu, zkopírováním a vložením příkazů na jiné místo v kódu, opakováním nebo duplikováním několika příkazů v původním kódu.
Původní kód:
if (a > b)
(
print(“a is greater”);
)
else
(
print(“b is greater”);
)
Kód mutanta:
if(a > b)
(
// removing the statement
)
else
(
print(“b is greater”);
)
Výhody a nevýhody testování mutací
Výhody a nevýhody testování mutací jsou uvedeny níže:
Výhody
Některé z výhod testování mutací jsou uvedeny níže:
- Jednou z největších výhod testování mutací je to, že pomáhá najít skryté vady a maximální pokrytí kódu, aby bylo možné identifikovat část kódu, která není důkladně testována původními testovacími případy.
- Testování mutací pomáhá najít kvalitu testovacích případů, které se používají pro testování softwaru a poskytuje skutečnou zpětnou vazbu testerům o procesu testování a kvalitě testu.
- Pomáhá najít vysoce kvalitní chyby, které při běžném testování není snadné najít.
- Testování mutací někdy odhaluje skryté vady, jako je dvojznačnost kódu, nesprávné hodnoty proměnných atd. V kódu v raných fázích testování softwaru, což je velmi výhodné.
- Občas jsou kód i testovací případ správné, ale problém byl způsoben testovacími daty. Testování mutací pomáhá zjistit problémy v testovacích datech.
Nevýhody
Níže jsou uvedeny některé z nevýhod testování mutací:
- Při testování mutací jsou vytvářeny a testovány různé mutanty kódu oproti původní sadě testů, a proto zabírá spoustu času při provádění pouze testování jednotky jedné funkce / modulu aplikace.
- Jak je uvedeno výše, všechny mutanty jsou testovány proti původní sadě, takže by existovalo velké množství testovacích případů, které je třeba provést, a proto to nelze provést bez automatizačního nástroje, který je nákladný a může omezit rozpočet projektu.
- Složité mutanty vytvořené z původního kódu mohou vést k záměně a chybám v původním kódu.
Závěr
Výše uvedené vysvětlení jasně definuje, co je testování mutací a jeho význam v oblasti testování aplikace. Pokud chceme prostřednictvím aplikace testovat scénáře maximálního pokrytí kódem a testovat výfukové plyny, hraje klíčovou roli testování mutací.
Doporučené články
Toto je průvodce testováním mutací. Zde diskutujeme, co je testování mutace? a typy testování mutací spolu s výhodami a nevýhodami. Další informace naleznete také v dalších navrhovaných článcích
- Co je to React?
- Negativní testování
- Testování mobilní aplikace
- Pokročilý standard šifrování
- Pokrytí kódu vs Pokrytí testu Nejlépe 4 rozdíly, které je třeba se naučit
- Nástroje pro krytí kódu 6 hlavních nástrojů pro krytí kódu