top of page
Vyhľadávanie

Rešerš existujúcich metód testovania

  • Writer: irenarencova
    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


bottom of page