Čo je testovanie mutácií?
Pretože slovo „mutovať“ vo všeobecnosti znamená „zmenu“, znamená to aj testovanie mutácií. Testovanie mutácií je typ testovania softvéru, ktorý sa vykonáva zmenou alebo mutáciou časti kódu, aby sa skontrolovalo / overilo, či sú testovacie prípady dostatočne schopné nájsť chyby / chyby. Testovanie mutácií spadá pod testovanie v Bielej skrinke av zásade sa vykonáva pri vykonávaní testov jednotky konkrétneho modulu aplikácie. Zmeny vykonané v zdrojovom / hlavnom kóde sa vykonávajú v malom množstve, aby to neovplyvnilo jeho celkový cieľ. Toto sa tiež nazýva technika detekcie porúch, pretože sa robí za účelom lokalizácie slabých stránok testovacích prípadov vytvorením poruchy v pôvodnom kóde.
Pred akýmkoľvek testovaním je veľmi dôležité porozumieť cieľu, ktorý je za tým. Hlavným cieľom testovania mutácií je nájsť účinnosť vyvinutých testovacích prípadov, ktoré by mali byť dostatočne schopné odhaliť aj malé zmeny vykonané v kóde. Je urobené, aby sa našli problémy v testovacej sade a testovacie údaje, ktoré sa používajú pri vykonávaní testovania akejkoľvek softvérovej aplikácie. Vytvorí sa viac mutantov alebo verzií pôvodného kódu a každá z nich sa testuje proti pôvodným testovacím prípadom. Ak výsledky testovacieho prípadu zostanú rovnaké ako v pôvodnom kóde, kód a testovacie prípady sa znova skontrolujú, pretože buď nebol vykonaný, alebo testovací balík nedokáže nájsť mutantný kód.
Druhy testovania mutácií
V zásade existujú 3 typy testovania mutácií, ktoré sa vykonávajú na vytvorenie mutantov pôvodného kódu:
1. Mutácia hodnoty
Ako už názov napovedá, v hodnote Mutácia sa mení hodnota konštánt, parametrov odovzdaných v metódach, hodnoty použité v slučkách sa menia, aby sa vytvoril mutantný program. Veľká hodnota sa zmení na menšiu alebo naopak. V zásade sa hodnoty, ktoré sú už definované v programe, menia tak, aby vykonávali 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. Rozhodnutie Mutácia
V rozhodnutí Mutácia sa menia logické a aritmetické operátory použité v programe, čo mení celkové rozhodovanie v programe a jeho príslušné výsledky. Napríklad určité vyhlásenie „if“ sa spustí iba vtedy, keď (a> b). V mutantnom kóde sa tento operátor zmení na (a <b), čo zmení celkové rozhodovanie v kóde.
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. Vyhlásenie Mutácia
V príkazu Mutácia zmien sa v úplných vyhláseniach kódu vykonajú zmeny, aby sa vytvoril mutantný program. Zmeny vo výpise môžu byť vymazaním celého príkazu, zmenou poradia príkazu v kóde, skopírovaním a prilepením príkazov na iné miesto v kóde, opakovaním alebo duplikovaním niekoľkých príkazov v pôvodnom kóde.
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 testovania mutácií
Výhody a nevýhody testovania mutácií sú uvedené nižšie:
výhody
Niektoré z výhod testovania mutácií sú uvedené nižšie:
- Jednou z najväčších výhod testovania mutácií je to, že pomáha nájsť skryté chyby a maximálne pokrytie kódu, aby sa identifikovala časť kódu, ktorá nie je dôkladne testovaná v pôvodných testovacích prípadoch.
- Testovanie mutácií pomáha nájsť kvalitu testovacích prípadov, ktoré sa používajú na testovanie softvéru a poskytujú skutočnú spätnú väzbu pre testujúcich o procese testovania a kvalite testu.
- Pomáha nájsť chyby vysokej kvality, ktoré pri bežnom testovaní nie je ľahké nájsť.
- Testovanie mutácií niekedy odhalí skryté chyby, ako je nejednoznačnosť kódu, nesprávne hodnoty premenných atď. V počiatočnom štádiu testovania softvéru, čo je veľmi prospešné.
- Občas sú kód aj testovací prípad správne, ale problém bol spôsobený testovacími údajmi. Testovanie mutácií pomáha zistiť problémy v testovacích údajoch.
nevýhody
Nižšie sú uvedené niektoré z nevýhod testovania mutácií:
- Pri testovaní mutácií sa vytvárajú a testujú rôzne mutanty kódu oproti pôvodnému testovaciemu súboru, a preto spotrebuje veľa času pri vykonávaní iba testovania jednotky jednej funkcie / modulu aplikácie.
- Ako je uvedené vyššie, všetky mutanty sa testujú oproti pôvodnému súboru, takže by bolo potrebné vykonať veľké množstvo testovacích prípadov, a preto sa to nemôže vykonať bez automatizačného nástroja, ktorý je nákladný a môže obmedzovať rozpočet projektu.
- Zložité mutanty vytvorené z pôvodného kódu môžu viesť k zmätkom a chybám v pôvodnom kóde.
záver
Vyššie uvedené vysvetlenie jasne definuje, čo je testovanie mutácie a jeho dôležitosť v oblasti testovania aplikácie. Ak chceme testovanie aplikácie a výfukové plyny s testovacími scenármi maximálneho pokrytia kódom, testovanie mutácií hrá rozhodujúcu úlohu.
Odporúčané články
Toto je príručka pre testovanie mutácií. Tu diskutujeme, čo je testovanie mutácie? a typy mutačných testov spolu s výhodami a nevýhodami. Viac informácií nájdete aj v ďalších navrhovaných článkoch
- Čo je to React?
- Negatívne testovanie
- Testovanie mobilnej aplikácie
- Pokročilý štandard šifrovania
- Pokrytie kódu verzus testovacie pokrytie Top 4 rozdiely, ktoré je potrebné sa naučiť
- Nástroje na pokrytie kódu 6 hlavných nástrojov na pokrytie kódu