Up nextNext guide
Making Practice Tests from Your Notes with AI
Applications
Applications GUIDE
AI test-generation tools propose test cases or test code, but a test still needs a trustworthy oracle: a way to determine the correct outcome.
Listen to this guideAI-narrated · ~1 min
Test generation techniques have different goals. A test oracle supplies the expected result; characterization tests record current behavior and can preserve bugs if the behavior is wrong. The TestPilot paper evaluates an LLM-based JavaScript test generator across 25 npm packages and reports median statement coverage of 70.2% and branch coverage of 52.8%; these are study-specific figures. Coverage-guided fuzzing uses execution feedback such as newly reached branches to guide inputs. Mutation testing challenges a test suite with small deliberate program changes and checks whether assertions detect them. Review generated tests before treating their assertions as specifications.
Generate boundary cases for a function and review expected results.
Use characterization tests to capture behavior before a refactor, then inspect whether it is intended.
Run coverage-guided fuzzing to explore new execution paths.
Review generated tests for assertions that detect real regressions.
AI-generated tests can broaden candidate coverage, but human or formal review should validate expected behavior and avoid overfitting tests to an implementation.
Free newsletter
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
AI test-generation tools propose test cases or test code, but a test still needs a trustworthy oracle: a way to determine the correct outcome.
AI can easily generate inputs, but determining the correct expected result (the oracle) often requires human judgment about intended behavior.
Characterization tests capture how code behaves right now, creating a safety net to detect unintended changes, even if current behavior includes bugs.
The TestPilot paper implements its approach for JavaScript and evaluates it on npm packages. This is the scope of that study, not a claim that LLM test generation only works in JavaScript.
LLM tools generate test code token by token based on the code context, signatures, and any prompts or comments provided.
The authors report median statement coverage of 70.2% and median branch coverage of 52.8% on their evaluation set of 25 npm packages. These are study-specific results, not a general guarantee.
Keep learning
More guides picked for this topic
Up nextNext guide
Making Practice Tests from Your Notes with AI
Applications