Glossar · KI im Testing
Self-Healing-Locator
Englisch: Self-healing locator
Auch genannt: Self-Healing, selbstheilender Locator, Self-Healing Test Automation
Definition
Ein Locator, bei dem das Testtool bei fehlendem Treffer anhand gespeicherter Attribute oder eines Modells ein wahrscheinliches Ersatzelement wählt und den Test fortsetzt.
Ein Self-Healing-Locator (selbstheilender Locator) ist ein Locator für UI-Tests mit einem Wiederherstellungsmechanismus im Hintergrund. Findet der primäre Locator ein Element nicht, etwa weil sich eine id geändert hat, durchsucht das Tool die Seite nach dem Element, das am besten zu dem passt, was es über das Original wusste (Tag, Text, Attribute, Position, Nachbarelemente), verwendet es und protokolliert die „Heilung“ in der Regel, damit jemand den Test aktualisieren kann. Ziel sind weniger Fehlschläge durch harmlose Markup-Änderungen.
Wie es in der Praxis funktioniert
Die meisten Implementierungen folgen demselben Muster:
- Bei erfolgreichen Läufen wird ein Fingerabdruck jedes Elements gespeichert, mit dem der Test interagiert.
- Schlägt ein Locator fehl, werden Kandidaten auf der Seite gegen diesen Fingerabdruck bewertet.
- Liegt der beste Kandidat über einem Schwellenwert, wird er verwendet und die Ersetzung protokolliert; andernfalls schlägt der Test normal fehl.
Eine solche Heilung über Attributähnlichkeit ist etabliert: Kommerzielle Tools bieten sie an, und Healenium ist eine Open-Source-Option für Selenium. LLM-basierte Heilung, bei der ein Modell die Seite oder den Accessibility Tree liest und einen neuen Locator oder einen gepatchten Test vorschlägt, ist neuer. Die mit Version 1.56 eingeführten Test-Agents von Playwright enthalten einen Healer, der Korrekturen für fehlschlagende Tests vorschlägt; behandeln Sie diese als Assistenten, die Änderungen zum Review vorschlagen, nicht als Autopiloten.
Das eigentliche Risiko: einen echten Bug wegheilen
Eine Heilung setzt voraus, dass die Änderung kosmetisch war. Manchmal war sie es nicht:
- Der Button „Absenden“ wurde versehentlich entfernt, und der Healer klickt stattdessen auf „Entwurf speichern“.
- Ein Feld wurde von „E-Mail“ in „Benutzername“ umbenannt, eine echte Anforderungsänderung, die der Test hätte melden sollen.
- Es gibt zwei ähnliche Zeilen, und der Healer wählt die falsche, sodass der Test gegen die falschen Daten besteht.
In jedem dieser Fälle wird ein Test grün, der fehlschlagen sollte. Regeln, die das Heilen ehrlich halten:
- Jede Heilung melden und den Lauf im Release-Gate fehlschlagen lassen (oder sie zumindest markieren).
- Heilungen in Codeänderungen überführen. Nehmen Sie den vorgeschlagenen Locator im Review an oder lehnen Sie ihn ab; lassen Sie das Tool ihn nicht stillschweigend weiterverwenden.
- Ergebnisse prüfen, nicht nur Interaktionen, damit ein Klick auf das falsche Element spätestens an der nächsten Assertion scheitert.
Zuerst die Locatoren reparieren
Ein Großteil der Fragilität, auf die Self-Healing abzielt, stammt von zerbrechlichen Selektoren: lange XPath-Ketten, generierte Klassennamen, indexbasierte Pfade. Nutzerorientierte Locatoren wie Playwrights getByRole('button', { name: 'Submit' }) oder stabile data-testid-Attribute beseitigen den Großteil dieses Bedarfs, ganz ohne Raten.