Rešerš existujúcich metód testovania
- irenarencova
- Sep 30, 2022
- 4 minút čítania
Updated: Oct 17, 2022
Informačný článok
Prvá kapitola predstavuje štandardné metodiky, ktoré sa používajú pri zaisťovaní
kvality softvérových aplikácií. Každá z metodík sa používa v inej fáze projektu a je
vykonávaná rôznymi špecialistami od samotných vývojárov až po testovanie bežnými
užívateľmi. Nie je nutné aplikovať v rámci jedného projektu všetky metodiky, avšak je
dôležité si uvedomiť aké pri vytváraní softvéru hrozia riziká a na základe toho sa
správne rozhodnúť akým spôsobom bude kvalita zaisťovaná.
Testovanie v priebehu vývoja (Developer Testing)
Toto testovanie vykonáva vývojár v priebehu fázy výstavby celého životného cyklu
vývoja softvéru. Má za cieľ odstrániť konštrukčné chyby pred tým ako je kód
predvedený pred QA (quality assurance). Táto stratégia je určená pre zvýšenie
kvality výsledného softvéru tak, aby bola pred QA predstavená v čo najvyššej kvalite.
Tejto metódy testovania sa nezúčastňuje žiaden tester.
Testy vývojár vykonáva vo forme integračných testov, jednotkových testov a niekedy aj systémových testov.
Tieto testy začínajú definovaním politík, ktoré vyjadrujú očakávania organizácie, čo
sa týka spoľahlivosti, bezpečnosti, výkonu a dodržiavania predpisov. Potom, ako je tím
oboznámený s týmito požiadavkami, sú implementované praktiky vývojárskeho
testovania v súlade s danými požiadavkami.
Je dôležité podotknúť, že väčšinou kód netestuje programátor, ktorý ho vytvoril, ale
testuje ho niekto iný. Táto časť testovania softvéru je najmenej nákladná. Je dôležité sa
vyhnúť situácii, kedy je program bez kontroly programátora predaný testerom a tí zistia,
že kód nie je spustiteľný. Tester sa tak úplne zbytočne pripravoval na testy a študoval
dokumentáciu.
Avšak vynára sa otázka, či je to naozaj tak, či skutočne môžeme túto časť testovania
považovať za najmenej nákladnú. Napriek tvrdeniam v literatúre, treba podotknúť, že
práca vývojára stojí firmu viac peňazí ako práca testera, a to, že vývojár strávi určitý čas
testovaním znamená, že za peniaze, ktoré ma určené na vývoj testuje, a to nie vždy musí
byť lacnejšie ako v prípade, že by túto prácu vykonal tester.
Jednotkové testy (Unit Testing)
Tieto testy sú často krát považované za zbytočné z toho dôvodu, že na nich „nie je
čas“. Napriek tomu však majú veľký potenciál aplikáciu pripraviť kvalitnejšie, vyhnúť
sa chybám a pomôcť vytvoriť aplikáciu odolnejšiu. Toto testovanie je automatické
a overuje teda korektnosť celého systému.
Ako už napovedá slovo „unit“ ide konkrétne
o testovanie správnej funkčnosti jednotlivých častí zdrojového kódu. Jednotkou je
samostatná testovateľná časť, napríklad trieda či konkrétna metóda. Testovaná jednotka
musí byť plne nezávislá na ostatných častiach kódu, preto je niekedy potreba vytvoriť
pomocné objekty s pomocou ktorých, je daná časť kódu testovateľná. Pri testovaní sa
sleduje chovanie jednotky a to, či dáta vyhovujú definíciám.
Tieto testy väčšinou vykonáva vývojár.
Testy síce vývoj zo začiatku trochu spomalia, ale zabezpečia spoľahlivejšiu aplikáciu. Nemôžu však zabezpečiť stopercentnú bezchybnosť.
Integračné testy (Integration Testing)
Ide o overenie správnej integrácie jednotiek systému. Testuje sa prepojenie všetkých
častí navrhnutého systému. Pri týchto testoch nás hlavne zaujíma ako funguje celok,
preto môžeme používať aj iné triedy alebo databázu. Ide o začlenenie aplikácie
do existujúceho prostredia. Integračné testy sú veľmi dôležité pri vývoji softvéru,
pretože sa tu už pristupuje k tzv. unit case. Testovania sa zúčastňujú testeri, ktorí
vykonávajú ako white-box testy tak aj black-box testy.
Títo testeri sú rozdelení na dva tímy, a každý z nich pracuje samostatne.
"White-box testy" – tester má prístup k obsahu programu a vie ako program pracuje
"Black-box testy" – tester vie čo má testovaný software robiť, no nevie ako pracuje vo vnútri
Systémové testy (System Testing)
Po tom, ako je overená integrácia, prichádza na rad systémové testovanie. Aplikácia
je overovaná z pohľadu zákazníka. Pripravia sa scenáre aké rôzne situácie môžu nastať
a tie sa aplikujú na vytvorenú aplikáciu. Ak sa nájdu chyby poznamenajú sa, testy sa
ukončia a chyby sa opravia. Potom sa testovanie opakuje, až kým nie sú odstránené
všetky chyby. Súčasťou tejto úrovne sú funkčné aj nefunkčné testy. Systémové testy
slúžia ako výstupná kontrola softvéru. Systémové testy sa vykonávajú vždy, i keď
žiadna iná testovacia metóda pred tým nebola použitá.
Akceptačné testy (Acceptance Testing)
V tejto fáze je potrebné pripraviť systém na reálne nasadenie, a preto prebieha až
po odstránení nedostatkov z predchádzajúcich testov. Testovanie je vykonávané buď
samotným zákazníkom, koncovým užívateľom (BETA testy) alebo internými testermi.
Scenáre k výkonu akceptačných testov pripravuje zákazník spoločne s dodávateľom.
Testy môžu prebiehať buď ako užívateľské akceptačné testovanie (user acceptance
testing), kedy užívateľ overuje vhodnosť systému pre použitie, prevádzkové testovanie
(operational testing), kedy systémoví administrátori overujú údržbu systému, zálohu
alebo obnovu systému alebo testovanie internými testermi.
Nájdené nezrovnalosti medzi aplikáciou a špecifikáciou sú vrátené vývojárskemu tímu, a po oprave sú nasadené na prostredí u zákazníka. Zákazník väčšinou chyby očakáva a preto je vhodné dohodnúť postup, ktorým budú chyby reportované vývojárskemu tímu a následne v čo najkratšej dobe opravené.
Z tohto hľadiska delíme akceptačné testy na formálne (interní testeri s vopred určeným testovacím plánom), neformálne (testovanie nie je plánované, tester si volí spôsob testovania podľa vlastného uváženia) a BETA testy (bez interných testerov). BETA testy sú považované za najefektívnejšie a je pri nich odhalených veľa skrytých chýb. Príliš veľké zdržanie v tejto úrovni testovania môže mať fatálne následky na úspech celého projektu. Je vhodné si dopredu určiť akceptačné kritériá, alebo inak koľko defektov a akého rozsahu sa môžu pri akceptačných testoch objaviť.
Nezávislé testovanie (Independent Testing)
Tohto testovania sa zúčastňujú nezávislí testeri, tj. tí, ktorí nie sú súčasťou
vývojového tímu. Testujú formou black-box testov, vďaka čomu prinesú do testovania
o niečo viac užívateľský prístup ako interní testeri. Cieľom tohto testovania je priniesť
nový pohľad na vec. Alternatívnym pohľadom na nezávislé testy je Independent
Stakeholder Testing, ktoré je zamerané na potreby a záujmy všetkých, ktorých sa
projekt týka (nie len pohľad užívateľa, ale i ďalších záujmových skupín).



Komentáre