Ok you've got us at the edge of our seats. What's the alternative approach?
The tradeoff is it's not as comprehensive. But giving users something that is 95% working and making it easy for them to fix those issues appears to be the best user experience we've found so far.
The endpoints we poke at are provided as context when creating the application.
Our approach evolved to be more liberal in what was required to pass. So instead of looking for an HTML element with id="foo" we accept a 200 HTTP response code. It's subtle but had a huge improvement in the end user experience.
Citing the article and helix tests:
tests:
- name: addition_test
steps:
- prompt: "What is 2 + 2?"
expected_output: "4"
We would change expected_output to be "integer" or "not an error".