Proč původní řešení nestačilo
Klient používal komerční nástroj pro vytváření automatizovaných testů, který sliboval automatizaci bez znalosti kódování. Tento slib platil do určité míry: juniorní tester v něm dokázal bez kódování připravit převážně jednodušší testy. Složitější scénáře však vyžadovaly kapacity vývojářů. Testování tak soupeřilo o kapacitu s vývojem produktu.
Nástroj navíc nevytvářel vždy a ve všech situacích stabilní selektory, tedy pravidla, podle kterých test vyhledává prvky v aplikaci. I automaticky vytvořené selektory proto potřebovaly kontrolu a úpravy.
Cílem nebyla jen technická výměna nástroje. Nové řešení mělo snížit závislost na vývojovém týmu, rozšířit pokrytí a zachovat regresní kontrolu i během migrace.
Migrace během paralelního provozu
Nový framework vznikl od nuly na open-source nástrojích Selenium pro webové testy a Appium pro mobilní testy. Obě části používaly stejný design pattern Page Object Model, který odděloval testovací scénáře od selektorů a operací nad stránkami či obrazovkami. Architektura tak zůstala jednotná, i když technologie pro ovládání webu a mobilní aplikace byly odlišné.
Vybrané hodnotné scénáře se přenášely postupně a původní i nová sada určitou dobu běžely vedle sebe. Teprve po ověření náhrady bylo možné původní nástroj úplně odstavit.
Tento postup omezil riziko, že firma během změny ztratí důležitou regresní kontrolu. Zároveň umožnil nepřenášet mechanicky všechno, ale zaměřit se na scénáře se skutečnou hodnotou.
Provoz, diagnostika a rozsah
Testy byly zapojeny do GitLab CI/CD, daly se spouštět na požádání a využívaly paralelizaci. Reporty zaznamenávaly jednotlivé kroky, snímky obrazovky, konzoli prohlížeče i síťovou komunikaci, aby bylo možné hledat příčinu selhání bez zdlouhavého opakování.
Součástí řešení byla kromě reportů také error pattern analysis, tedy analýza opakujících se chyb. Její přehled ukazoval, ve kterých částech testovací sady se soustřeďovalo nejvíce selhání. Tým tak na první pohled viděl nejproblematičtější místa a věděl, kde začít s analýzou. Související článek vysvětluje, jak lze podobné seskupování rozšířit o třídění selhání pomocí AI.
- stovky webových a mobilních testů;
- automatizované accessibility kontroly;
- produkční monitoring několika klíčových cest, který běžel nepřetržitě z Kubernetes podu.
Co se pro tým změnilo
- Původní komerční nástroj úplně nahradilo open-source řešení.
- Vývojáři už nebyli potřeba pro vývoj a údržbu automatizovaných testů.
- Testy bylo možné spouštět v CI/CD i na požádání a paralelizace zkrátila čekání na výsledek.
- Diagnostické reporty pomáhaly při analýze konkrétních selhání a error pattern analysis ukazovala nejproblematičtější části testovací sady.
- Stejné řešení pokrylo regresi webu, mobilní aplikaci, accessibility i vybrané produkční cesty.