AI napsala test, který prošel, ale nic neověřil
Test projde. V pipeline svítí zelená. Sada má o třicet testů více než minulý týden. A za měsíc se do produkce dostane chyba v procesu objednávky, který je podle reportu pokrytý testem. Tento test totiž otevřel stránku, klikl na tlačítko a skončil. Nic neověřil. Prošel, protože nic nemohlo selhat.
Proč takový test vznikne
Jazykový model skládá návrh podle zadání a dostupného kontextu. Pokud zadání popisuje pouze kroky a neuvádí správný výsledek, model může vytvořit skript, který proces prokliká, ale neověří jeho podstatu. Stejná chyba může vzniknout také u ručně psaného testu.
Projevuje se v několika podobách:
-
Test skončí bez ověření. Provede scénář a nic netvrdí. Zelená znamená pouze to, že kroky nezastavila technická chyba.
-
Test ověří vedlejší jev. Zkontroluje nadpis nebo adresu stránky, přestože podstatou scénáře je vznik objednávky a správná částka.
-
Test ověří pouze vlastní vstup. Vloží hodnotu do pole a zkontroluje, že se v něm zobrazuje, ale neověří zpracování údajů aplikací.
-
Ověření je příliš obecné. Namísto konkrétní objednávky se kontroluje pouze slovo „děkujeme“, které může být na stránce i při neúspěšném výsledku.
-
Chyba se potlačí. Výjimka se zachytí bez opětovného vyvolání a test pokračuje, jako by se krok podařil.
Proč je takový test mimořádně rizikový
Viditelně neúspěšný test upozorní, že je potřeba prověřit aplikaci, data nebo samotný test.
Test, který nic neověřuje, dělá opak. Vypadá jako úspěch. Nafukuje počet testů, zvyšuje deklarované pokrytí v reportu a vytváří přesvědčení, že je daná cesta hlídaná. Tým se může na zelený výsledek spoléhat, přestože test nepotvrdil podstatné chování.
Na rozdíl od testu, který selhal, se slabé ověření samo neohlásí. Bez cílené kontroly může v sadě zůstat dlouhou dobu.
Jak to řešíme
Při AI asistovaném testování proto kontrolujeme návrh člověkem jako součást tvorby, nikoli jako formální krok na konci.
Při kontrole se zaměřujeme především na tyto otázky:
-
Ověřuje test cíl scénáře? U objednávky to může znamenat správný stav, částku a položky, nikoli pouze zobrazení nové stránky.
-
Dokáže test selhat ze správného důvodu? Podle rizika ověříme negativní stav nebo cíleně změníme očekávání. Pokud test projde i při nesprávném výsledku, jeho kontrola je nedostatečná.
-
Nepotlačuje kód chyby? Odstraníme bezdůvodné zachytávání výjimek a pevná čekání, která pouze zakrývají problém.
Do sady zařadíme až návrh s jasným očekáváním, vhodnými daty a srozumitelným důvodem případného selhání. AI připravuje návrh, člověk ho schvaluje.
Co tím získáte
- Testy, které kontrolují výsledek důležitý pro uživatele nebo firmu.
- Menší riziko falešné jistoty ze zeleného, ale slabého testu.
- Srozumitelnější proces kontroly návrhů vytvořených člověkem i AI.
Další krok
Vyberte několik kritických testů a u každého pojmenujte konkrétní chybu, při které musí selhat. Pokud potřebujete nezávislé posouzení stávající sady, využijte nezávaznou konzultaci; podobně postupujeme také při opravě testovací sady.