Automated AI testing, meaning one: AI that automates your testing
Coverage generated from your product, steps expressed as intentions so cosmetic changes do not break them, failures returned in a form the fixer can use. The software under test is ordinary and deterministic; the AI is in the tooling.
This is what most products in the category do, and it is what most teams need.
Meaning two: testing a system that contains AI
Here the product itself is non-deterministic. The same input produces different output, so "expected equals actual" stops being available and you need a different kind of assertion.
Properties, not equality
Assert the output has the right shape, cites a source, stays within length, refuses what it should refuse.
Distributions, not runs
One run tells you almost nothing. Run many and track the rate.
Regression, not absolutes
The question is whether this change made it worse, not whether it is perfect.
The mistake common to both
Assuming a passing check means something without ever confirming the check can fail. In the deterministic case this produces suites full of assertions that could never go red. In the non-deterministic case it produces evaluation harnesses that score anything highly.
Break something on purpose. One minute, and it is the only evidence either kind of check is connected to the thing it claims to measure.
Drawing the boundary in a mixed product
Most products that contain AI are mostly not AI, and the useful move is to draw the line explicitly rather than letting the non-determinism spread.
Everything around the feature is ordinary software: the authentication, the storage, the rate limits, the interface that renders the output. All of it tests conventionally, and treating the whole product as unpredictable because one component is loses you a lot of cheap, reliable coverage.
Inside the boundary, switch to properties and rates. The input goes in, the output varies, and what you assert is that it has the right shape, cites something real, and refuses what it should. Writing down where that boundary sits, once, is what stops a team from either over-testing the deterministic parts with statistical methods or under-testing the AI part because exact assertions kept failing.
Which one do you have
If your product would give the same answer twice, you are in the first case and want generated coverage against the running app. If it would not, you are in the second and need property-based assertions and rates rather than pass or fail.
Plenty of products are both: a deterministic application with one AI feature inside it. Test the deterministic parts normally and treat the AI feature as its own problem rather than stretching one approach across both.
Terminal
npm install -g @testsprite/testsprite-cli
testsprite setup
The dashboard covers the same ground for anyone who does not want a local install, and the full command surface lives in the CLI repository.
Two routes, and the choice is really about who owns the pipeline. Connecting the GitHub App from the dashboard needs no change to your repository at all, because it reacts to the deployment your build already emits. Adding a GitHub Actions step puts the check in the repo where it gets reviewed like the rest of the build.
Which meaning TestSprite covers
The first. It uses AI to verify ordinary software: coverage generated from your product, steps expressed as intentions, execution against the deployed application, and a failure returned in a form a coding agent can act on.
For a product that contains an AI feature, that covers everything around it, which is most of the product: authentication, storage, rate limiting, the interface, the flows a user actually takes. Auto-Authentication, Dynamic Variables, Dependency Chains and Auto-Cleanup handle the state problems on the API side.
The feature itself needs property-based assertions and rates, which is a different harness. Drawing that boundary explicitly is what lets you get cheap, reliable coverage on the deterministic majority instead of treating the whole product as unpredictable.
Which does TestSprite do?
The first. It verifies deterministic application behavior against the running product, including applications that happen to contain AI features.
How do we test an LLM feature?
Property-based assertions run many times, tracking rates rather than single results. Refusals, format and citation presence are usually more checkable than answer quality.
Can the same suite cover both?
The deterministic parts, yes. The non-deterministic feature needs its own harness with its own notion of a passing result.
What is a reasonable pass rate for an AI feature?
Whatever your previous rate was. Absolute targets borrowed from benchmarks rarely transfer to your product.
Is a single failing run a bug?
Not on its own for a non-deterministic feature. A rate that moved is the signal; one run is noise.
Two subjects, one phrase.
Automated AI testing means either AI that tests your software or testing software that contains AI. The first wants generated coverage against the running app, the second wants properties and rates. Both need checks you have confirmed can fail.