Self-healing testy: dokáže AI sama opravit test, který selhal?
Self-healing neboli samoopravné testování označuje funkci, která po změně rozhraní hledá náhradní prvek nebo navrhne nový selektor. Může zkrátit čas potřebný k rutinní údržbě. Pokud však změnu schválí bez kontroly, může test přesměrovat na nesprávné chování a vytvořit falešný pocit jistoty.
V čem je problém
Údržba testů představuje skutečné náklady. Sada, kterou po změnách aplikace nikdo neopravuje, může postupně ztratit hodnotu. Self-healing řeší především případy, kdy se změní název nebo umístění prvku, ale očekávané chování zůstane stejné.
Nástroj však nemusí ze vzájemné podobnosti prvků spolehlivě určit důvod změny. Tlačítko mohlo být oprávněně přejmenováno, ale mohlo také zmizet kvůli chybě. Automatické přijetí náhrady může ve druhém případě skrýt problém, na který měl test upozornit.
Kdy může pomoci a kdy je rizikový
Nejlépe funguje u malé, srozumitelné změny, při které zůstal účel prvku stejný. Při změně uživatelského toku, obchodního pravidla nebo výsledku musí návrh posoudit člověk.
Pokud se změní identifikátor prvku, návrh náhrady může ušetřit hledání. Self-healing však nemusí rozlišit schválenou změnu od chyby formuláře, proto je důležité vidět rozdíl a důvod úpravy.
Rizikové situace mohou vypadat například takto:
- Tlačítko Odeslat zmizí kvůli chybě. Self-healing najde na stránce jiné tlačítko s podobným textem – například Zrušit – a přesměruje na něj test. Test „projde“, ale objednávka se nikdy neodešle.
- Pole se přejmenuje, protože se změnila logika formuláře. Nástroj najde jiné pole s podobným názvem, test do něj vyplní údaje a skončí zeleně – přestože ověřil něco úplně jiného.
- Kontrola výsledku se naváže na prvek, který na stránce náhodou existuje, ale znamená něco jiného. Test je zelený a nechrání nic.
V každém z těchto případů může vzniknout falešná jistota: test projde, přestože neověřil původní cíl. Proto je nutné odlišovat automatický návrh opravy od automatického schválení opravy.
Jak to řešíme
AI při údržbě používáme, ale nikoli jako černou skříňku, která za vás potají přepisuje testy.
Když se rozhraní změní a test selže, AI může navrhnout opravu spolu s rozdílem mezi původním a novým prvkem. Tester potom posoudí, zda jde o schválenou změnu aplikace, nebo o chybu, kterou test správně odhalil. Změna se přijme až po kontrole očekávaného výsledku.
Současně snižujeme potřebu oprav: používáme stabilní selektory a podle velikosti projektu vhodnou vrstvu objektů stránek nebo komponent. Změna jednoho prvku se potom upraví na společném místě namísto v mnoha testech.
Co tím získáte
- Rychlejší návrh opravy bez hledání každého selektoru od začátku.
- Auditní stopu a vědomé schválení změn v testech.
- Menší riziko, že automatická oprava skryje chybu aplikace.
Další krok
Nejprve si u každé samoopravy uložte původní selektor, navrženou změnu a výsledek kontroly. Pokud chcete zhodnotit, kde je self-healing ve vaší sadě bezpečný, využijte nezávaznou konzultaci.