Software testing levels – úrovne testovania softvéru

Testovanie softvéru sa môže vykonávať na rôznych úrovniach procesu vývoja softvéru. Vykonávanie testovacích činností na viacerých úrovniach pomáha včas identifikovať chyby a zlepšiť kvalitu softvérového produktu. V tomto texte sa budeme venovať rôznym úrovniam testovania, a to unit testovaniu (unit testing), integračnému testovaniu (integration testing), systémovému testovaniu (system testing) a akceptačnému testovaniu (acceptance testing).
V tejto časti stručne popíšeme jednotlivé úrovne testovania a v ďalších častiach vysvetlíme každú úroveň samostatne, pričom uvedieme príklad a podrobné vysvetlenie.
Obsah
Unit testovanie (unit testing)
- Unit testovanie je prvá úroveň testovania, ktorú zvyčajne vykonávajú vývojári.
- Pri testovaní sa modul alebo komponent testuje izolovane.
- Keďže testovanie je obmedzené na konkrétny modul alebo komponent, je možné vyčerpávajúce testovanie (exhaustive testing).
- Výhoda – chybu možno odhaliť v počiatočnom štádiu, čím sa ušetrí čas a peniaze na jej odstránenie.
- Obmedzenie – V tejto fáze sa neodhalia problémy s integráciou, moduly môžu fungovať dokonale izolovane, ale môžu mať problémy pri prepojení medzi modulmi.
Integračné testovanie (integration testing)
Integračné testovanie je druhá úroveň testovania, pri ktorej testujeme skupinu súvisiacich modulov.
Jeho cieľom je nájsť problémy s prepojením medzi modulmi, t. j. či sa jednotlivé jednotky dajú správne integrovať do subsystému. Rozlišuje sa na štyri typy – Big-bang, top-down, bottom-up a hybridné testovanie.
- Pri integrácii s Big-bang testovaním sa najprv vyžadujú všetky moduly a potom sa integrujú. Po integrácii sa vykoná testovanie integrovanej jednotky ako celku.
- Pri integračnom testovaní top-down (zhora nadol) sa testovací tok začína od modulov najvyššej úrovne, ktoré sú v hierarchii vyššie, smerom k modulom nižšej úrovne, keďže existuje možnosť, že moduly nižšej úrovne nemusia byť vyvinuté. Preto sa v takýchto prípadoch používajú zásuvné moduly (stubs), ktoré nie sú ničím iným ako fiktívnymi modulmi alebo funkciami, ktoré simulujú fungovanie modulu tým, že prijímajú parametre prijaté modulom a poskytujú prijateľný výsledok.
- Integračné testovanie bottom-up (zdola nahor) je tiež založené na inkrementálnom prístupe, ale začína sa od modulov nižšej úrovne a postupuje sa smerom nahor k modulom vyššej úrovne. Moduly vyššej úrovne opäť nemusia byť vyvinuté v čase, keď sa testujú moduly nižšej úrovne. Preto sa v týchto prípadoch používajú ovládače (drivers). Tieto ovládače simulujú funkčnosť modulov vyššej úrovne s cieľom testovať moduly nižšej úrovne.
- Hybridné integračné testovanie sa nazýva aj sendvičový integračný prístup. Tento prístup je kombináciou integračného testovania zhora nadol aj zdola nahor. V tomto prípade sa integrácia začína od strednej vrstvy a testovanie sa vykonáva v oboch smeroch, pričom sa v prípade potreby využívajú aj zásuvné moduly (stubs) aj ovládače (drivers).
Testovanie systému (system testing)
- Testovanie systému je treťou úrovňou testovania.
- Je to úroveň testovania, pri ktorej sa testuje kompletná integrovaná aplikácia ako celok.
- Jeho cieľom je zistiť, či aplikácia spĺňa obchodné požiadavky.
- Systémové testovanie sa vykonáva v prostredí, ktoré je veľmi podobné produkčnému prostrediu.
Akceptačné testovanie (acceptance testing)
- Akceptačné testovanie je poslednou a jednou z najdôležitejších úrovní testovania, po úspešnom ukončení ktorej sa aplikácia uvoľní do produkcie.
- Jeho cieľom je zabezpečiť, aby produkt spĺňal stanovené obchodné požiadavky v rámci definovaného štandardu kvality.
- Existujú dva druhy akceptačného testovania – alfa testovanie a beta testovanie.
- Ak akceptačné testovanie vykonávajú testeri alebo niektorí iní interní zamestnanci organizácie u vývojára, nazýva sa alfa testovanie (alfa testing).
- Používateľské akceptačné testovanie vykonávané koncovými používateľmi na pracovisku koncového používateľa sa nazýva beta testovanie (beta testing).