Self-healing that repairs locator drift without hiding failures
Cheap, certain checks first and AI reasoning last. Locator drift can be repaired, assertion failures stay red, and every fix is reviewable and reversible.
Locator breakage is one of the largest maintenance costs in UI automation. A developer renames a field, a component update reshuffles the markup, and a test that passed yesterday fails without any behaviour changing. Self-healing can absorb that churn, but only if its boundary is strict: repair how the test finds an element, never quietly change what the test expects.
Same run, two very different causes.
The app changed, the test did not need to. Fixed during the run, and reversible.
The expected total did not match. Left red with evidence for review.
Cheap, certain checks run before anything expensive, and no fix ever rewrites what your test expects.
Cheap and certain first, reasoning last
AxonQA escalates. Fast, predictable checks run first and resolve most breakage without any AI involved, which is why healing does not add cost or minutes to every run. Reasoning is held back for the failures the quick checks could not settle. The order matters commercially as much as technically: a tool that reaches for a model on every red test is one you will eventually turn off because of the bill.
The boundary that actually matters
When the quick checks cannot recover a locator, reasoning can propose where the element moved and why the replacement is a match. That repair is limited to locators, structure, and timing. If the expected behaviour itself does not match, the assertion stays red with its screenshots, steps, error, and recent history ready for review. Axon AI can help investigate whether the evidence points to a likely product defect, flaky history, or interface drift, but the tool does not pretend that heuristic is certainty.
1 step self-healed when a locator moved. Every fix is reviewable.
Every fix is reviewable and reversible
The difference between healing and hiding is the audit trail. For every fix you can see what the original locator was and why it failed, what replaced it and the reasoning behind the change, and a one-click way to accept the fix into the test or revert it if it targeted the wrong element.
Guardrails that keep healing honest
Healing never silently changes what a test means. A run that only passed because of healing says so on the run page, in amber, so a green result never hides a fix you did not approve. Healing frequency feeds your health metrics: a test that heals on every run has not been healed, it is unstable, and its locator or the app markup needs real attention. And healing touches locators, structure, and timing only, never the assertions. When the product legitimately changed and an expectation should move, Axon can propose the update, but only a person accepts it, because deciding what the product should do is your call.
That is what makes self-healing safe to trust: it shows its work, escalates from quick certainty to careful review, and never fakes a pass. Locator drift can be repaired; an assertion mismatch remains the failure it is until a person reviews the evidence.
See these practices inside AxonQA
Generate structured test cases from your stories, then validate them with real runs on your own app.