Testování

Flaky testy: když automatizace přestává budovat důvěru

Petra Hradecká · 11. 6. 2026 · 6 min čtení

Test, který někdy projde a někdy selže bez změny aplikace, postupně přestane tým brát vážně.

Ilustrace k článku Flaky testy: když automatizace přestává budovat důvěru

Proč je téma důležité

Flaky test někdy projde a někdy selže, přestože se testovaný kód nezměnil. Zpočátku působí jako drobná nepříjemnost. Postupně však tým začne selhání opakovat, ignorovat nebo obcházet. Automatizace pak přestává poskytovat důvěryhodný signál.

Největším nákladem flaky testů není samotný čas běhu. Je jím ztráta pozornosti, zpoždění releasů a riziko, že skutečná regrese bude považována za další náhodné selhání.

Hlavní myšlenka: Flakiness je technický i procesní problém. Může vzniknout časováním, sdílenými daty, nestabilním prostředím, externí závislostí nebo špatnou izolací testu. Potřebuje měření, vlastníka a systematickou opravu.

Jak postupovat správně

01

Měřte míru nestability

Ukládejte historii běhů a rozlišujte první výsledek od výsledku po opakování. Sledujte testy, které opakovaně mění stav.

02

Klasifikujte pravděpodobnou příčinu

Rozdělte problémy na synchronizaci, data, prostředí, síť, externí službu, náhodnost nebo chybu testu.

03

Získejte diagnostické důkazy

Ukládejte trace, screenshot, video, konzolové logy, síťové požadavky a verzi prostředí.

04

Izolujte test a jeho data

Každý test má vlastní data, předvídatelný začátek a úklid. Pořadí spuštění nesmí měnit výsledek.

05

Nahraďte pevné čekání stavem

Čekejte na konkrétní událost, odpověď nebo viditelný stav. Dlouhý sleep pouze maskuje závodní podmínky.

06

Karanténu používejte dočasně

Nestabilní test může být dočasně vyjmut z release brány, ale musí mít ticket, vlastníka a termín opravy.

Čemu se naopak vyhnout

  • Opakovanému spuštění jako trvalému řešení problému.
  • Zvyšování všech timeoutů bez pochopení, na co test skutečně čeká.
  • Ignorování flaky testů, které „většinou projdou“.
  • Sdíleným účtům a záznamům mezi paralelními testy.
  • Příliš dlouhým scénářům s mnoha možnými body selhání.

Praktický příklad

Test vytvoření kampaně občas selže při hledání nového řádku. Trace ukáže, že backend dokončil operaci, ale seznam se ještě neobnovil. Místo pevného čekání test zachytí odpověď vytvoření, použije vrácené ID a čeká na konkrétní řádek.

Současně každý běh používá vlastní název a účet. Flakiness zmizí a test znovu poskytuje jednoznačný signál.

Ponaučení pro praxi

Flaky test není běžný šum, ale závada testovacího systému. Důvěru obnoví měření, diagnostika, izolace a jasná odpovědnost za opravu.

Správný postup nemusí být složitý. Důležité je, aby byl vědomý, opakovatelný a aby tým dokázal vysvětlit, proč zvolil právě tento způsob kontroly. Kvalita nevzniká jedním nástrojem ani jednou rolí; vzniká kombinací dobrých otázek, důkazů a následné zpětné vazby.

← Zpět na všechny články