Služby · Oprava testovacej sady
Oprava existujúcej sady automatizovaných testov
Stabilizujeme existujúcu sadu, aby sa váš tím mohol na výsledky testov opäť spoľahnúť. Zachováme scenáre, ktoré majú hodnotu, a preveríme pravdepodobné príčiny náhodných zlyhaní.
- Playwright
- Selenium
- Page Object Model
O službe
Spoľahlivé výsledky sú dôležitejšie než počet testov
Keď testy zlyhávajú náhodne, tím časom prestane rozlišovať medzi chybou aplikácie a problémom testu. Opakované spúšťanie zdržuje vývoj a sada stráca svoj prínos, hoci jej údržba naďalej stojí čas aj peniaze.
Nestabilita často vzniká z opakujúcich sa príčin: krehkých selektorov závislých od štruktúry HTML, čakania na pevný počet sekúnd, zdieľaných testovacích dát alebo nedostatočne izolovaného prostredia. Mnohé z týchto problémov sa dajú opraviť pri príčine namiesto ďalšieho zvyšovania časového limitu.
Začíname meraním: opakovanými behmi zistíme, ktoré testy padajú náhodne a ktoré konzistentne upozorňujú na možnú chybu aplikácie. Až potom sa rozhoduje, čo opraviť, čo prepísať a čo pokojne zmazať. Dobre postavená menšia sada, ktorej sa dá veriť, má väčšiu hodnotu než veľká, ktorá nemusí byť spoľahlivá alebo netestuje všetko potrebné.
Ak sa ukáže, že sada je postavená neudržateľne alebo stojí na nástroji, ktorý už nemá budúcnosť, povieme to rovno. Vtedy sa neoplatí opravovať, ale preniesť scenáre inam – tomu sa venuje samostatná služba, portácia testov.
Jednoduchý vstup
Stačí nám prístup k tomu, čo dnes máte
- Od vás stačí existujúca testovacia sada a možnosť spustiť ju voči testovaciemu prostrediu.
- Nemusíte vopred vedieť, prečo testy zlyhávajú – pravdepodobné príčiny preveríme počas diagnostiky.
- Povedzte nám, ktoré scenáre sú pre vás kritické; podľa toho určíme, čo opravovať ako prvé.
- Zvyšok – meranie nestability, preverenie pravdepodobných príčin, opravy aj zapojenie do dohodnutého spôsobu spúšťania – zabezpečíme my.
Čo získate
Čo vám oprava sady prinesie
Výsledkom testov môžete opäť veriť
Obmedzíme náhodné zlyhania, aby tím rýchlejšie rozlíšil chybu aplikácie od problému testu a výsledky nemusel opakovane preverovať.
Nezačínate od nuly
Vychádzame z toho, čo už máte. Zachováme hodnotné testy a znalosti o produkte namiesto vytvárania celej sady od začiatku.
Úspornejšie pravidelné behy
Odstránenie opakovaných spustení, zbytočných čakaní a testov bez prínosu môže skrátiť pravidelný testovací beh.
Menej mŕtvych testov
Čo neoveruje nič užitočné, po dohode zmažeme. Sada, ktorej sa dá veriť, je cennejšia než sada, ktorá je veľká.
Ako to prebieha
Možný priebeh spolupráce
Konkrétne kroky a ich poradie prispôsobíme vašej situácii, dostupným podkladom a dohodnutému výstupu.
-
Diagnostika: meranie a príčiny nestability
Sadu spustíme opakovane a oddelíme náhodné zlyhania od konzistentných. Potom preveríme ich príčiny, napríklad selektory, čakanie, závislosti medzi testami, dáta alebo prostredie.
-
Rozhodnutie: opraviť, prepísať, zmazať
S výsledkami diagnostiky prejdeme každý problém a rozhodneme, čo sa oplatí opraviť, prepísať alebo po dohode odstrániť. Pri každom rozhodnutí vysvetlíme dôvod.
-
Oprava potvrdených príčin nestability
Opravíme potvrdené problémy v selektoroch, čakaní, dátach alebo štruktúre testov. Pri testoch rozhrania môžeme podľa potreby upraviť aj architektúru, napríklad Page Object Model.
-
Zapojenie do pravidelného spúšťania a odovzdanie
Sadu zapojíme späť do dohodnutého spôsobu spúšťania, napríklad do CI/CD, doplníme zrozumiteľné výsledky a odovzdáme pravidlá, ktoré znižujú riziko opätovného vzniku nestability.
Nástroje a postupy
Nástroje a pracovné postupy volíme podľa konkrétneho riešenia
Pri výbere uprednostňujeme open-source nástroje, ak sú vhodné pre danú službu, vaše prostredie a spôsob prevádzky. Ak riešenie využíva komponent s inou licenciou, platenú cloudovú službu alebo externú infraštruktúru, podmienky a náklady uvedieme v ponuke. Spôsob odovzdania výstupov a vytvoreného kódu dohodneme podľa typu služby.
-
Detekcia flaky testov
Opakované behy a história výsledkov ukážu, ktoré testy sú nestabilné. Bez merania sa o nestabilite len háda a opravuje sa naslepo.
-
Playwright
Ak už na ňom sada beží, časť nestability vieme odstrániť tým, že pevné čakanie na sekundy nahradíme čakaním na konkrétny stav aplikácie.
-
Selenium
Existujúcu Selenium sadu vieme stabilizovať a nechať bežať ďalej. Prechod na iný nástroj nie je povinný – ak sada dáva zmysel, oplatí sa ju len opraviť.
-
Page Object Model
Page Object Model sústredí popis obrazoviek na určené miesta. Ak sú selektory roztrúsené v desiatkach testov, redizajn výrazne predraží ich údržbu.
-
Testovacie dáta a izolácia
Testy, ktoré si navzájom prepisujú dáta, padajú náhodne len zdanlivo. Oddelíme ich dáta a stav, aby na sebe prestali závisieť.
-
Allure Report
História behov na jednom mieste ukáže, ktorý test padá dlhodobo a ktorý začal zlyhávať až po konkrétnej zmene v aplikácii alebo prostredí.
-
Docker
Pomáha zjednotiť závislosti a konfiguráciu medzi jednotlivými behmi. Časť zdanlivo náhodných zlyhaní totiž vzniká rozdielmi medzi strojmi.
-
GitHub Actions / GitLab CI
Ak používate CI/CD, opravenú sadu vrátime do pipeline. Inak dohodneme pravidelné spúšťanie, aby výsledky nezáviseli iba od ručného lokálneho behu.
Hlbšie k téme
Ak sa chcete dozvedieť viac
-
Ako zistiť, ktoré testy sú nestabilné
Keď rovnaký test raz zlyhá a inokedy prejde bez zjavnej zmeny, hovoríme o nestabilnom alebo flaky výsledku.
-
Ktoré automatizované testy zmazať bez straty dôležitého pokrytia
Mazanie automatizovaných testov nemusí znamenať slabšie pokrytie. Test, ktorý už neoveruje platné správanie, iba duplikuje iný dôkaz alebo mu tím prestal veriť, môže sadu spomaľovať a zakrývať dôležitejšie výsledky.
-
Opraviť testovaciu sadu, alebo ju postaviť nanovo?
Keď testovacia sada často zlyháva a tím jej nerozumie, úplný prepis môže pôsobiť ako najjednoduchšie riešenie.
-
Prečo testovacie sady po čase prestávajú pomáhať
Testovacia sada zvyčajne nestratí hodnotu jedným rozhodnutím. Najprv pribudnú náhodné pády, potom opakovania a preskočené testy.
-
Testy lokálne prejdú, ale v CI padajú: ako nájsť rozdiel
Test, ktorý na notebooku prejde a v CI zlyhá, si neprotirečí. Bežal v dvoch odlišných podmienkach.
-
Zdedili ste testovaciu sadu, ktorá padá: ako postupovať
Zdedená testovacia sada vznikla v inom tíme alebo zostala po človeku, ktorý už nie je dostupný.
-
Testy bežia príliš dlho: ako zrýchliť regresnú sadu
Regresná sada opakovane overuje, či zmena nepoškodila funkcie, ktoré predtým fungovali. Ak jej výsledok prichádza príliš neskoro, vývojár naň nemusí čakať a tím presunie testy iba na nočný beh.
Poďme sa pozrieť na váš konkrétny prípad
Stručne nám opíšte, čo chcete preveriť alebo automatizovať, aký systém či proces používate a čo vás dnes najviac obmedzuje. Ozveme sa s návrhom vhodného ďalšieho kroku.