AI test case generation is the part of AI-assisted quality work with the most published evidence, which makes it unusually possible to separate what is demonstrated from what is asserted. The evidence is also less flattering than the marketing.
Generating tests from code and generating tests from requirements are different operations with different failure modes. Code-based generation produces tests that describe what the software does. Requirement-based generation produces tests that describe what it should do. The difference is the oracle problem: a test generated from code inherits the bugs in that code as expected behaviour.
What is the difference between generating from code and from requirements?
They answer different questions. Confusing them is the most consequential mistake in AI test case generation.
| Generated from | What the tests describe | In practice |
|---|---|---|
| From code | Describes what the code does | Catches regressions against current behaviour. Misses any bug already present, which becomes the expected result. Good for legacy systems with no tests, and for raising coverage fast. |
| From requirements | Describes what it should do | Catches behaviour that was never implemented correctly. Misses anything the requirement failed to state. Good for new features, regulated work and traceability. |
What does research on AI test case generation actually measure?
Three findings on AI test case generation are worth knowing before any purchase. The first is that coverage is not fault detection. Work on mutation-guided test generation measured a standard language-model prompt at a 53 per cent mutation score, which did not improve across four iterations without mutation feedback. With mutation feedback the approach reached 89.5 per cent. The same body of work reports that across nearly 24,000 tests that failed on mutated code, over 99 per cent passed on the original program, and concludes that models lack the precision to reason reliably about semantic code changes.
The practical reading: a generated suite can report high coverage while failing to detect half the faults deliberately introduced into the code it covers. Coverage measures execution. Mutation score measures whether the test would notice if the behaviour changed.
The second is that generated tests look different from human ones. An empirical study of 2,232 test-related commits found AI agents authored 16.4 per cent of test-adding commits, producing longer tests with higher assertion density and lower cyclomatic complexity than human-written equivalents. Coverage gains were comparable, while the scope of testing tended to be more localised on complex contributions. More assertions is not automatically better: work on test smells found a strong negative correlation between model size and smell frequency, with assertion roulette, where a failing test cannot tell you which assertion failed, most affected.
The third is that no current approach is complete. A 2026 systematic survey of AI-driven test generation from natural language requirements reviewed 21 primary studies against six quality dimensions: automation, ambiguity handling, domain applicability, traceability, evaluation thoroughness and hallucination control. It found no existing approach satisfying all six simultaneously. That is the most useful single sentence in the literature for a buyer, because knowing which of those six you actually need turns an impossible comparison into a tractable one.
What works well in AI test case generation today?
In AI test case generation, four things work with reasonable confidence. Translating clear acceptance criteria into structured scenarios is fast and mostly correct where a requirement is written properly, and it is the strongest case in the category. Expanding combinations across boundary values, equivalence classes and input permutations is where generated suites genuinely find scenarios a person under deadline would have skipped. Raising coverage on untested code is fast and useful, subject to the caveat above about what that coverage proves. And drafting rather than deciding is the realistic workflow: generation produces a draft that an engineer reviews, prunes and corrects. Teams treating output as final get the mutation-score problem. Teams treating it as a first draft get most of the speed with none of the false confidence.
One published figure on speed: an industry source reports test case generation accelerating by 60 per cent, cutting average time per case from roughly an hour to nineteen minutes. That comes from a vendor in the category rather than an independent study, and it measures authoring time rather than test quality.
What does not work yet?
Why maintenance decides whether any of this pays
Creation is the cheap part. A suite is written once and maintained for years. Public references place annual software maintenance at 15 to 20 per cent of build cost, and test suites follow the same pattern: the recurring cost exceeds the initial one on any system with a normal lifespan. A tool that halves authoring time and leaves maintenance unchanged has moved a small number.
This is where generating from requirements separates from generating from code, and it is the strongest argument for the former. When a requirement changes, the tests derived from that requirement are identifiable, and only those need regenerating. Selective regeneration driven by requirement changes is what the research literature points to as the route to lower maintenance effort, rather than reauthoring a suite whenever the application shifts. Tests generated from code have no such link: they are attached to an implementation that changes constantly, and nothing tells you which ones became meaningless when a module was refactored.
On our own figures: the Qualiagentic product page cites maintenance as 60 to 70 per cent of QA effort. That number describes the problem, not a result we promise. We do not publish a reduction percentage, for the reasons this article sets out. A credible figure would need its baseline, the type of application and the measurement period stated alongside it. Until we can publish all three, we would rather show the result on your own suite during a pilot.
How do you evaluate an AI test case generation tool?
-
1Ask what it generates from. Code, requirements, or both. This determines what the tests can possibly tell you, before any feature comparison.
-
2Run mutation testing on the output. Coverage is the number they will show you. Mutation score is the number that answers the question.
-
3Check traceability. Can you follow a generated test back to the requirement it came from, and forward to a result tied to an application version. In regulated work this is not optional.
-
4Give it a genuinely ambiguous requirement. Watch whether the tool flags the ambiguity or silently resolves it. The second behaviour will cost you later.
-
5Ask about selective regeneration. When one requirement changes, does the tool identify and regenerate only the affected tests, or does it produce a fresh suite for you to reconcile.


