Ono se řekne, otestovat software. Ať už jste začínající tester, nebo stojíte na straně firmy, která si svou aplikaci chce nechat testovat, zjistíte, že vlastně existuje mnoho typů testů. Nejen že záleží jakou aplikaci, nebo její část testujeme, ale také v jaké fázi vývoje testujeme, nebo například kdo testuje. Pojďme si je odborně rozdělit a následně si projdeme "slovníček" jednotlivých testů.
Podle znalosti kódu
Při testování může být rozdíl, zda máme přístup ke zdrojovému kódu a orientujeme se v něm. Rozlišujeme proto testy na "White box", neboli bílou skříňku což znamená, že známe strukturu kódu a testy jsou napsány kódu "na míru". "Black box" je zase černá skříňka, kde na kód nevidíme a testujeme jen podle vstupů a výstupů aplikace.
Podle způsobu realizace
Jako první uvedu manuální testování, bez kterého by to prostě nešlo. Jde o testování, které provádí tester podle testovacích scénářů, neboli "testcase". Protipólem mu je dnes velmi populární a žádané automatizované testování. Testy píše tester, někdy i vývojář pomocí skriptovacího programovacího jazyku a ty se poté spouští na počítači.
Podle fáze testování
Testovat můžeme v různých fázích vývojového cyklu a tak testy dělíme na:
- Unit testy
-
Modul testy
-
Integrační testy
-
Funkční testy
-
Systémové testy
-
Akceptační testy
Podle dimenzí kvality
Pohledů na kvalitu je více, testujem tedy funkčnost, výkon, kompatibilitu, použitelnost, spolehlivost, bezpečnost, udržitelnost a jako poslední přenositelnost.
To by bylo vše k rozdělení a pojďme si některé názorné ukázky v krátkosti popsat.
Integrační testy
Integrační testy jdou na řadu jako první ze všech ostatních testů. Unit a modul testy mají na starosti programátoři. Napřed proběhnou unit testy - jedná se o ověření napsaného kódu a jeho funkčnosti - test jednotky (unity).
Modul testy nejsou moc odlišné od unit testů a jedná se zde o otestování komponenty (modulu) popř. otestování celé knihovny. Nutno podotknout, že unit i modul testy jsou zautomatizované, tedy netestuje je člověk, ale počítač.
Vnější integrační testy již provádí tester a jedná se test provolávání propojení jednotlivých aplikací / částí aplikace. Oprava nalezené chyby (bugu) v téhle testovací fázi vyjde nejlevněji, odchycení problému později už bývá náročnější a nákladnější.
Funkční testy
Funkční testy jsou oblastí, pod kterou spadají různé typy testů. Jako první bych zmínil smoke testy. Jedná se o rychlý a ne úplně detailní test. Cílem smoke testů je rychlé otestování hlavní funkcionality aplikace. Testy jsou většinou prováděny po nasazení finální verze aplikace na prostředí. Prostředí může být jak naše (testovací), tak produkční (u zákazníka).
Velmi důležité jsou systémové testy, které se starají o správnou funkčnost aplikace jako celku. Správnou funkčností je zde myšleno plnění úlohy, pro kterou aplikace byla vyvinuta, ověřujeme, zda jsou v aplikaci ošetřeny všechny nestandardní situace, které mohou nastat.
Bezpečnostní / Penetrační testy
Bezpečnostní testy tvoří samostatnou kapitolu. Dokonce existují testeři, kteří se zaměřují jen na bezpečnost a pochopitelně i firmy, které hledají testery zabývající se touhle oblastí. Takový tester bezpečnosti se dá považovat za "hodného hackera". Ten "zlý" se snaží získat např. přihlašovací údaje do emailové schránky, bankovního účtu (tedy prolomit přihlášení), dostat se do vašeho soukromí (ovládat váš PC na dálku a tím získat veškerá data uložená na harddisku PC, dostat se do telefonu, udělat si z vašeho telefonu štěnici), nebo třeba soukromí klientů (odcizení informací o klientech bankovní společnosti). "Hodný hacker", neboli tester bezpečnosti provádí "Penetrační" testy, kterými odhalí chyby, které by mohl využít potencionální "zlý hacker". Konkrétně to jsou například testy infrastruktury, aplikací, bezdrátových sítí Wi-Fi nebo mobilních zařízení.
Výkonnostní testy / Zátěžové testy
Takové testy slouží k otestování počtu lidí, které daný software dokáže obsloužit. Značnou část výkonnostního testování tvoří průběžný monitoring testovaného softwaru. Slouží nám k tomu dnes už spousty nástrojů, sami si můžete vyzkoušet třeba JMeter, který je zdarma. Testy dělíme na několik typů a jako první z nich je performance test. V performance testech zjišťujeme jak se chová systém, který předem definovanou zátěží zatěžujeme. Další jsou load a stress testy. Jedná se o zatížení systému, kde zátěž narůstá až do té doby, kdy se zjistí limit při kterém systém překročí akceptovatelné požadavky. Soak test se stará o testy, které běží dlouhodobě, a jejich cílem je odhalit nedostatky testovaného systému, který je v neustálém provozu.
Marcel Ondruška