fbpx

Testovanie mutáciou alebo programová mutácia je technika testovania bielych skriniek, ktorá pomáha spoločnostiam vyvíjať celý rad nových softvérových kontrol a zároveň auditovať súčasné procesy projektu. Ide o relatívne nový prístup, ktorý zabezpečuje, že vývojári aj testeri pracujú na vysokej úrovni.

Aplikácia je len taká úspešná alebo dobrá, ako sú jej vlastné postupy zabezpečenia kvality – to znamená, že je nevyhnutné, aby organizácie využívali viac ako jeden typ testovacích techník.

Poznatky o testovaní mutácií by mohli pomôcť testovacím tímom zvýšiť ich zručnosti a všeobecný repertoár, čo by im umožnilo zvýšiť spoľahlivosť týchto kontrol. Testovanie mutácií je zložitý a citlivý proces, preto je nevyhnutné, aby testeri dôkladne preskúmali výhody, problémy a programy tretích strán, ktoré môžu zaručiť úspešnú implementáciu.

V tomto článku sa pozrieme na testovanie mutácií a na to, ako zlepšuje zabezpečenie kvality, ako aj na ďalšie kľúčové aspekty pre tímy testujúce softvér.

 

Čo je testovanie mutácií v testovaní softvéru?

Výhody zriadenia testovacieho centra excelentnosti. Je testovanie výkonnosti iné ako funkčné testovanie?

V kontexte softvéru testovanie mutáciou znamená, že tím pre zabezpečenie kvality zámerne vkladá chyby – alebo „mutácie“ – do kódu aplikácie, aby zistil, ako na ne tím reaguje. Cieľom je vytvoriť chybu a zabezpečiť, aby testovací balík dokázal identifikovať každú zmenu aplikácie.

Pri úprave kódu programu môže tester mutácie prepínať pravdivý/nepravdivý výraz, vymazať príkaz alebo jednoducho zmeniť hodnotu. Tieto chyby sa môžu prejaviť viacerými spôsobmi pri ďalších kontrolách softvéru; všetky z nich môže kvalifikovaný a skúsený testovací tím ľahko odhaliť.

Samotné mutácie sú často veľmi malé, čo umožňuje testerovi, ktorý mutuje kód, pozorovať, ako tím tieto zmeny objavuje. Významné zmeny by boli zrejmé už pri letmom pohľade – preto sú drobné chyby zvyčajne najlepším spôsobom, ako sa uistiť, že spoločnosť používa spoľahlivé testovacie postupy.

Táto technika sa konkrétne zameriava na účinnosť testovacích prípadov tímu; dokumentov obsahujúcich informácie o testoch. Tím môže na vykonávanie týchto kontrol používať aj softvér tretej strany na automatizáciu, pričom v takom prípade sa testovaním mutácie zisťuje, ako dobre dokáže táto platforma odhaliť chyby v kóde programu.

 

1. Kedy je potrebné vykonať testovanie mutácií?

 

Keďže cieľom testovania mutácií je overiť a zlepšiť súčasné kontroly zabezpečenia kvality, je nevyhnutné, aby ho tímy vykonávali už v počiatočnej fáze testovania. To znamená, že ak testovací balík nie je schopný identifikovať a „zabiť“ mutantov, je dostatok času na vykonanie rozsiahlych zmien v testovacích postupoch organizácie.

Keďže ide o veľmi univerzálnu metódu, testovanie mutácií je použiteľné prakticky pre akýkoľvek typ softvéru vrátane webových, mobilných a desktopových programov. Najlepšie to funguje vo fáze testovania jednotiek, ktorá skúma najmenšie komponenty aplikácie.

 

2. Keď nepotrebujete vykonať testovanie mutácií

 

Stále existujú scenáre, v ktorých mutácie a všeobecné testovanie bielych polí nie sú pre program vhodné; môže to byť z rôznych dôvodov.

Napríklad, ak sa testeri zameriavajú len na kontrolu pomocou testovania čiernej skrinky – v takom prípade by sa namiesto toho zamerali na front-end pre danú reláciu alebo dokonca na celkovú fázu testovania.

Niektoré spoločnosti považujú white-box testovanie za zdĺhavé a časovo náročné, čo môže viesť k tomu, že tento proces vynechajú. Silné, dobre skontrolované testovacie prípady môžu tiež obísť potrebu testovania mutácií, pretože to dokazuje usilovnosť tímu a jeho záväzok k presným testovacím postupom.

 

3. Kto sa podieľa na analýze mutácií?

kto sa podieľa na testovaní softvéru

Pri analýze mutácií sa plní niekoľko rôznych úloh vrátane:

 

– Testeri mutácií

Mutujú kód zavádzaním rôznych drobných chýb, aby sa uistili, že proces testovania funguje podľa očakávaní. Títo testeri sú zvyčajne už existujúcimi členmi tímu zabezpečenia kvality.

 

– Testeri aplikácií

Pravidelne kontrolujú, či v kóde nie sú nejaké problémy, identifikujú a opravujú všetky nájdené mutácie. Vykonávajú testovanie bielych skriniek s cieľom nájsť chyby v kódovaní, ale používajú aj iné techniky.

 

– Vývojári aplikácií

Navrhujú funkcie programu a píšu počiatočný kód. Taktiež opravujú všetky problémy, ktoré testeri nájdu, a zabezpečujú, aby bol softvér v stabilnom stave na vydanie.

 

– Projektoví manažéri

Poskytujú usmernenie k aplikácii a môžu pracovať spolu s testermi mutácií, aby zistili účinnosť svojich vlastných tímov. Zabezpečujú prísne normy v každej fáze vývoja.

 

Čo testujeme pomocou testov mutácií?

objasnenie niektorých nejasností v oblasti automatizácie testovania softvéru

Testovanie mutácií sa viac zameriava na testovanie procesov namiesto aplikácie. Na tento účel skúma tieto skutočnosti:

 

1. Testovacie prípady

 

Testovacie prípady sú dokumenty, ktoré obsahujú podrobné informácie o každom teste vrátane výsledkov, ktoré testeri očakávajú od každej jednotlivej kontroly. Konzistentné a presné testovacie prípady poskytujú členom tímu QA predstavu o stave aplikácie a o tom, ako jej výkon zodpovedá očakávaniam firmy.

Informácie v týchto testovacích prípadoch môžu určiť schopnosť testera odhaliť určité chyby – vrátane tých, ktoré vyvoláva testovanie mutácií.

 

2. Testovacie normy

 

Testy mutácie podrobne skúmajú aktuálne testovacie postupy, aby sa zabezpečilo, že členovia tímu dokážu identifikovať aj drobné problémy, ktoré by mohli ovplyvniť vnímanie softvéru používateľom.

Starostlivosť a kompetentnosť testerov môžu byť dokonca hlavnými faktormi, ktoré firma pri týchto kontrolách posudzuje. Bez dôraznej pozornosti venovanej detailom v každej fáze by testeri mohli prehliadnuť závažné mutácie, ktoré sa v programe nachádzajú.

 

3. Jednotlivé jednotky kódu

 

Testy mutácie sú bežné počas testovania jednotiek vo vývoji. Ten sa zameriava na jednotlivé komponenty, aby sa zachovalo silné zameranie na každý test, čím sa výrazne optimalizuje celý proces tým, že testeri pracujú len s relevantnými riadkami kódu.

Keďže testy mutácií sú často na začiatku fázy zabezpečenia kvality a môžu byť predstupňom testovania v plnom rozsahu, tento prístup môže zvýšiť rýchlosť bez toho, aby sa znížila presnosť.

 

4. Aktualizácie programu

 

Aktualizácie softvéru zvyčajne zahŕňajú reštartovanie testovacieho procesu, aby sa zabezpečilo, že sa nevyskytnú žiadne nové chyby a že sa predchádzajúce chyby neobjavia znova.

Kľúčovou súčasťou je opakovanie mutačných testov, ktoré pomáha presadzovať konzistentné štandardy testovania po veľkých zmenách softvéru.

Testovací tím môže považovať dôkladné kontroly po aktualizácii za zbytočné, ale mutácia kódu môže zabezpečiť, že pochopí dôležitosť testovania v každej fáze vývoja.

 

5. Softvér pre automatizáciu

 

Spoločnosti tiež vykonávajú testovanie mutácií, aby skontrolovali svoje automatizované testovacie balíky a uistili sa, že sú schopné zaznamenať mutovaný kód, okrem iných problémov.

Ak testovacia aplikácia tretej strany dokáže identifikovať externé zmeny programu a prípadne ich aj opraviť, znamená to, že organizácia môže dôverovať softvéru na automatizáciu testov.

Je dôležité, aby firmy overovali svoj prístup k automatizácii; to dáva každému testerovi istotu.

 

6. Stratégia automatizácie

 

Spôsob, akým spoločnosť integruje automatizáciu do svojich procesov, je rovnako dôležitý ako používaný softvér; môže sa napríklad rozhodnúť zaviesť hyperautomatizáciu. To umožňuje spoločnosti inteligentne sa rozhodnúť, ktoré mutácie a softvérové testy automatizovať.

Bez silnej stratégie automatizácie, ktorá by zohľadňovala obrovskú rozmanitosť kódu aplikácie, môžu byť niektoré testy nekompatibilné s automatizáciou, čo obmedzuje možnosti platformy.

 

7. Aplikácia

 

Hoci sa testovanie mutácií zameriava viac na testovací tím ako na aplikáciu, stále môže poukázať na dôležité informácie o tomto programe.

Napríklad testovanie mutácie ukazuje, ako softvér reaguje na zmeny v kóde, vrátane toho, či tieto problémy signalizuje spôsobom, ktorý tím očakáva.

Tento prístup nie je technikou testovania softvéru, ale napriek tomu dokáže poskytnúť zaujímavé údaje o jeho vnútorných operáciách.

 

Životný cyklus testov mutácií

Obvyklý životný cyklus testovania mutácií je nasledovný:

 

1. Analýza požiadaviek

 

Prvým krokom životného cyklu testovania mutácií je zistiť, čo presne si vyžaduje validáciu a ktoré časti kódu aplikácie by mali z týchto testov najväčší úžitok.

Tím môže hovoriť s vývojármi a vedúcimi pracovníkmi, aby zistil ich obavy a začal ich riešiť.

 

2. Plánovanie testov

 

Testeri potom začnú vyvíjať presné kontroly, ktoré majú v úmysle implementovať – v tomto prípade mutácie, ktoré poskytnú najlepší prehľad.

Táto fáza určuje celkovú stratégiu testovania mutácií a spôsob, akým bude tím efektívne realizovať zamýšľané mutácie kódu.

 

3. Vývoj testovacích prípadov

 

Testovanie mutácií zahŕňa samostatnú testovaciu dokumentáciu vrátane informácií o zmutovanom kóde a spôsobe, akým testeri majú problém odstrániť.

Dobré vedenie záznamov zaručuje, že všetky testy prebiehajú podľa plánu, a môže pomôcť tímu udržať si záväzok dodržiavať vysoké štandardy testovania.

 

4. Nastavenie testovacieho prostredia

 

Testeri sa ubezpečujú, že aplikácia je pripravená na zmeny – a že majú postup na riešenie týchto problémov, ak ich ostatní členovia tímu nedokážu odhaliť.

V rámci toho testeri mutácií vytvoria testovací server a použijú ho ako plátno pre svoje mutácie.

 

5. Vykonanie testu

 

Po dokončení príprav testeri zmenia kód v niekoľkých komponentoch aplikácie a potom čakajú, kým si ostatní testeri všimnú problémy a opravia ich.

Testeri mutácií aj testeri aplikácií to musia podrobne zdokumentovať, aby sa uistili, že ich záznamy sú spoľahlivé.

 

6. Uzavretie testovacieho cyklu

 

Po dokončení testovania testeri mutácií dvakrát skontrolujú, či všetky vykonané zmeny opravili buď testeri aplikácie, alebo oni sami.

Potom uzavrú testovací cyklus a analyzujú výsledky, pričom diskutujú o tom, ako testeri reagovali na rôzne chyby spolu s ich schopnosťou ich odstrániť.

 

7. Opakovanie testu

 

Po ukončení testovacieho cyklu by mohlo byť potrebné ho po budúcich aktualizáciách softvéru znovu aktivovať.

Každá zmena v aplikácii určitým spôsobom mení jej funkčnosť, čo vedie k novým možnostiam, ktoré musí tím zohľadniť, aby bol proces testovania dostatočne dôkladný.

 

Výhody testovania mutácií

 

Vykonávanie testov mutácií má mnoho výhod vrátane:

 

1. Overuje proces testovania

 

Hlavným prínosom testovania mutácií je jeho schopnosť ukázať, ako testeri spoločnosti pristupujú k softvéru – a ich schopnosť rozpoznať problémy s kódovaním. Tým sa tiež zabezpečí, že testovacie prípady tímu sú dostatočne komplexné a pokrývajú všetky potrebné testy.

Testy mutácie skúmajú celkový postup testovania organizácie s cieľom zaručiť, že funguje podľa očakávaní.

 

2. Zabezpečuje silnú automatizáciu

 

Testovanie mutácií pomáha tímu skontrolovať, či je ich platforma na automatizáciu testovania tretej strany schopná adekvátne identifikovať chyby v kóde a riešiť ich správnym spôsobom.

Ak ich tento softvér nedokáže rozpoznať ani po potrebnej kalibrácii, možno by stálo za to vymeniť platformu za takú, ktorá tieto testy bez problémov zvládne.

 

3. Dobré pokrytie

 

Každý proces testovania softvéru musí byť schopný široko pokryť celú aplikáciu, aby sa zabezpečilo, že každý aspekt dostane potrebnú úroveň pozornosti.

Testy mutácie môžu meniť akúkoľvek časť kódu programu; dobrá implementácia umožňuje, aby tieto testy zahŕňali všetky hlavné funkcie. To učí testerov hľadať problémy v celej aplikácii.

 

4. Skúma zdrojový kód

 

Keďže testovanie mutácie zahŕňa prácu s kódom a prípadné priame zmeny, táto metóda by mohla poukázať aj na neoptimalizované skripty prítomné v aplikácii.

Testeri softvéru môžu autorizovať program a vykonávať bežné kolo testov len vtedy, ak je kód softvéru adekvátny; tieto kontroly umožňujú testerom upozorniť na potenciálne budúce problémy.

 

5. Vedie k lepšiemu softvéru

 

Testovanie mutácií pomáha zabezpečiť, aby procesy testovania aplikácie vyhovovali požiadavkám programu.

Ak analýza mutácie odhalí, že tím zabezpečenia kvality nedodržiava správne postupy alebo že testovacie prípady sú nedostatočné, testeri môžu pracovať na zlepšení. Bez tejto náležitej starostlivosti môže organizácia vydať chybný výrobok bez toho, aby si to uvedomila.

 

6. Účinné pre rôzne jazyky

 

Bez ohľadu na jazyk, ktorý testovací tím používa pre svoju aplikáciu, sú k dispozícii softvérové možnosti, ktoré môžu ponúknuť vysokokvalitnú analýzu mutácií.

Zahŕňa množstvo funkcií kvality života, ktoré sú špecifické pre daný jazyk a zjednodušujú kontroly na dosiahnutie väčšej spoľahlivosti. Prístup šitý na mieru pre rôzne jazyky zvyšuje kvalitu každého jednotlivého testu.

 

7. Vysoko dostupné nástroje

 

Mnohé z najlepších mutačných platforiem sú úplne open source, čo znamená, že ponúkajú viac možností prispôsobenia a komplexnú škálu funkcií zadarmo alebo za výrazne nižšie náklady.

Vďaka menšiemu počtu prekážok v porovnaní s mnohými inými formami testovania je mutácia kódu pre podniky užitočným a pohodlným spôsobom, ako posúdiť alebo dokonca zlepšiť svoj prístup k zabezpečeniu kvality.

 

Výzvy testovania mutácií

výzvy testovanie záťaže

 

Tento proces je spojený aj s mnohými výzvami, ako napríklad:

 

1. Vyžaduje znalosti programovania

 

Aby mohli testeri vykonávať tieto kontroly, musia mať komplexné znalosti o programe a kóde, čo sťažuje prácu menej skúseným testerom.

Podnik môže testovať softvér len spôsobom, ktorý vyhovuje existujúcim zručnostiam testerov, konkrétne ich schopnosti upraviť aplikáciu a vytvoriť opraviteľnú chybu kódovania.

 

2. Nevhodné na testovanie čiernej skrinky

 

Testovanie čiernej skrinky zahŕňa najmä preskúmanie prednej časti aplikácie bez kontroly jej vnútorného fungovania a kódu – to je v skutočnosti nezlučiteľné s testovaním mutácie.

V dôsledku toho sú tieto kontroly užitočné len pre niektoré testy v porovnaní s inými metódami, z ktorých mnohé môžu ponúknuť oveľa väčšie pokrytie celej fázy testovania.

 

3. Navrhovanie mutačných testov je časovo náročné

 

Mutácia kódu môže byť zdĺhavý proces, pretože tím musí nájsť jednotlivé komponenty, ktoré by stálo za to zmutovať. Samotné rozhodovanie o tom, ktoré mutácie sa majú zaviesť, môže zabrať veľa času; to môže byť problematické, keď ostatné typy testovania v skutočnosti čakajú na tieto kontroly, aby sa plne potvrdil prístup spoločnosti k testovaniu.

 

4. Môže vyžadovať mnoho mutácií kódu

 

Podobne aj komplexné projekty si prirodzene vyžadujú vyšší počet mutantov, aby sa zabezpečil komplexný prístup k testovaniu. To predlžuje fázu mutácie a môže si vyžadovať mnoho manuálnych zmien v kóde aplikácie.

Bez kvalitného softvéru na automatizáciu testovania s možnosťou mutácie programu by to mohlo byť pre testerov ťažké úspešne realizovať.

 

5. Testeri si nemusia všimnúť chyby

 

Najväčšou obavou, ktorú testeri mutácií a projektoví manažéri pri implementácii týchto kontrol často majú, je možnosť, že testeri softvéru (manuálni alebo automatizovaní) si problémy jednoducho nevšimnú.

To si môže vyžadovať úplnú revíziu testovacích postupov firmy – aj keď to môže testerom poskytnúť dôležité informácie o ich štandardoch zabezpečenia kvality.

 

6. Môže byť náročný na pamäť

 

Testovanie mutácií si vo všeobecnosti vyžaduje vysoký výpočtový výkon, čo však môže závisieť od aplikácie, ktorú testeri používajú.

Ak má organizácia obmedzený počet strojov alebo tieto zariadenia majú nízke špecifikácie, mohli by mať problém spustiť príliš veľa simultánnych mutácií. To ovplyvňuje počet kontrol, ktoré môžu vykonať pred ukončením fázy testovania.

 

7. Správy môžu byť informačne bohaté

 

Hoci to závisí najmä od rozhrania nástroja na testovanie mutácií tímu, správy, ktoré generujú, sa môžu ťažko analyzovať.

To znamená, že ich manuálne triedenie a vyhľadávanie správnych výsledkov testov si vyžaduje čas; niektoré programy umožňujú používateľom prispôsobiť samotný proces vykazovania; to sa v jednotlivých aplikáciách líši.

 

Charakteristika testov mutácií

Nefunkčné testovanie: čo je to, rôzne typy, prístupy a nástroje

Hlavné charakteristiky účinných testov mutácií sú:

 

1. Komplexné

 

Tieto kontroly pokrývajú každý hlavný aspekt softvéru; spoločnosti s dostatočnými zdrojmi môžu dokonca navrhnúť test mutácie pre každý bežný testovací prípad.

Hoci presný počet závisí od možností a preferencií organizácie, efektívne testy mutácie pokrývajú širokú škálu kódovaných funkcií.

 

2. Strategické

 

Programové mutácie by sa mali podobne riadiť jasnou a dobre naplánovanou štruktúrou, ktorá uľahčuje celkové ciele testovania organizácie.

Napríklad chyby, ktoré vytvárajú, sa môžu približovať k reálnym zlyhaniam testov, čo umožňuje testerom predvídať tieto problémy, ak sa prirodzene vyskytnú, čo výrazne zlepšuje proces testovania vo firme.

 

3. Konštruktívne

 

Cieľom testovania mutácií je identifikovať nedostatky v testovaní – ukázať, ako by tím mohol zlepšiť svoje kontroly a opraviť drobné chyby, keď sa objavia.

Testeri mutácií musia uprednostniť „neplatné“ mutácie, ktoré ovplyvňujú funkčnosť softvéru, čo umožňuje jasnejšie zlepšenie testovania v rámci celého projektu.

 

4. Preventívne

 

Tieto kontroly slúžia na overenie celkovej stratégie tímu; to znamená, že testovanie mutácií funguje lepšie v počiatočných fázach vývoja.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Ak si testeri všimnú nejaké významné nedostatky vo svojom prístupe k zabezpečeniu kvality, získajú potrebný čas na zmenu svojich testovacích prípadov, aby sa uistili, že sú adekvátne.

 

5. Konzistentné

 

Testovanie mutácií v rôznych iteráciách aplikácie by malo priniesť konzistentné výsledky a zároveň pridať viac kontrol, aby sa prispôsobilo zmenám softvéru.

Pri následných kontrolách sa musí venovať rovnaká pozornosť detailom, aby sa zachovala ich účinnosť – bez tejto presnosti môžu byť testy mutácie menej presné.

 

6. Jemné

 

Cieľom mutačných testov je preskúmať schopnosť tímu zabezpečenia kvality identifikovať chyby kódu prostredníctvom jeho testov a platforiem tretích strán.

To znamená, že testy by nemali byť okamžite zrejmé každému, kto kontroluje softvér; cieľom je preskúmať, ako testeri reagujú na drobné problémy s kódom.

 

7. Spolupráca

 

Tak ako pri každom testovaní softvéru, aj pri mutácii kódu ide o proces, ktorý si bežne vyžaduje tímovú prácu a komunikáciu, aby sa zabezpečil jeho úspech. Udržiavanie atmosféry spolupráce pomáha vyhnúť sa informačným silám, ktoré môžu viesť k nesprávnej komunikácii – to tiež zaručuje, že každý tester zostane sústredený na úlohy, ktoré má na starosti.

 

Typy testov mutácií

Testovanie koncového zariadenia, nástroje, čo to je, typy, prístupy

Existujú tri hlavné typy testov mutácií:

 

1. Mutácia hodnôt

 

Hodnotové mutácie priamo menia hodnoty v kóde, pričom menia jedno číslo alebo písmeno na iné spôsobom, ktorý ovplyvňuje funkčnosť aplikácie.

Napríklad tester môže zmeniť presné parametre programu, napríklad čísla, na ktoré reaguje. Testeri mutácií sa môžu špecificky zamerať na konštantné hodnoty softvéru, pretože tie zostávajú počas bežnej prevádzky vždy rovnaké.

 

2. Rozhodovacia mutácia

 

Rozhodovacie mutácie modifikujú aritmetické a logické operátory, čím účinne menia spôsob, akým aplikácia reaguje na konkrétne situácie.

Napríklad zámena operátora väčšieho ako (>) s operátorom menšieho ako (<) prirodzene ovplyvní výstup programu. Testeri môžu tiež vymeniť „alebo“ za „a“ alebo naopak, čím sa zásadne zmení tento softvér a spôsob, akým interpretuje informácie, ktoré poskytujú ostatní testeri a prípadní používatelia.

 

3. Mutácia výrokov

 

Mutácie príkazov menia skutočné príkazy kódu, čím sa upravujú pravidlá, ktoré aplikácia používa na svoje rozhodovanie. Testeri môžu meniť obsah týchto riadkov, duplikovať ich alebo dokonca odstrániť, aby skontrolovali, ako mutantný program ovplyvňuje funkčnosť softvéru.

Tieto mutácie menia stavebné bloky programu a môžu odstrániť celé funkcie alebo inak zabrániť ich fungovaniu.

 

Vyjasnenie niektorých nejasností

– Testovanie mutácií vs. testovanie regresie

Porovnanie testovania UAT s regresným testovaním a inými testami

Mutácia aj regresné testovanie sú užitočné prístupy k testovaniu softvéru – pochopenie každej z týchto techník môže zlepšiť celkové zabezpečenie kvality v spoločnosti.

 

1. Čo je regresné testovanie?

 

Pri regresnom testovaní testeri skúmajú softvér medzi rôznymi iteráciami, aby sa uistili, že funguje aj napriek zmenám v kóde.

Bez týchto kontrol môžu aj menšie zmeny spôsobiť vážne problémy, ktoré môžu spôsobiť opätovné objavenie predchádzajúcich chýb. To si vo všeobecnosti vyžaduje automatizáciu vzhľadom na zložitú povahu opätovného testovania každej zložky; mnohé spoločnosti sa z tohto dôvodu vzdávajú regresných testov.

Testeri môžu tieto kontroly vykonávať na jednotlivých jednotkách, jednotlivých komponentoch alebo na celom výrobku – presný rozsah požadovaných testov závisí najmä od projektu a jeho rozsahu.

 

2. Aký je rozdiel medzi mutačnými a regresnými testami?

 

Regresné testovanie sa primárne zameriava na kontrolu programu a jeho funkčnosti, zatiaľ čo mutácia kódu sa namiesto toho zameriava na to, ako testeri reagujú na problémy.

Prvá z nich sa zväčša uskutočňuje po viacerých iteráciách programu, zatiaľ čo kontrola mutácie môže prebiehať v ktorejkoľvek fáze vývoja – zvyčajne však v počiatočných častiach testovacej fázy.

Regresné aj mutačné testy sa môžu zaoberať jednotlivými kódovacími jednotkami a tým, ako môžu drobné zmeny viesť k závažným problémom, na ktorých odstránení musia testeri pracovať.

 

3. Záver: Testovanie mutácií vs. automatizované testovanie

Výhody zriadenia testovacieho centra excelentnosti. Je testovanie výkonnosti iné ako funkčné testovanie?

Automatizácia je často kľúčovou súčasťou testovania mutácií vzhľadom na rozsah kontrol a jednotiek – preto je niekedy nevyhnutná pre úspešný a komplexný proces testovania.

Spoločnosti bežne používajú mutácie kódu na preskúmanie svojej automatizačnej platformy tretej strany a toho, ako dobre identifikuje problematické skripty.

Kombinácia dôkladného katalógu kontrol mutácií s automatizovaným softvérom môže výrazne zvýšiť pokrytie firmy a zabezpečiť lepšie výsledky.

Hoci ide o dva samostatné testovacie postupy, nemusia si navzájom odporovať. Napríklad integrácia robotickej automatizácie procesov môže posilniť stratégiu testovania mutácií v spoločnosti.

 

Čo potrebujete na začatie testovania mutácií v softvérovom inžinierstve?

kontrolný zoznam procesov testovania softvéru

Obvyklé požiadavky na komplexné testovanie mutácií zahŕňajú:

 

1. Jasná stratégia testovania

 

Testovací tím musí stanoviť stratégiu testovania mutácií vrátane toho, ktoré komponenty a jednotky sú najdôležitejšie na preskúmanie.

Napríklad niektoré aspekty kódu môžu byť pre úspešnosť a funkčnosť aplikácie dôležitejšie; testeri by sa mali uistiť, že existuje dostatok mutácií, ktoré to zohľadňujú.

Dôležitým faktorom je aj plán testovania mutácií spoločnosti, ktorý zabezpečuje, že testeri majú dostatok času na preskúmanie kódu.

 

2. Žiadny nárast rozsahu

 

Aj pri dôkladnej stratégii, ktorá stanovuje prístup spoločnosti k testovaniu mutácií, je možné, že počet testov bude výrazne vyšší, ako je potrebné.

Počas tohto postupu je najdôležitejšia efektívnosť, najmä preto, že na tím môžu čakať ďalšie fázy testovania, aby našiel a zlikvidoval mutácie. Predtým, ako testeri začnú meniť kód, musia jasne definovať svoj rozsah; tým sa zabezpečí, že všetko bude možné zvládnuť v praktickom časovom rámci.

 

3. Prísna dokumentácia

 

Každý proces testovania profituje z kompletnej dokumentácie – často vo forme testovacích prípadov, ktoré podrobne popisujú jednotlivé kontroly a všetky relevantné mutácie.

To znázorňuje aktuálny pokrok tímu v testoch, čo je užitočné najmä pre manažérov a vedúcich pracovníkov. Dokumentovanie každej mutácie kódu tiež pomáha testerom viesť prehľadné záznamy o vykonaných zmenách.

Ak má tím zabezpečenia kvality pri testovaní problémy s nájdením týchto mutácií, tieto dokumenty účinne slúžia ako kľúč k odpovedi.

 

4. Kvalifikovaní testeri

 

Testeri, ktorí mutujú kód, musia dobre rozumieť softvéru – vrátane mnohých spôsobov, ktorými ho môžu mutovať alebo dokonca rozbiť.

Testeri mutácií približne vedia, ako ich zmeny ovplyvnia aplikáciu a ako by ostatní členovia tímu zabezpečenia kvality mohli identifikovať mutovaný kód.

To si vo všeobecnosti vyžaduje dobrú úroveň znalostí programovania. Aby bola analýza mutácií účinná, testeri softvéru by mali mať tiež dobre rozvinuté zručnosti a skúsenosti s testovaním.

 

5. Softvér pre automatizáciu

 

Pred testovaním mutácií môže byť nevyhnutný automatizačný softvér tretej strany vzhľadom na množstvo kontrol, ktoré si tento proces často vyžaduje. Platí to najmä pre zložité aplikácie s väčším množstvom kódu a funkcií, ktoré musí tím zabezpečenia kvality preskúmať.

Spoločnosti môžu tieto kontroly zaviesť špeciálne na testovanie toho, ako softvér na automatizáciu reaguje na chyby v kódovaní. To môže byť základnou súčasťou skúšobného procesu firmy, aby sa rozhodlo, ktoré programy sú najužitočnejšie.

 

Proces testovania mutácií

kontrolný zoznam uat, nástroje na testovanie webových aplikácií, automatizácia a ďalšie

Obvyklé kroky, ktoré testeri zvyčajne vykonávajú pri analýze mutácií, sú:

 

1. Príprava testov

 

Príprava je prvým krokom každého procesu testovania. To zahŕňa aj rokovania o presných kontrolách, ktoré sa majú vykonať, a získanie potrebného súhlasu, napríklad od vedenia spoločnosti a zainteresovaných strán.

Testeri musia tieto kontroly vypracovať tak, aby sa prispôsobili časovému plánu projektu a zároveň pokryli všetky hlavné komponenty. Plánovanie tímu môže určiť účinnosť jeho mutácií kódu.

 

2. Zavedenie mutantov a chýb

 

Po dokončení príprav začne testovací tím meniť kód a mutovať ho v súlade so svojím plánom na zavedenie konkrétnych chýb. Tieto chyby by mali byť relatívne malé, pretože to umožňuje testerom posúdiť schopnosť zvyšku tímu identifikovať problémy s kódovaním.

Drobné chyby môžu organizácii pomôcť skontrolovať aj citlivosť softvéru tretej strany pre automatizáciu.

 

3. Aplikovanie testovacích prípadov

 

Testovacie prípady musia zohľadňovať všetky možné body zlyhania aplikácie – to si môže vyžadovať prepísanie, ak je mutantný program schopný fungovať bez chýb.

Testovacie prípady programu predstavujú celú šírku kontrol, ktoré testeri vykonávajú; každý z nich by mal testerom pomôcť odhaliť všetky skryté mutácie a byť neoddeliteľnou súčasťou použiteľnosti aplikácie.

 

4. Porovnanie výsledkov

 

Po pridaní mutačných chýb do programu a použití testovacích prípadov tímu musí tím porovnať výsledky pôvodného aj mutovaného programu.

Dúfame, že pri každej úspešnej kontrole v pôvodnej aplikácii sa vyskytne aj chyba v mutovanej aplikácii. To dokazuje schopnosti testerov aj nástrojov, ktoré používajú.

 

5. Pôsobiť na rôzne výstupy

 

Ak sa výstupy medzi pôvodným a mutovaným programom líšia podľa očakávaní testerov, znamená to, že testovací prípad môže úspešne zničiť mutanta preukázaním jeho prítomnosti.

Testeri potom môžu postupovať s dôverou vo svoju metodiku a schopnosť identifikovať problémy s kódovaním. Pre tieto konkrétne testy nie sú potrebné žiadne zmeny testovacích prípadov.

 

6. V prípade potreby zmeňte puzdrá

 

Niektoré mutácie kódu môžu viesť k rovnakým záverom v rôznych programoch, čo naznačuje, že testovacie prípady nedokážu úspešne upozorniť na všetky možné chyby v aplikácii.

V týchto prípadoch zostáva mutant „nažive“ a môže naďalej ovplyvňovať softvér spôsobom, na ktorý testeri nemajú rámec – to vedie k vytvoreniu lepších testovacích prípadov.

 

Ako vytvoriť mutantné programy

Mutantné programy sú v podstate identické s pôvodnými programami, až na jednu malú zmenu, ktorá môže ovplyvniť funkčnosť aplikácie malým, ale viditeľným spôsobom.

Komplexné a podrobné testovacie prípady pomáhajú testerovi alebo softvérovému balíku presne určiť tieto zmeny a z nich vyplývajúce chyby. Každý prípad, ktorý spoločnosť kontroluje, si vyžaduje pôvodný aj mutovaný program, pričom sa účinky každej zmeny zobrazujú samostatne.

Programy zvyčajne kopírujú reálne chyby, napríklad preklepy v kódovaní. Pre testerov je tiež dôležité vyhnúť sa „ešte narodeným“ mutantom, ktoré bránia spusteniu aplikácie – to je pre testerov príliš zrejmé.

 

Čo zmeniť v zmutovanom programe?

Čo je testovanie zaťaženia?

Ako pri mnohých premenných testovania softvéru, presné zmeny, ktoré testeri vykonajú, závisia od aplikácie a jej kódu.

Existujú tri kategórie, ktoré zahŕňajú väčšinu mutačných testov: operandy, výrazy a príkazy. Zmenou ktorejkoľvek z nich možno vytvoriť efektívny mutantný program – ukazuje sa, ako rôzne hodnoty alebo pravidlá ovplyvňujú samotnú logiku, ktorú program používa.

Tieto kategórie súvisia s tromi hlavnými typmi mutácií, ktoré testeri skúmajú; ide o rozhodovacie, hodnotové a výrokové mutácie. Zmeny by mali byť menšie a nesmú úplne zabrániť vykonaniu testu.

 

Osvedčené postupy testovania mutácií

Čo je testovanie jednotiek

Pri vykonávaní testovania mutácií v kontexte testovania softvéru sa oplatí dodržiavať určité postupy, ktoré zabezpečia dobré výsledky, ako napríklad:

 

1. Maximalizujte skóre mutácie

 

Skóre mutácie programu je percento mutantov, ktoré tím alebo aplikácia dokáže úspešne identifikovať alebo „zabiť“.

Napríklad, ak sa v jednom kole testovania mutácií nachádza 40 mutácií a testeri ich nájdu 36, skóre mutácií je 90 % – cieľom tímu je vždy zabezpečiť skóre 100 %.

 

2. Náhodný výber mutantov

 

Hoci to môže pomôcť určiť priority určitých komponentov a dôkladnejšie ich otestovať, je to užitočné aj pre testerov, ktorí si náhodne vyberajú mutanty, ktoré pridajú – najmä v krátkom čase.

Pokiaľ tieto kontroly reprezentujú všetky významné typy mutácií, tím zabezpečenia kvality môže overiť svoju celkovú stratégiu testovania softvéru.

 

3. Udržujte zmeny malé

 

Mutácie kódu by mali predstavovať menšie odchýlky od pôvodného programu, pretože to ilustruje, aká je pravdepodobnosť, že tester identifikuje určité chyby; menšie problémy s kódovaním tiež ukazujú, aký citlivý je jeho softvér.

Je veľmi dôležité, aby testeri mutácií našli rovnováhu, ktorá umožní, aby tieto drobné zmeny stále spôsobovali viditeľné chyby.

 

4. Jedna mutácia na program

 

Testovanie mutáciou sa zaoberá jednotlivými testovacími prípadmi izolovane s cieľom skontrolovať, nakoľko sú komplexné. Aby sme tomu pomohli, každý mutovaný program by mal mať len jednu zmenu oproti pôvodnému.

Programy s viacerými mutáciami sa nemusia dať efektívne spárovať s testovacími prípadmi; mutácie si môžu navzájom odporovať.

 

5. Starostlivo zvážte softvér na automatizáciu

 

Spoločnosti často používajú mutáciu kódu na overenie toho, či tím používa automatizačný softvér a či je schopný identifikovať chyby rovnako efektívne ako ľudský tester.

To znamená, že výber správnej automatizačnej platformy môže byť dôležitým faktorom, rovnako ako možnosť integrácie robotickej automatizácie procesov.

 

6. Používajte vývoj riadený testovaním

 

Vývoj riadený testovaním (TDD) označuje špecifickú techniku, ktorá zohľadňuje požiadavky na testovanie v každej fáze vývoja.

To pomáha zabezpečiť, aby boli testovacie prípady plne kompatibilné so softvérom – vďaka tomu môže ľahko prejsť mutačnými testami a vytvoriť lepší program, ktorý sa synchronizuje s procesmi zabezpečenia kvality.

 

Typy výstupov z testu mutácie

výhody zriadenia testovacieho centra excelentnosti (TCoE)

Existuje niekoľko výstupov, ktoré generujú testy mutácií, vrátane:

 

1. Mutantný program

 

Mutantné programy sú prirodzeným výstupom týchto kontrol; testeri ich vytvárajú tak, aby odrážali ich aktuálne testovacie prípady a problémy, ktoré pomáhajú odhaliť. Programy sa zvyčajne odchyľujú od svojho pôvodného náprotivku len v jednom malom, ale významnom smere, aby sa zabezpečila väčšia spoľahlivosť.

 

2. Živý alebo mŕtvy mutant

 

Po testoch je mutácia buď „zničená“, alebo zostáva „živá“ – to sa jednoducho vzťahuje na to, či tester (alebo jeho softvér) úspešne identifikuje problém s kódovaním, alebo nie.

Ak mutant zostane nažive, testovacie prípady môžu potrebovať vážne zmeny.

 

3. Testovací prípad mutácie

 

Tím zabezpečenia kvality používa samostatné testovacie prípady špecifické pre mutácie, ktoré zaznamenávajú informácie o svojich mutovaných programoch.

To pomáha tímu zabezpečiť komplexné záznamy o každej kontrole; tieto dokumenty obsahujú podrobnosti o mutáciách a ich vplyve na program.

 

4. Skóre mutácie

 

Konečným cieľom každého testu mutácií je dosiahnuť 100 % skóre mutácií, pričom testovacie postupy spoločnosti úspešne lokalizujú a usmrtia každého mutanta. Čokoľvek menšie ako toto naznačuje, že ich testovacie prípady a všeobecné procesy si vyžadujú zlepšenie, aby bolo možné identifikovať problematický kód.

 

Príklady testovania mutácií

testovanie api a automatizácia

Tu sú tri príklady testovania mutácií:

 

1. Príklad mutácie hodnôt

 

Mutácie hodnôt zahŕňajú zmenu konštanty alebo parametra, ktorá môže potenciálne zmeniť limity programu. Napríklad softvér automatického pokladničného zariadenia môže na určenie ceny potraviny použiť jej hmotnosť.

Testeri by mohli zmutovať kód tohto programu a zmeniť parametre hmotnosti, čím by sa potraviny stali oveľa drahšími za každú uncu alebo libru. Tester alebo testovacia platforma by mala byť schopná identifikovať účinky rôznych hodnôt na tento program.

Keďže táto chyba mení jednu z hlavných funkcií softvéru, testovacie prípady by mali túto chybu zaznamenať a upozorniť tím.

 

2. Príklad rozhodovacej mutácie

 

Rozhodovacie mutácie zahŕňajú zmenu aritmetického alebo logického operátora, obrátenie alebo inú zmenu spôsobu, akým táto aplikácia reaguje na vstup používateľa. Ak sa vrátime k príkladu samoobslužných pokladní, tieto stroje môžu označiť položku s neočakávane vysokou hmotnosťou, prípadne v dôsledku chyby používateľa.

Kód stroja by to mohol vykonať prostredníctvom rozhodnutia „if (a>b)“ – pričom „b“ by odrážalo očakávanú váhu a „a“ by zodpovedalo skutočnej váhe. Tím to môže zmeniť na „if (a≤b)“, čím sa zmení spôsob, akým pokladňa reaguje; označí položku aj pri očakávanej hmotnosti.

 

3. Príklad mutácie výrokov

 

Mutácie príkazov zahŕňajú zmenu pravidla alebo výstupu – môže ísť aj o úplné odstránenie príkazov z aplikácie. Tieto mutácie môžu byť výraznejšie ako iné, v závislosti od frekvencie konkrétneho výroku; je veľmi dôležité, aby testeri vyberali výrok s rozumom.

Napríklad samoobslužná pokladňa môže zobraziť upozornenie, ak sa používateľ pokúsi kúpiť tovar s vekovým obmedzením. Bez príslušného výpisu by sa stroj mohol zrútiť alebo by mohol umožniť, aby si zákazník kúpil akúkoľvek položku.

Zmenou výroku a jeho zdôraznením tímu môžu testeri overiť, či ich prístup zohľadňuje tieto problémy.

 

Typy chýb a nedostatkov zistených testovaním mutácií

zaptest-runtime-error.png

Mutačné testy odhaľujú problémy najmä v rámci samotného procesu testovania. Vzhľadom na to uvádzame okruh problémov, ktoré môžu tieto kontroly pomôcť identifikovať:

 

1. Nejasné testovacie prípady

 

Ak analýza mutácií odhalí nízke skóre mutácií (alebo dokonca akékoľvek skóre pod 100 %), naznačuje to, že testovacie prípady tímu nie sú schopné zohľadniť všetky možné chyby, ktoré by mohli ovplyvniť aplikáciu.

Nemusia byť dostatočne špecifické alebo široké, aby zodpovedali požiadavkám tímu. Tieto dokumenty by mali zahŕňať všetky možnosti, s ktorými sa tím môže stretnúť pri testovaní softvéru, aby sa zabezpečila spoľahlivosť.

 

2. Nevyškolený testovací tím

 

Testy mutácií môžu tiež ilustrovať schopnosti tímu vrátane toho, ako dobre osobne identifikujú mutácie a iné chyby. Ak napriek jasným a podrobným testovacím prípadom nedokážu nájsť mutanty v programoch, môže to byť spôsobené tým, že testeri tieto prípady nepoužili správne.

Mutantné programy môžu vykazovať problémy počas celého procesu testovania – to môže zahŕňať aj nekvalifikovaných alebo nevyškolených testerov.

 

3. Nevhodný testovací softvér

 

Ak spoločnosť použije tieto kontroly na kontrolu svojej vlastnej testovacej platformy, môže zistiť, že softvér nedokáže presne identifikovať alebo zlikvidovať mutantný kód.

Firma môže reagovať preskúmaním iných možností, kým nenájde takú, ktorá je kompatibilná s jej testovacími prípadmi. Ak automatizačný softvér nedokáže nájsť problematický kód, pravdepodobne bude mať problém identifikovať ďalšie problémy, ktoré ovplyvňujú softvér.

 

4. Neoptimalizovaný kód

 

Testovanie mutácií môže odhaliť problémy, ktoré sú už v softvéri prítomné. Napríklad testeri sa môžu pokúsiť o mutáciu kódu, ale sami odhalia kritické chyby.

To slúži ako ďalšia dôležitá perspektíva programu, ktorá ukazuje, že mutácia kódu prináša výhody aj mimo procesu testovania. Čím viac testerov skúma tento kód v akejkoľvek funkcii, tým viac problémov môže tím odhaliť a opraviť počas fázy testovania.

 

Spoločné metriky testu mutácií

testovanie záťaže

 

Medzi hlavné metriky, ktoré používajú mutačné testy, patria:

 

1. Zabití mutanti

 

Ide o počet mutácií, ktoré testeri alebo softvér dokázali identifikovať, pričom ich existenciu označili, aby zamestnanci mohli nájsť takéto drobné chyby.

Množstvo mutantov, ktoré testeri zabijú, závisí od sily ich testovacích prípadov.

 

2. Živí mutanti

 

Živé mutácie sú tie, ktoré tester alebo softvér nedokáže identifikovať – ukazujú na prípadné medzery v stratégii zabezpečenia kvality tímu. Ak sa tak stane, testeri by mali rekalibrovať svoj postup a testovacie prípady tak, aby sa prispôsobili týmto mutantom a v budúcich kontrolách ich vyradili.

 

3. Platné mutanty

 

Táto metrika určuje množstvo mutácií, ktoré program dokázal úspešne zahrnúť bez toho, aby chyba počas behu znehodnotila test a jeho účinnosť.

Platné mutácie sú tie, ktoré môže tester a automatizačný softvér preskúmať; je to spôsobené tým, že mutácie sú relatívne malé.

 

4. Neplatné mutanty

 

Významné mutácie by mohli ovplyvniť aplikáciu natoľko, že by bolo testovanie nepraktické alebo dokonca nemožné – preto pomáha sledovať, koľko „neplatných“ mutácií sa v zmutovanom programe nachádza.

Ich identifikácia umožňuje testerom upraviť alebo dokonca odstrániť ich, čím sa zabezpečí, že kontroly budú zahŕňať len platné mutácie.

 

5. Celkový počet mutantov

 

Počet mutácií bez ohľadu na ich platnosť je ďalšou metrikou, ktorú testeri sledujú; umožňuje im to monitorovať mutácie a zaznamenávať ich stav.

Keďže každá mutácia zvyčajne zahŕňa samostatný test, celkový počet slúži aj ako počet celkových mutácií kódu.

 

6. Skóre mutácie

 

Najužitočnejšou metrikou pre analýzu mutácií je obyčajne skóre mutácií, čo je vlastne percento platných mutácií, ktoré tester alebo automatizačný balík dokázal odhaliť.

Čokoľvek, čo je menej ako 100 % detekcia, môže byť znakom nesprávnych testovacích postupov.

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

7 chýb a nástrah pri implementácii mutantných testov

testovanie softvéru automatizácia post

Testovanie mutácií je zložitý proces, ktorý musia spoločnosti vykonávať rozumne, aby sa vyhli vážnym problémom alebo chybám. Tu je sedem nástrah, ktorým by sa mali testeri pri vykonávaní testov mutácií vyhnúť:

 

1. Nesprávne škálovanie mutácií

 

Pri analýze mutácií je dôležité zohľadniť rozsah, pretože tento proces slúži na to, aby testeri identifikovali drobné chyby v aplikácii. Ak je mutácia pre testerov príliš zrejmá, nemusí to byť účinný spôsob kontroly ich schopnosti všimnúť si problémy so softvérom alebo im čeliť.

 

2. Neplatné alebo živé mutácie

 

Dokonca aj pri správnom rozsahu majú mnohé mutácie len obmedzenú účinnosť – napríklad ak nevedú k poruche alebo vedú k problému, ktorý zastaví fungovanie aplikácie.

Testeri by mali mať na pamäti, ako môže akákoľvek zmena kódovania ovplyvniť celý softvér.

 

3. Nekompatibilné testovacie prípady

 

Testovacie prípady a mutácie sa musia dokonale spájať, aby sa zabezpečilo konzistentné a harmonické testovanie. Pri rozhodovaní o tom, ktoré mutácie pridať, alebo dokonca pri navrhovaní počiatočných testovacích prípadov môže tím zabezpečenia kvality pracovať na tom, aby sa zaručilo, že tieto mutácie do seba zapadajú a celkovo vedú k plynulejšiemu testovaniu.

 

4. Termíny a harmonogramy

 

Fázy testovania sú rôzne dlhé, ale vždy by sa mali riadiť internými termínmi spoločnosti. Spoločnosti, ktoré správne nenaplánujú svoje testy mutácií, nemusia byť schopné dokončiť proces včas.

Predtým, ako sa projekt dostane do fázy testovania, musí tím zabezpečiť, aby bol plán testovania dostatočne komplexný.

 

5. Nedostatočné pokrytie testov

 

Podniky sa môžu rozhodnúť implementovať mutácie svojich kódexov náhodne, ale stále je dôležité, aby pokrývali širokú škálu otázok.

Aby testeri aj softvér dokázali odhaliť každý typ mutácie, kontroly by mali zahŕňať minimálne niekoľko mutácií hodnôt, rozhodnutí a príkazov.

 

6. Používanie mutantov na testovanie softvéru

 

Hoci testovanie mutácií ponúka nový pohľad na aplikáciu, tímy musia túto metódu používať len na kontrolu vlastného procesu testovania. Spoločnosť musí pochopiť presné možnosti a obmedzenia testovania mutácií; táto technika môže byť úspešná len popri iných kontrolách softvéru.

 

7. Príliš veľa mutantov

 

Je nesmierne dôležité, aby spoločnosti zabezpečili široké pokrytie testov, ale môžu pritom implementovať príliš veľa mutantov. Každý mutačný program si vyžaduje značný výpočtový výkon, čo obmedzuje počet programov, ktoré môže organizácia vykonávať súčasne.

Spustenie príliš veľkého počtu mutácií môže tiež sťažiť dodržiavanie termínov testovania.

 

Kontrolný zoznam testovania mutácií, tipy a triky

Kontrolný zoznam testovania softvéru

Existuje niekoľko ďalších tipov, ktoré by mohli pomôcť každému tímu zlepšiť úspešnosť procesu testovania mutácií, ako napríklad:

 

1. Skontrolujte kompatibilitu programovacieho jazyka

 

Bezplatné aj platené nástroje na testovanie mutácií sa zvyčajne špecializujú na jeden kódovací jazyk – preto je dôležité, aby si testeri vybrali nástroj, ktorý je kompatibilný s aplikáciou a platformou na testovanie softvéru.

Testovací tím by mal preskúmať mnoho možností, aby sa uistil, že používa program, ktorý vyhovuje jeho rozpočtu, ako aj preferovanému kódovaciemu jazyku.

 

2. Rozumne rozdeľte testy

 

Rôzni členovia testovacieho tímu sa pravdepodobne budú zaoberať rôznymi aspektmi aplikácie, čo zvyčajne zodpovedá ich špecifickým silným a slabým stránkam a celkovým skúsenostiam.

Keď tím prideľuje každému testerovi testy mutácie, mal by na to myslieť, aby získal predstavu o ich zdatnosti; to ukazuje, ako dobre bude pravdepodobne prebiehať ďalšie testovanie.

 

3. Starostlivo vyberajte chyby

 

Ak sa v nedávnej iterácii softvéru vyskytla chyba týkajúca sa hodnoty alebo príkazu, mohlo by pomôcť zopakovať ju a preskúmať, ako tím alebo program reaguje.

To pomáha zaručiť dlhú životnosť aplikácie a ukazuje schopnosť tímu všimnúť si predchádzajúce chyby, ak sa opakujú – ide o kľúčovú zložku regresného testovania.

 

4. Maximalizácia výpočtového výkonu

 

Keďže kontroly mutácií môžu vyžadovať veľký výpočtový výkon, pomáha to maximálne využiť hardvér spoločnosti.

Ak majú napríklad niektoré stroje silnejšie špecifikácie, mohlo by byť užitočné spustiť mutanty na týchto zariadeniach. To umožňuje firme vyhnúť sa výrazným oneskoreniam, ku ktorým by mohli viesť pomalšie stroje.

 

5. Neodmietajte živé mutácie

 

Aj pri prísnom časovom pláne by mali testeri pracovať na úprave a rozšírení svojich testovacích prípadov, aby bojovali proti všetkým mutantom, ktoré prežijú proces.

Hoci sa tieto chyby nemusia zdať významné, ak ich softvér alebo tester neodhalí, stále predstavujú zlyhanie testovacích prípadov pri identifikácii všetkých problémov s kódovaním.

 

6. Preskúmanie nového automatizačného softvéru

 

Ak sú testovacie prípady tímu dostatočne podrobné, ale ich automatický testovací balík ich nedokáže úspešne použiť na identifikáciu každej mutácie, môže im pomôcť iný softvér.

K dispozícii je mnoho bezplatných a platených platforiem a spoločnosti by mali preveriť všetky možnosti, aby sa uistili, že majú softvér, ktorý dlhodobo najlepšie vyhovuje ich testovacím prípadom.

 

7. Synchronizujte každý proces testovania

 

Spolupráca je základnou zložkou každej stratégie testovania – pomáha zabezpečiť, aby jednotlivé procesy do seba ľahko zapadali podľa zámerov tímu.

Testovací tím by napríklad mohol vypracovať svoje testovacie prípady s ohľadom na mutáciu, aby sa zabezpečila vyššia úroveň kompatibility, čo by testerom uľahčilo overenie ich stratégie.

 

8. Používajte jednotkové testovanie

 

Testovanie jednotiek umožňuje tímu zabezpečenia kvality kontrolovať jednotlivé časti kódu, čím sa výrazne zjednodušujú testy a uľahčuje sa identifikácia problémov.

Táto kombinácia môže byť obzvlášť užitočná, ak sa testeri obávajú termínov, čo im dáva príležitosť zjednodušiť svoje kontroly a zlepšiť celkové pokrytie – čo vedie k oveľa silnejším softvérovým testom.

 

9. Napíšte podrobné testovacie prípady

 

Testovacie prípady mutácií by mali obsahovať primerané informácie o mutácii a jej vplyve na program, ako aj o tom, ako testovací tím alebo platforma tieto chyby lokalizovali.

Poskytnutím čo najväčšieho počtu podrobností môže tester osobne overiť testovací prípad a uistiť sa, že tím presne vie, ako zabezpečiť bezproblémové testovanie.

 

5 najlepších nástrojov na testovanie mutácií

 

 

K dispozícii je široká škála nástrojov, ktoré môžu spoločnostiam pomôcť s ich požiadavkami na testovanie mutácií. Ako to často býva v prípade aplikácií na testovanie softvéru, ceny a funkcie jednotlivých platforiem sa líšia, preto je veľmi dôležité, aby si organizácie vybrali tú, ktorá najlepšie vyhovuje ich potrebám.

Niektoré z týchto programov by mohli ponúkať bezplatné náprotivky alebo byť úplne open source; hoci za väčšie pohodlie je zvyčajne potrebné platiť.

 

Vzhľadom na to vám prinášame päť najlepších nástrojov na testovanie mutácií.

 

1. Stryker

 

Spoločnosť Stryker sa špecializuje na mutácie JavaScriptu a výrazne zjednodušuje tento proces, aby sa zaručila absencia falošne pozitívnych výsledkov a znížilo sa celkové úsilie, ktoré by inak testeri museli vynaložiť na všetky kontroly mutácií.

Platforma Stryker inteligentne vyhodnocuje softvér a na základe zozbieraných informácií určuje reťazce alebo segmenty kódu, ktoré by bolo vhodné zmutovať. Táto aplikácia je vybavená prehľadným textovým reportérom, ktorý vypíše súhrnné informácie o mutantovi vrátane toho, či ho Stryker dokázal zabiť.

 

2. PITest

 

PITest je veľmi obľúbený na celom svete vďaka svojej schopnosti meniť bajtový kód jazyka Java a vykonávať tisíce mutácií za sekundu. Táto aplikácia využíva údaje o pokrytí testovacích prípadov na okamžité zistenie, ktoré testy by mohli zabiť mutanta.

Spúšťa len testy, o ktorých vie, že budú relevantné, čím obmedzuje výpočtový výkon, ktorý tento postup zvyčajne spotrebuje. PITest je tiež kompatibilný s väčšinou foriem doplnku Surefire unit testing, ale môže mať problémy s efektívnou správou závislostí testovacích príkazov.

 

3. Poistenie++

 

Insure++ má mnoho testovacích funkcií vrátane analýzy mutácií, vďaka ktorým platforma dokáže odhaliť nejednoznačnosti v programe. Insure++ sa odchyľuje od bežného testovania mutácií a upúšťa od generovania chybných mutácií a namiesto toho vytvára funkčne ekvivalentné mutácie, ktoré zodpovedajú zdrojovému kódu projektu.

Je to preto, aby sa zabránilo implicitným predpokladom, ktoré môžu neúmyselne obmedziť proces testovania a nemusia odrážať reálne testovacie prostredie. Ako už názov napovedá, platforma je kompatibilná najmä s programami v jazyku C++ a každá jej funkcia je prispôsobená tomuto jazyku.

 

4. Jumble

 

Táto aplikácia sa špecializuje na rámec JUnit JavaScript s komplexnými vizuálnymi indikátormi toho, ako kód reaguje na analýzu mutácií. Jumble je platforma s otvoreným zdrojovým kódom a pracuje v rámci bajtového kódu aplikácií Java, čím znižuje čas každého testovacieho cyklu.

Podobné aplikácie, ktoré používajú výlučne zdrojový kód programu, môžu niekedy potrebovať viac času na vykonanie týchto kontrol z dôvodu procesu rekompilácie.

Jumble tiež využíva heuristiku na ďalšiu optimalizáciu testovania mutácií, čím zjednodušuje následné testovanie.

 

5. MutPy

 

MutPy podporuje mutačné testy pre aplikácie založené na jazyku Python a ponúka plnú podporu pre mutácie vysokého rádu, ako aj komplexnú analýzu pokrytia. Rozhranie tohto programu je jednoduché na používanie vo výstupnej fáze, ktorá používateľom prehľadne zobrazuje každý podstatný detail mutačných testov tímu.

MutPy ponúka testerom mnoho možností na mieru, ktoré im umožňujú kalibrovať tento softvér špeciálne podľa ich požiadaviek. Platforma využíva abstraktné syntaktické stromy, ktoré poskytujú jasnú štruktúru zdrojového kódu aplikácie, vďaka čomu majú testeri väčšiu dôveru vo svoje mutácie.

 

Záver

Mutácia kódu sa dá použiť takmer v každom procese testovania softvéru a ponúka množstvo jasných výhod pre spoločnosti, ktoré túto techniku implementujú – najmä v skoršej fáze zabezpečenia kvality.

Žiadna metodika nie je bez výziev; to znamená, že je nevyhnutné, aby organizácie múdro zvážili výhody mutačnej analýzy a zároveň sa uistili, že zapadá do ich bežného časového plánu vývoja softvéru.

Tieto mutácie dávajú testovacím tímom možnosť preskúmať vlastný prístup a určiť jeho účinnosť pri hľadaní a odstraňovaní chýb v zdrojovom kóde. Táto technika je obzvlášť kompatibilná s automatizačnými postupmi a umožňuje firmám overiť softvér, ktorému dôverujú pri vykonávaní kontrol.

Testovanie mutácií ponúka komplexný spôsob, ako môžu tímy zabezpečujúce kvalitu lepšie pochopiť svoje vlastné procesy a softvér vrátane problémov, ktoré by inak neodhalili.

Preto je veľmi dôležité, aby testovacie tímy dôkladne preskúmali túto techniku a posúdili, či zodpovedá potrebám organizácie – vrátane toho, či je zvolený nástroj na mutáciu plne kompatibilný s ich programovacím jazykom. Softvér na automatizované testovanie ZAPTEST sa môže pochváliť mnohými funkciami, ktoré mu umožňujú absolvovať mutačné testy, vďaka čomu majú tímy plnú dôveru v jeho schopnosti.

Verzie Free aj Enterprise ponúkajú vysokokvalitný proces testovania, ktorý sa ľahko prispôsobí zmenám kódu.

 

Často kladené otázky a zdroje

1. Najlepšie kurzy o testovaní mutácií

 

Online kurzy môžu pomôcť začínajúcim testerom naučiť sa základy mutácie kódu alebo posilniť už existujúce zručnosti skúsených pracovníkov zabezpečujúcich kvalitu. Lekcie všeobecného testovania softvéru môžu testerom priniesť aj mnohé výhody. Medzi najlepšie online kurzy pre testerov mutácií patria:

– PluralSight ‚Mutation Testing in Java with PITest‘ sa zaoberá najmä tým, ako zmeniť kód jazyka Java a spôsobmi, akými by tento prístup mohol byť prínosom pre praktické procesy testovania softvéru.

– Kurz „The Complete 2023 Software Testing Bootcamp“ od spoločnosti Udemy je mimoriadne aktuálny kurz, ktorý ilustruje všetky kľúčové zložky testovania softvéru vrátane testovania bielych políčok.

– Alisonina kniha „Testovanie softvéru – Stratégie testovania pokrytia podmienok a mutácie“ je zadarmo a podrobne skúma, ako rozumne implementovať testovanie mutácie.

– PluralSight ‚Unit Testing Fundamentals‘ skúma výhody a vlastnosti testovania jednotiek a pomáha študentom pochopiť presný postup písania silných testov jednotiek.

– Ďalším bezplatným kurzom je „Úvod do testovania jednotiek“ od spoločnosti Udemy, ktorý poskytuje jasný prehľad o testovaní jednotiek, ako aj o dôležitosti stratégií vývoja riadeného testovaním.

 

2. Akých je 5 najčastejších otázok na pohovore o testovaní mutácií?

 

Existuje niekoľko otázok, ktoré môžu firmy položiť uchádzačom počas pohovoru, aby si overili ich skúsenosti alebo pochopenie testovania mutácií spolu s jeho základnými princípmi. To umožňuje spoločnosti uistiť sa, že zamestná kvalifikovaného testera, ktorý dokáže bez problémov pristupovať k rôznym scenárom súvisiacim s mutáciami.

Presné otázky sa líšia, ale môžu zahŕňať aj otázky na ich vlastné názory alebo príklady ich schopností mutácie kódu.

 

Päť najdôležitejších otázok na pohovore o testovaní mutácií:

 

– S ktorými nástrojmi na testovanie mutácií máte predchádzajúce skúsenosti, ak nejaké máte? Aké boli hlavné funkcie tohto softvéru?

– Ako by ste sa snažili zabezpečiť zdravú rovnováhu medzi rýchlosťou a hĺbkou testovania?

– V ktorých situáciách by mutačná analýza nebola možná? Ako by ste skontrolovali postup testovania v týchto scenároch?

– Ak sa mutácii hodnoty podarí prežiť proces testovania, ako by ste postupovali, aby sa to neopakovalo?

– Aké informácie by ste uviedli v testovacom prípade mutácie, aby ste zaručili, že vaši kolegovia majú k dispozícii potrebné údaje?

 

3. Najlepšie návody na testovanie mutácií na YouTube

 

Na YouTube sú k dispozícii bezplatné výukové programy, webové semináre a ďalšie videá, ktoré pomôžu testerom lepšie pochopiť testovanie mutácií. Medzi najužitočnejšie videá a seriály na túto tému patria:

 

– Software Testing ‚Mutation Testing for Programs‘, ktorá poskytuje praktické príklady toho, ako mutácia kódu pomáha programom, spolu s návodom na písanie dôkladných testovacích prípadov.

– Testovanie mutácií spoločnosti Devoxx: v ktorej sa zaoberá tým, ako analýza mutácií zlepšuje celkové postupy testovania pre všetky druhy softvérových projektov.

– Konferencie NDC „Zabite všetkých mutantov! Intro to Mutation Testing“, ktorá skúma, ako môžu testovacie balíky využívať mutácie kódu a chyby, ktoré pomáhajú vytvárať.

– GOTO Conferences ‚Mutation Testing in Python‘, ktorá konkrétne skúma, ako môžu aplikácie založené na jazyku Python použiť mutačnú analýzu na dosiahnutie konkrétnych cieľov testovania.

– Diega Pacheca ‚Java Mutation Testing With PITest‘, ktorý podobne ako v JavaScripte ilustruje, ako softvér využíva mutáciu kódu – so zameraním na mutáciu programu PITest.

 

4. Ako udržiavať testy mutácií?

 

Kombinácia analýzy mutácií s regresným testovaním a ďalšími dlhodobými stratégiami umožňuje spoločnostiam zabezpečiť vysoký štandard zabezpečenia kvality aj po vydaní.

Následné aktualizácie môžu viesť k zmenám kódu, ktoré si vyžadujú ďalšie kontroly. Testovanie mutáciou ukazuje, že automatizačný softvér a testeri sú konzistentní v rôznych verziách toho istého softvéru, čím sa opätovne overuje ich konkrétny prístup.

Nové funkcie si vyžadujú nové testovacie prípady, najmä ak tieto funkcie interagujú s už existujúcimi funkciami.

Okrem toho používanie vývoja riadeného testami umožňuje členom tímu plánovať životnosť softvéru a testovať kompatibilitu ako súčasť vlastného vývojového cyklu.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo