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

Č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.

  1. 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.

  2. 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.

  3. 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.

  4. 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

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.