•
Drizz raises $2.7M in seed funding •
•
Featured on Forbes
•
Drizz raises $2.7M in seed funding •
•
Featured on Forbes

Well, it can definitely do that when I "self-healing" becomes a a retry loop or a silent selector swap where the developers or testers have no record or context of what changed. However, It shouldn't, and doesn't, when healing is confined to how a step finds an element and never touches what the test asserts. A failed validation must always fail the test. That single design line separates self-healing from self-deception.
If you've been burned by retry-until-green, your skepticism is earned. Let's take the question seriously instead of waving it away.
Early "self-healing" deserved its reputation. Some tools implemented it as automatic retries. All it did was run the step three times, report the pass, mention the two failures nowhere. Others silently loosened matchers: the exact selector died, so the tool grabbed the nearest similar element and moved on. And a few would quietly skip or weaken steps that kept failing.
All three produce the same outcome: a green dashboard and a bug in production. Your users become the assertion.
So the question isn't paranoid. It's the right question, you're really asking what exactly is my tool allowed to change without telling me? The answer varies more than vendors admit, we've broken down how every tool actually implements self-healing, but you can audit any of them with what follows.
Every test step does two jobs. It finds something on the screen, and it verifies something about the app's behavior.
Legitimate self-healing operates only on the first job. It repairs the finding, but no the verifying. If a validation fails because of wrong total, missing screen, changed state, that is a real failure, and it must surface as one, loudly, with evidence.
A tool that "heals" a failing assertion isn't healing anything. It's deleting your test while leaving the row in your dashboard.
Drizz approaches the problem from a different starting point: its Vision AI reads the screen the way a person does, no selectors, no XPaths, no accessibility-tree lookups. That means the most common category of "broken test" (identifier changed, layout shifted, element restyled) mostly doesn't need healing at all, because there was never a selector to break. [screenshot: same step passing before/after a UI refresh]
Where behavior genuinely changes, the roles stay separate. The Self-Healer applies to locating and interacting; validations are never auto-modified, a failed check fails the run. And instead of a bare red X, Drizz's failure reasoning tells you why it failed: wrong screen, missing element, changed copy, with a full video recording of the run as evidence. You review the diagnosis; you decide whether it's UI drift or a real regression.
The honest version of "zero script maintenance" is not "nothing ever fails." It's "the only failures you see are real ones." That's the contract codeless test automation has to honor before it belongs in a release pipeline.
Auditing this takes ten minutes, whatever platform you run:
Worth stating plainly, because this is the trust contract:
Self-healing that respects those three rules removes noise. Self-healing that overrides them removes coverage.
What's the difference between self-healing and a retry?
A retry runs the same step again and hopes. A heal changes how the step locates its target, records what it changed, and still subjects the result to the original assertion. If a tool can't show you the record, assume it's retrying.
Should healed steps be reviewed?
Skim them, yes, especially after releases. A cluster of heals on one flow is an early warning that the flow changed more than cosmetically. The review takes minutes; it's the audit trail retries never gave you.
Can self-healing fix a failing assertion?
By design, no. An assertion is the test's opinion about correct behavior; only a human should change an opinion. Any tool that edits assertions automatically has inverted the purpose of the suite.