nav line

Manažment kvality a testovanie softvéru ako súčasť webovej integrácie

Článok popisuje základné pojmy – „Quality assurance“ (zabezpečenie kvality), testovanie, ich ciele a opisuje rôzne typy testovania.

Prudký rozvoj informačných technológií v súčasnosti prináša čoraz vyššie nároky na funkčnosť webových (softvérových)  aplikácií, čím narastajú aj požiadavky na ich kvalitu. Preto musí mať  riadenie kvality svoje pevné miesto v procese vývoja webového riešenia.

Čo je „Quality assurance“?

Vo wikipédii sa môžeme stretnúť s nasledujúcou definíciou: Quality assurance (zabezpečenie kvality, skrátene QA) sa týka obecne všetkého od návrhu, vývoja, nasadenia, údržby až po dokumentáciu produktu. Cieľom tejto aktivity je dohliadnuť na to, že výstupy z jednotlivých častí budú mať odpovedajúcu kvalitu, ktorá bola vopred určená.

Zabezpečenie kvality softvéru (v angličtine označované ako Software Quality Assurance) zahŕňa nasledujúce činnosti:

  • overovanie naplnenia požiadaviek zákazníka, kontrola zhody so zadaním a špecifikáciou projektu
  • kontrolu výstupov vývojárov zameranú na dodržiavanie vopred definovaných štandardov a noriem
  • testovanie za účelom hľadania chýb - funkčných, logických, obsahových, systémových..

Tieto kroky samozrejme platia aj pre webové riešenia. Špecifická je hlavne časť testovania, v ktorej je nutné prihliadať na fakt, že sa testujú webové stránky a prispôsobiť tomu výber vhodných testov, napr. zabezpečenie webovej aplikácie, schopnosť vysporiadať sa s masívnym nárastom návštevníkov stránok (performance testing), overenie kompatibility prehliadačov a operačných systémov, dostupnosť pre bežných ale aj handicapovaných užívateľov...

Testovanie

Testovanie je systematický proces - pozorovanie správania sa systému v špecifických podmienkach simulujúcich reálne prostredie - zameraný na odhalenie chýb, nedostatkov a odchýlok od požiadaviek zákazníka a tiež na overenie správania sa v hraničných situáciách z pohľadu vstupných dát, záťaže alebo bezpečnosti. Jednotlivé zistenia sa podrobne zaznamenávajú a vyhodnocujú.

Cieľom testovania je vyhľadávanie chýb v čo najkratšom čase, na čo najnižšej úrovni vývoja riešenia a zaistenie ich nápravy.

Často sa stáva, že sa pojmy Quality Assurance a testovanie zamieňajú, ale ako je zrejmé z predchádzajúcej kapitoly, testovanie je len jedna časť procesu riadenia kvality.

Typy testovania

V literatúre, ale i v praxi sa stretneme s rôznym delením testovania, ktoré závisí od pohľadu, akým sa na testovanie pozeráme.

Podľa formy vykonávania delíme testovanie na:

  • Manuálne testovanie – testovanie vykonáva tester (užívateľ) ručne. Nevýhodou je pomalosť a nízka efektivita. Niektoré testy sa však dajú prevádzať iba manuálne práve kvôli vplyvu ľudského faktora.
  • Automatické testovanie – testovanie pomocou automatizovaného nástroja. Za krátky čas je možné otestovať veľkú množinu variabilných testovacích dát. Na webových aplikáciách môžeme pomocou automatizovaných nástrojov ľahko preveriť validitu stránok, funkčnosť jednotlivých odkazov, odolnosť voči záťaži a pod.

Vzhľadom na charakter a zameranie samotného testu rozlišujeme:

  • Funkčné testovanie - Preverenie zhody funkcií softvéru s požiadavkami zákazníka, kontrola fungovania softvéru/riešenia na rôznych SW a HW platformách
  • Nefunkčné testovanie – testuje vlastnosti systému, ktoré nesúvisia s jeho primárnym zameraním , napr. test výkonnosti, bezpečnostný test, záťažový test..

Z pohľadu zdrojového kódu ide o :

  • Statické testovanie - kontrola samotného zdrojového kódu
  • Dynamické testovanie – testovanie vlastností systému počas behu programu

Podľa prístupu k informáciám hovoríme o testoch:

  • Black box test – alebo aj Testovanie čiernej skrinky znamená, že tester skúma len vonkajšie reakcie systému, vloží vstupné parametre, zaznamená výstupné, ale nezaoberá sa vnútornými procesmi systému. Môže však poskytnúť skreslené výsledky, pretože i keď k zadanému vstupu systém vráti očakávaný výstup, vnútri systému môže byť proces spracovaný chybne (napr. nesprávne uloženie do dátových štruktúr..)
  • White box test – Testovanie bielej skrinky - predpokladá, že tester je podrobne oboznámený s vnútornou štruktúrou kódov a dát, teda „vidí do systému“ a v rámci testovania robí súčasne aj audit štruktúry zdrojového kódu
  • Gray box test – je kombináciou predchádzajúcich dvoch spôsobov. Tester pozná základnú štruktúru systému, ale nezameriava sa na detaily ani na samotný zdrojový kód. Štruktúra je sprístupnená hlavne z dôvodu vytvorenia vhodnejších testovacích scenárov.

Podľa toho, na akom stupni vývoja softvéru sa kontrola vykonáva, delíme testovanie na:

  • Testovanie programátorom (Developer testing) – ide o testovanie na najnižšej úrovni, spravidla hneď po napísaní ucelenej časti programového kódu s dôrazom na jeho funkčnú správnosť a validitu.
  • Testovanie jednotiek (Unit testing) – testovanie správnosti fungovania najmenších jednotiek systému, kontrola dodržiavania predpísaných štandardov a noriem. Na tejto úrovni sa testy dajú celkom ľahko automatizovať.
  • Integračné testovanie (Integration testing) - overenie správnej interakcie jednotlivých modulov systému. Pre webové systémy ide o dôležitú fázu testovania prepojenia všetkých častí navrhnutého riešenia.
  • Systémové testovanie (System testing)– aplikácia je testovaná ako celok. Testy sú zamerané na jej funkčnosť, spoľahlivosť, bezpečnosť, výkonnosť... Na tejto úrovni už môžeme webové systémy podrobiť niektorým testom so samostatne vypracovanou metodikou, napr. :
    • výkonnostný test – meranie rýchlosti odoziev na vstupné požiadavky. Skúmanie výkonnosti webovej aplikácie v multiužívateľskom prostredí a jej reakcií pri nárazovo veľkom objeme vstupných dát, náraste počtu aktívnych užívateľov..
    • bezpečnostný test – testovanie schopnosti systému predchádzať neautorizovaným prístupom k zdrojovým kódom alebo dátam
    • test použiteľnosti (usability test) zisťuje, do akej miery je jednoduché ovládať webové stránky, vedieť sa v nich zorientovať a nakoľko príťažlivý je ich vzhľad pre koncového užívateľa.
    • test dostupnosti – zisťovanie „bezbariérovosti“ webových stránok, teda overenie ich dostupnosti pre handicapovaných užívateľov (zrakovo, sluchovo..), testovanie kontrastu farieb..
    • záťažový test – testuje systém so zameraním na kontrolu zlyhania pri nedostatočnej kapacite HW prostriedkov (CPU, pamäť, disk..)
    • údržbový test (maintenance test) – overenie správnosti fungovania systému po údržbovom zásahu (zmena HW alebo SW prostriedkov, migrácia, upgrade systému..)
    • Akceptačné testovanie (Acceptance testing) – vykonáva sa po celkovom vyladení systému a odstránení všetkých zistených chýb z predošlých testov. Overuje pripravenosť systému na nasadenie do ostrej prevádzky. (alfa test, beta test..)

Nedá sa povedať, ktorý spôsob testovania je najlepší a najefektívnejší. Na výber vhodnej metodiky testovania vplýva veľa faktorov - veľkosť projektu, jeho cieľ a zameranie, možnosti a schopnosti zákazníka i testovacieho tímu. Vytvorením správneho testovacieho plánu ešte na začiatku samotného projektu však môžeme dosiahnuť nielen zvýšenie celkovej kvality systému, ale i ušetriť nemalé finančné prostriedky.

Skúsenosti z praxe ukazujú, že je omnoho efektívnejšie chybám predchádzať ako ich na konci práce prácne odstraňovať. O to viac to platí v oblasti webovej integrácie – ak sú systémy integrované, tak chyba, ktorá vznikne na jednom konci reťazca, môže prebublať inam, kde spôsobí nemalé škody. Preto je dobré testovať kvalitu v každom kroku životného cyklu softvéru, počnúc špecifikáciou požiadaviek zákazníka, končiac nasadením hotovej aplikácie do produkcie.

Veľmi praktické je overovanie kvality už vo fáze analýz a návrhu riešenia - chyba v návrhu architektúry, nesprávna funkčná špecifikácia či zle zvolený grafický návrh môžu neskôr spôsobiť zlyhanie mnohých testov a tým značne oddialiť čas nasadenia do ostrej prevádzky.

Testovanie počas životného cyklu projektu

Testovanie počas životného cyklu projektu

Záver

Je pravdou, že testovaním nikdy nemôžeme preukázať, že systém už chyby nemá, a teda nie je možné prehlásiť ho za bezchybný. Snahou však je sa k nemu maximálne priblížiť. Dvojnásobne to platí pre integrované systémy, kde je riziko zlyhania vo oblasti bezpečnosti, komunikácie či stability vyššie.

Použité zdroje:

Ohodnoťte článek

Manažment kvality a testovanie softvéru ako súčasť webovej integrácie

Související články

Vyhledávání na blogu

Webová integrace

Webová integrace jako nová oblast pro business „velkých" webových agentur.

o webové integraci

Profily blogujících