top of page
Vyhľadávanie

Metódy testovania

  • Irena Renčová
  • May 8, 2022
  • 5 minút čítania

Updated: Sep 29, 2022

Metóda black box


Testovanie black box, často označované ako funkčné testovanie, je spôsob, akým realizovať testovanie bez znalosti vnútornej dátovej štruktúry systému. Zdrojový kód ani dokumentácia nie je k dispozícii, preto je za potreby používať testovacie scenáre. Metódou black box zisťujeme správanie sa systému, to znamená, či sa systém ako celok správa tak, ako je definované v špecifikácii. Na vstup testovanej aplikácie sa privedú určené hodnoty, a na základe znalosti hodnôt, ktoré sa musia objaviť na výstupe sa kontroluje ich správnosť. Programátor nemá informácie, ktoré sa týkajú obsluhy výnimiek a chýb a časti zdrojového kódu, ktorý sa vykonáva. Pre aplikáciu sú jednoznačne definované rozsahy a typy povolených a nepovolených hodnôt pre výstup na základe určených vstupov. Pri opakovanom zadaní rôznych vstupných hodnôt na vstup aplikácie tester vie, aké výstupné hodnoty alebo správanie aplikácie môže očakávať. Black box metóda môže prebiehať celkom manuálne, ale i úplne automatizovane. Používajú sa pritom rôzne nástroje. Black box je metóda ideálna pre použitie v prípadoch, keď sú známe alebo presne definované hodnoty alebo rozsahy možných hodnôt. Black box si môžeme predstaviť ako čiernu skrinku s nedefinovanou vnútornou štruktúrou.


Využitie black box Black box sa využíva hlavne na zistenie chýb už bežiaceho systému alebo aplikácie. Ku kompletnému vykonaniu testu nám postačuje samotný program alebo jeho umiestnenie. Výhodou black box testovania je v prvom rade jednoduchosť, nakoľko testy môže vykonávať i osoba bez znalosti programovacích jazykov. Vďaka rýchlosti je možné relatívne v krátkom čase otestovať aj väčšie systémy. Testovanie je však závislé na testovacích scenároch. Zmenou programovacieho jazyka alebo operačného systému sa spôsob a priebeh testovania nezmení. Výhodou je aj fakt, že tester nepotrebuje k dispozícii zdrojový kód.


Výhody a nevýhody black box K veľkým nevýhodám black box patrí nízka predpovedateľnosť kvality zdrojového kódu. V prípade, že na výstupe sa neobjaví neočakávaná hodnota, nie je zaručené, že zdrojový kód aplikácie v poriadku. Z hľadiska efektívnosti môže obsahovať rôzne defekty. Okrem požadovaných funkcií sa môže objaviť i nežiaduce správanie sa aplikácie, ktoré sa prejavuje napríklad vykonávaním nešpecifikovanej operácie, ktorá sa neprejaví na výstupe.



Metóda white box


Predpokladom pre testovanie metódou white box, niekedy nazývanou glass box alebo open box, je znalosť vnútornej štruktúry softvéru. Vnútornou štruktúrou môžeme chápať charakter a usporiadanie vnútorných dátových štruktúr. Pri realizovaní testovania white box má tester k dispozícii dokumentáciu softvéru a taktiež zdrojový kód testovanej aplikácie. White box vďaka podrobným informáciám vnútornej štruktúry má možnosť testovať všetky existujúce cesty, ktoré môže daný program vykonať. Je možné testovať aj chybové vstupy. Pri použití metódy black box sa overujú iba výstupné hodnoty, no metóda white box nám umožňuje kontrolovať celé vnútro programu a zároveň overiť správnosť na výstupe. Z toho dôvodu je white box náročnejšia metóda, pretože je potrebné kontrolovať všetky vnútorné programové cesty. Pre korektné testovanie je nutné pochopiť zdrojový kód. V literatúrach je často tento spôsob označovaný ako audit zdrojového kódu. Realizácia white box testovania sa uskutočňuje buď ručne alebo úplne automatizovane. V praxi sa však mnohokrát stretávame s vhodnou kombináciou týchto spôsobov.


Využitie white box

Testovanie white box je použiteľné napríklad pre webové služby pri hľadaní chýb testermi a vývojovými pracovníkmi. White box test môžeme takisto využiť aj na zistenie, akým spôsobom je spravovaný prístup k častiam aplikácie a k jej údajom. White box metóda slúži tiež k nájdeniu nežiaduceho a potenciálne nebezpečného kódu. V praxi sa aplikácia navonok môže javiť ako bezchybná, a môže pracovať v súlade s dokumentáciou, no zdrojový kód úplne v poriadku byť nemusí. Existujú testy, ktoré sú zamerané na overovanie, či aplikácia funguje správne podľa požiadaviek v špecifikácii.


Ak sa nájdu určité nezrovnalosti a chyby, je možné, že práve tieto chyby spôsobujú neštandardné správanie sa aplikácie počas prevádzky. Neželaný kód môže vykonávať akúkoľvek činnosť a môže sa aktivovať v rôznom čase alebo ako reakcia na nejakú udalosť. V každom prípade je však dôležité, nehľadiac na príčinu výskytu nežiaduceho kódu, tento kód včas odhaliť a odstrániť. White box má oproti black box testovaniu výhodu v tom, že chyby je možné nájsť aj iným spôsobom ako náhodným.


Výhody a nevýhody white box

K výhodám white box testovania patrí odhalenie nežiaduceho kódu a odhalenie nezrovnalostí skôr, než sa zdrojový kód skompiluje. K nevýhodám white box testovania patria hlavne vysoké investičné náklady pri analýze zdrojového kódu, potreba dokonalej znalosti testovaného systému a programovacích jazykov.


Metóda grey box


Grey box testovanie je v literatúrach často označované aj výrazom translucent box. Hlavným znakom grey box je neúplná znalosť vnútornej dátovej štruktúry softvéru. Testovacie scenáre sa realizujú metódou black box. Môžeme povedať, že tento spôsob vznikol zlúčením oboch testovacích metód, black box a white box. Nemožno preto hovoriť čisto o black box, nakoľko čiastočne poznáme vnútorné programové členenie a často máme prístup k údajom v databáze. White box sa zase líši práve tým, že znalosť vnútornej štruktúry rozoberáme do hĺbky. Veľkým prínosom grey box testovania je fakt, že je veľmi jednoduché. Pretože tester vie, že softvér vo vnútri funguje správne, má možnosť tak lepšie vykonať testovanie zvonka.


Využitie Grey box Grey box využíva obe predošlé testovacie metódy. White box sa používa k nájdeniu slabých stránok softvéru a oblastí bezpečnostných chýb. Black box metóda sa potom použije na zistenie, či nájdené miesta s bezpečnostnými chybami môžu byť miestom vykonania útoku na systém. Často sa tento typ používa na testovanie aplikácií, u ktorých máme kontrolu nad vstupmi a výstupmi a zároveň umožnený prístup k údajom v databáze. Počas testovania môžeme kontrolovať všetky tri hodnoty a zistiť, kde dochádza v aplikácii ku korekcii výsledkov, resp. výstupných hodnôt.


Grey box je zaužívaný aj v prípade, ak nechce poskytnúť testerovi zdrojový ani binárny kód, ale poskytujeme len architektúru celého systému.


Výhody a nevýhody grey box

K výhodám patrí prepojenie výhod black box a white box prístupu. Nie je potrebný zdrojový ani binárny kód, pretože testovanie sa zakladá na znalosti funkčnej špecifikácie a architektúre aplikácie. Nevýhodami tejto metódy je neúplné testovanie, ktoré spôsobuje absencia zdrojových a binárnych kódov. Preto nie je možné otestovať aplikáciu do hĺbky. Nevýhodou je takisto aj to, že nevieme zistiť, či aplikácia obsahuje nejaký škodlivý kód alebo či je kód dostatočne efektívny.


Vyhodnotenie metód


Nie je možné jednoznačne povedať, ktorá z metód a druhov testovania je najlepšia, či najuniverzálnejšia. Každý spôsob má svoje opodstatnenie a špeciálne prípady použitia v určitej fáze vývoja konkrétneho softvéru. Vo veľkej miere je výber testovacej metódy ovplyvnený možnosťami dodávateľa testov, zložitosťou. Pri výbere treba zvažovať a brať do úvahy fakt, kto a akým spôsobom bude danú aplikáciu používať. Všetky tri skupiny testovacích metód možno nechať realizovať domácim, ale aj externým zamestnancom a pracovníkom. Preto treba dbať na to, aby neprišlo k zneužitiu informácii alebo znalostí. Pri testovaní white box prichádza tester do priameho kontaktu so zdrojovým kódom a ak má dostatočné skúsenosti a znalosti, môže zdrojový kód zneužiť a využiť vo svoj prospech. Riziko pri použití black box sa už netýka zneužitia zdrojového kódu, nakoľko nie je k dispozícii, možno však odcudziť napríklad vizuálny návrh alebo dizajn softvéru.


V procese testovania je dôležité dosiahnuť splnenie niekoľkých podmienok. Z podmienok merateľnosti a opakovateľnosti vyplýva, že ak uskutočníme test nad rovnakou dátovou oblasťou viackrát s použitím rovnakých testovacích scenárov, je nutné dosiahnutie rovnakých alebo v zanedbateľnej miere odlišných výsledkov. Minimálne, zanedbateľné odchýlky môžu pri určitých typoch testovania bežne nastať. Najdôležitejší je výstup z testovania, resp. počet a typ nájdených chýb, počet a typ vyriešených a nevyriešených chýb.


Pri testovaní funkcionality aplikácie je veľmi dôležité dobre a efektívne zvoliť tie najdôležitejšie oblasti testovania. Neuváženým rozhodovaním pri výbere množiny testovacích hodnôt môže táto množina vstupov nekontrolovane narásť, napríklad pri testovaní celého systému alebo podsystému. Je zrejmé, že takýmto spôsobom nebude možné s použitím akejkoľvek metódy testovanie vykonať úplne. Cieľom funkcionálneho testovania je vybrať takú podmnožinu testovacích prípadov, ktorá má veľkú pravdepodobnosť detekovať najväčšiu množinu chýb. Jedna možnosť je náhodný výber podmnožiny možných chybových vstupov. Z hľadiska efektívnosti je toto riešenie najhoršie, je totiž malá pravdepodobnosť, že náhodným prístupom natrafíme na optimálnu podmnožinu.


Najvhodnejšie metódy testovania vzniknú kombináciou základných metód. Zvoliť správnu kombináciu tak, aby silné a slabé stránky každej metódy boli v prijateľnom pomere, je kľúčovým faktorom pri výbere testovacích metód a nástrojov.



 
 
 

Komentáre


bottom of page