Testovací strategie a audit

Co se nevyplatí automatizovat

Automatizace se prodává jako cíl: pokryjeme vše, nic nezůstane na člověku. Zní to dobře, v praxi to však může být jedna z nejnákladnějších cest k testovací sadě. Každý déle používaný test totiž budete průběžně udržovat – a u některých z nich se vám investice nemusí vrátit.

Běžné problémy, které je třeba vyřešit

Automatizovaný test má dvě ceny. První je jednorázová: napsat ho. Druhá je průběžná: opravovat ho při změnách aplikace, které ovlivní daný scénář, vyhodnocovat neúspěšné běhy a spouštět ho při relevantních změnách podle nastavení pipeline.

Tato druhá cena vzniká i v období, kdy test neodhalí chybu v produktu. Právě proto může příliš široká sada časem spotřebovat více úsilí na údržbu, než jí tým dokáže rozumně věnovat – ne proto, že by testy byly špatně napsané, ale proto, že jich je více, než lze udržet.

Rozhoduje jednoduchá otázka: kolikrát daný test spustíte a co vám pokaždé ušetří.

Jak to řešit: co ponechat člověku

Scénáře, které projdete dvakrát ročně. Roční uzávěrka, migrace dat, neobvyklá konfigurace pro jednoho zákazníka. Při takovém použití mohou náklady na vytvoření a údržbu testu převýšit úsporu z několika ručních kontrol.

Průzkumné testování. Test ověří, zda aplikace dělá to, co jste do něj napsali. Sám však nenajde každý typ chyby, na který jste při návrhu scénáře nepomysleli. Zkušený tester, který si s novou funkcí půl dne „hraje“, může odhalit problémy, které v připraveném skriptu nemají vlastní scénář – protože hledá to, co je zvláštní, nikoli to, co je nesprávné podle zadání.

Vizuální posouzení. Zda se tlačítko nepřekrývá s textem, zda je design čitelný, zda formulář působí důvěryhodně. Stroj dokáže porovnat snímky obrazovky a upozornit, že se něco změnilo. O tom, zda je změna v pořádku, rozhodne člověk. Vizuální porovnávání může být citlivé také na drobné rozdíly ve vykreslení, proto potřebuje rozumné tolerance a lidské vyhodnocení.

Jednorázové kontroly. Ověření po migraci, kontrola po nasazení jednorázové opravy, testování experimentu, který za měsíc buď vypnete, nebo přepíšete. V takových případech může vytvoření udržovatelného testu trvat déle než samotná kontrola.

Funkce, které se za měsíc přepíší. Pokud víte, že se obrazovka bude výrazně měnit, zvažte, zda s automatizací nepočkat nebo scénář neověřit na nižší, stabilnější úrovni. Jinak můžete investovat do testu, který brzy ztratí hodnotu.

Uživatelskou zkušenost. Zda se lidé v aplikaci orientují, zda je proces srozumitelný a zda není další krok obtěžující. To je otázka pro uživatele, nikoli pro assert.

Co vám rozumný rozsah přinese

Menší a přehlednější rozsah může zkrátit běhy i údržbu. Pokud sada zároveň poskytuje spolehlivé výsledky, tým může selhání vyhodnocovat s větší důvěrou.

Když navrhujeme strategii, součástí výstupu je také seznam toho, co neautomatizovat – včetně důvodu. Není to ústupek. Vědomé ponechání málo využívaného scénáře k ručnímu ověření může ušetřit náklady na jeho vytvoření i správu.

Zda se vám automatizace vyplatí, závisí především na četnosti: u skupiny scénářů, které se spouštějí několikrát do roka, bývá odpověď poměrně jasná – automatizace se zpravidla nezaplatí. Vyvážený pohled na argumenty pro automatizaci i proti ní najdete v tématu výhody a nevýhody automatizace; pokud si to chcete projít na vlastním případu, ozvěte se nám.

Na co si dát pozor

Není to výzva neautomatizovat nic. Automatizované regresní testování kritických cest, které kontrolujete při každém releasu, může mít vysokou hodnotu. Rozdíl spočívá v tom, že jde o vědomé rozhodnutí podle četnosti a rizika – nikoli o snahu dostat pokrytí na sto procent, protože to dobře vypadá v reportu.

Další krok

Pokud zvažujete automatizaci a nevíte, kde ji zastavit, napište nám. Projdeme vaše regresní scénáře a navrhneme, co automatizovat, co ponechat člověku a proč – i kdyby z toho vyšel menší rozsah, než jste očekávali.

Související témata

Mohlo by vás také zajímat

Ujasníme si, kde má automatizace největší očekávaný přínos

Posoudíme váš testovací proces a navrhneme, co automatizovat, co ponechat ručně a čím začít.