Které automatizované testy smazat bez ztráty důležitého pokrytí
Mazání automatizovaných testů nemusí znamenat slabší pokrytí. Test, který už neověřuje platné chování, pouze duplikuje jiný důkaz nebo mu tým přestal věřit, může sadu zpomalovat a zakrývat důležitější výsledky. Bezpečné rozhodnutí však nevychází jen ze stáří testu nebo z toho, jak často padá; potřebuje mapu rizik a důkaz, co po odstranění zůstane pokryté.
Proč se testy jen hromadí
Nový test má viditelný začátek, ale málokdy dostane datum dalšího posouzení. Funkce se změní, stejné pravidlo se ověří ve třech vrstvách a dočasný scénář zůstane v regresi celé roky. Jednotlivé testy vypadají levně, ale dohromady prodlužují běh, komplikují přípravu dat a zvyšují množství výsledků, které musí někdo vyhodnotit.
Když sada začne být nestabilní, svádí to ke smazání nejčastěji padajících testů. To je nebezpečná zkratka. Nestabilní výsledek může ukazovat na chybu testu, problém v prostředí i skutečnou chybu způsobenou souběhem operací v aplikaci. Nejprve je třeba změřit, které testy jsou flaky a proč, teprve potom rozhodovat o jejich hodnotě.
Rozlište čtyři důvody k zásahu
Ne každý kandidát patří rovnou do koše. Nejprve jej zařaďte podle důvodu:
- Neplatný test ověřuje funkci nebo pravidlo, které už neexistuje. Potvrďte to s vlastníkem produktu a v aktuálních požadavcích; název starého tlačítka není dostatečný důkaz.
- Redundantní test přináší stejný důkaz jako jiný test nad stejným rizikem. Porovnejte ale také data, role a podmínky. Dva podobné kroky mohou ověřovat odlišná oprávnění.
- Nedůvěryhodný test nemá smysluplné ověření, zůstává dlouhodobě přeskočený nebo projde i při nesprávném chování. Pokud chrání důležité riziko, patří spíše k opravě nebo náhradě než ke smazání.
- Nepřiměřeně drahý test trvá dlouho nebo vyžaduje mnoho údržby vzhledem k informaci, kterou přináší. Často jej lze přesunout do nižší vrstvy místo úplného odstranění.
Stáří není samostatná kategorie. Deset let starý test kritického výpočtu může být stále cenný; nový test bez relevantního tvrzení nemusí být cenný vůbec.
Vytvořte mapu pokrytí před mazáním
Ke každému kandidátovi přiřaďte obchodní nebo technické riziko, konkrétní očekávaný výsledek a ostatní testy, které poskytují stejný či doplňkový důkaz. Mapa nemusí být složitá. Stačí tabulka s řádky „riziko – scénář – vrstva – vlastník – poslední užitečný nález“.
Potom si položte tři otázky:
- Když tento test odstraníme, který jiný test odhalí stejné nesprávné chování? Podobný název nestačí; porovnejte konkrétní tvrzení.
- Je současná vrstva přiměřená? Kombinace vstupů lze levněji pokrýt jednotkovými nebo API testy, zatímco jeden end-to-end scénář ponechá důkaz, že cesta drží pohromadě.
- Je riziko stále důležité? Nízkou hodnotu lze vědomě přijmout, podobně jako při rozhodování, co se nevyplatí automatizovat.
Pokud mapa odhalí mezeru, nejprve připravte náhradní test nebo riziko jasně přijměte. Teprve potom původní scénář odstraňte.
Použijte rozhodnutí ponechat, opravit, nahradit nebo smazat
| Rozhodnutí | Kdy dává smysl |
|---|---|
| Ponechat | Test chrání platné významné riziko a poskytuje jedinečný, důvěryhodný výsledek. |
| Opravit | Riziko je důležité, ale implementace testu je nestabilní nebo nečitelná. |
| Nahradit | Stejný důkaz lze získat přesněji, rychleji nebo ve vhodnější vrstvě. |
| Smazat | Očekávání už neplatí, důkaz je prokazatelně redundantní nebo tým riziko vědomě vyřadil. |
Při větším problému může být potřeba rozhodnout, zda sadu opravit, nebo přepsat. Jednotlivé testy však stále posuzujte podle hodnoty; mechanický přepis přenese i starou zátěž.
Odstraňujte po malých, ověřitelných skupinách
Kandidáty nejprve označte s důvodem a vlastníkem. Při nejistotě je na omezenou dobu vyřaďte z běžného běhu, ale sledujte související riziko a stanovte datum konečného rozhodnutí. Trvalá karanténa bez vlastníka pouze přesune problém mimo report.
Po schválení smažte také nepotřebná data, konfiguraci a dokumentaci, které sloužily pouze danému testu. Kód nenechávejte zakomentovaný „pro jistotu“; obnovitelnou historii poskytuje verzovací systém. Po změně porovnejte dobu běhu, počet nejasných selhání a pokrytí kritických cest. Pokud se sada opět bez pravidel rozrůstá, pojmenujte příčiny, proč testovací sady přestávají pomáhat.
Co tím získáte
Kratší sada dává rychlejší a čitelnější zpětnou vazbu. Tým věnuje údržbu testům, které chrání skutečná rizika, a umí vysvětlit, proč byl každý odstraněný scénář nahrazen nebo už nebyl potřeba. Mazání se tak mění z úklidu podle pocitu na kontrolované rozhodnutí.
Další krok
Začněte deseti nejpomalejšími, nejčastěji přeskakovanými nebo nejvíce duplikovanými testy. Ke každému doplňte riziko a náhradní důkaz dříve, než změníte kód. Teprve potom kandidáty rozdělte na testy, které ponecháte, opravíte, nahradíte nebo bezpečně odstraníte.