Automatizované testování

Automatizované testování softwaru je stále v praxi velmi podceňovanou disciplínou. Přitom jeho využití sebou přináší výrazné úspory prostředků a samozřejmě zvýšení kvality výsledného produktu. Automatizovat lze však nejen samotnou exekuci vybraných manuálních testů, ale také části nebo dokonce celý proces testování softwaru. Některé nástroje, které porovnávají výsledky provedených testů, instalují a konfigurují aplikaci nebo vytváří z analýzy testovací případy. Pokud jsou pro daný software vytvořené stabilní manuální testovací případy, které se opakovaně vykonávají, je nasnadě otázka, zda by nebylo možné tyto vykonávat automaticky (tedy bez zásahu lidského faktoru). Oblast automatizace testů je čím dál populárnější a často vyhledávanou možností jak software testovat. Proto jsem se rozhodl se zde zmínit i o možnostech automatizace testů a nastínit tak současné postupy automatizovaného testování software.

V této části bych se rád zmínil o možnosti automatizace provádění testů softwaru. Uvedu jejich hlavní význam, realizaci a porovnání výhod a nevýhod jejich použití.

Význam automatizace testování softwaru

Hlavním cílem automatizace testů softwaru je časová úspora při jejich spouštění. Obecně lze říci, že automatizace testů softwaru má za účel usnadnit a zefektivnit provádění postupu testování softwaru. Pokud jsou testy prováděny zcela automaticky, tj. bez možnosti zásahu lidského faktoru, výrazně se tím snižuje možnost chybného provedení postupu testování softwaru a tím také pravděpodobnost bezporuchového provozu softwaru. Automatizované testy lze rozdělit do několika kategorií. Tyto kategorie jsou shodné s těmi uvedenými pro manuální zkoušky. Tato skutečnost vyplývá z faktu, že automatizované testy ve většině případů jednoduše zautomatizují provádění manuálních testů.

Použití automatizovaných testů však má své výhody i nevýhody. Porovnání některých pro a proti uvádím v na konci stránky.

Realizace automatizovaných testů softwaru

Automatizovat je zejména vhodné především Smoke testy, Regresní testy, Komparační testy, ověřování změny dat a také Nefunkční testy. Obecně tedy testy kterých spouštíme velké množství, jsou neměnné a pokrývají části aplikace, které se často nemění.

Pro realizaci automatizovaných testů softwaru, je nutné zajistit některé základní podmínky v postupu testování softwaru. Existující program, který je již v provozu, je obtížné začít automatizovaně testovat. Nejvhodnější etapa pro vytváření těchto zkoušek je tedy návrh a vývoj softwaru. Architektura aplikace musí umožňovat automatizaci zkoušek, proto je nutné aplikaci s tímto vědomím vytvářet.

Obecně se snažíme pokrýt testy co největší část aplikace. U aplikací s krátkou životností (v řádech měsíců, jedna verze) se nám nevyplatí vytvářet tyto testy, naopak u aplikací, kde předpokládáme delší životnost (řádově roky, více verzí), tak tam se nám zcela jistě realizace automatizovaných testů vyplatí. U automatizovaných testů se pokrývají především části, u kterých je reálná hrozba výskytu závažných chyb. Při realizaci testů se však musí přihlédnout k tomu, zda daná část aplikace nebude často upravována. To by totiž znamenalo častou aktualizaci automatizovaných testů.

Výhody a nevýhody automatizace testů softwaru

Výhod pro využití automatizovaných testů softwaru je celá řada. Při posuzování výhod a nevýhod jejich použití je vždy nutné vztáhnout dané oblasti na konkrétní projekt. Každý projekt má svá specifika a ty mohou často hrát zásadní roli při možnostech automatizace testů.

Jak již bylo výše zmíněno, asi nejpodstatnější výhodou automatizace zkoušek je časová úspora. Pokud se testy spouštějí a vyhodnocují automaticky, ušetří čas pracovníků, kteří tyto testy dříve manuálně prováděli. Pokud hovoříme o plné automatizaci, lze zkoušky spouštět v kteroukoliv dobu. Běžně se v praxi využívá této skutečnosti a testy se spouští během noci. Jejich spuštění během dne totiž často komplikuje práci ostatním pracovníkům. Pokud člověk prochází neustále ty samé testovací scénáře, často se stává, že některou chybu přehlédne. Využití automatizovaných zkoušek tento nepříznivý jev zcela odstraňuje.

Automatizace zkoušek bezporuchovosti softwaru však sebou nenese jen samé výhody. Jako nevýhodu lze považovat nutnost neustálé údržby zkoušek. Pokud je do aplikace zanesena nějaká změna, automatizované zkoušky musí být ihned aktualizovány. Pokud nejsou ihned aktualizovány, může to mít negativní dopad na střední dobu provozu mezi poruchami. Zkoušky totiž nemusí odhalit všechny chyby a ty tak mohou proniknout i do provozu. Pro provádění automatizovaných testů bezporuchovosti softwaru je nutné vyčlenit speciální prostředí (server) a tomu odpovídající testovací data. To sebou často nese jisté komplikace nebo další časovou investici.

Přes popsané nevýhody si myslím, že je ve většině případů vhodné automatizované testy softwaru využít. Automatizované testování však nikdy nemůže co do kvality nahradit manuální testování. Berme jej teda jako pomůcku k testování softwaru.


Share on TwitterShare via email

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *