Skip to main content

Intro

Heal.dev is building an extra engineer in charge of quality for your team. Our unsupervised testing agent takes in natural language scenarios and uses it to automate testing. Heal can then run tests automatically, find bugs, and run root cause analysis on issues to make fixing faster.

Why Heal?

End-to-end tests are broken. They are flaky because they depend on brittle locators. They require maintenance when the UI changes, even minimally. This makes them unpopular, hard to deploy, painful to maintain. Heal lets you define robust, stable end-to-end tests easily.

Overall principles

Heal lets you define stories (test cases) to test out your app. Stories are made ouf of steps, that are instructions on how to test the app.Heal will execute those scenarios and analyse the execution to detect bugs. You can add in assertions to explicitly test for behaviour. After you run your test suite, Heal will provide root a replay of the test as well as root cause analysis.

Heal reduces the burden of defining and maintaining tests. Heal doesn't rely on brittle selectors (classes, test ids, etc), but insteaed predicts how to run the test based on natural language instructions. This makes the tests very robust and stable. If some minor UI changes happens, Heal tests will not break as long as the overall scenario still makes sense.

Quickstart

Next learn how to

Heal.dev vs alternatives

In general, manual QA provides robust, nuanced testing results but it doesn't scale, takes time to execute and is not systematic. Automated testing provides systematic, fast, scalable testing but tends to be brittle and take time to maintain. Heal provides the best of both worlds because it's easy to setup, systematic, robust, and scales to hundreds of parallel tests.

vs manual QA

Manual testing is better for one-off or exploratory testing. Heal is better for recurring testing. When a test needs to run more than once, it's better to run it on Heal.

  • Heal saves time. Heal takes approximately the same time (maybe a bit more) to setup as a manual testing session, but any future test runs automatically. You should see the time save from the second testing session.
  • Heal speeds up cycles. Unlike manual testing, all Heal tests can run in parallel. And unlike manual testing, you don't have to wait to have time on your calendar (or your tester's). You'll find that each test is slightly slower in Heal, because executing the scenario and classifying the result as pass or fail takes execution time. But because Heal runs all scenarios in parallel, executing the test suite is faster.

vs legacy platforms

  • Heal requires less maintenance. Traditional testing platforms are brittle. When the UI changes, even slightly, tests break. Heal excecutes scenarios from natural language prompts, and is able to survive minor UI, in particular semantic changes, textual changes, and styling changes.
  • Heal helps diagnose bugs faster. Heal's root cause analysis (RCA) helps figure out the root cause of bugs faster.

Heal gets closers to decoupling testing the UX than testing the implementation.

vs playwright (or cypress, or selenium)

  • Heal is faster to setup. Heal.dev is faster to setup than finding the right playwright locator, testing it, and repeating until the test is stable.
  • Heal requires less maintenance. Playwright code is brittle to locator changes. Small textual changes, or accessibility tree changes tends to break playwright code. Heal excecutes scenarios from natural language prompts, and is able to survive semantic changes, textual changes and minor UI changes.
  • Heal tests the UX. Playwright code tends to test the coupling between the implementation and tests. Heal tests the user experience, because it executes natural language instructions. Heal can also execute high-level assertions that behave a lot more like a human-tester would, such as "check a modal is open".