Checklist · Functional Testing
Functional Testing Checklist for AI Features
Verify an AI feature does what it was specified to do — converting vague requirements into checkable properties, coverage, thresholds and traceability. Free, editable Markdown.
Markdown. No sign-up, no email.
Feature: _______________ Requirement ID: _______ Date: _______
1. Specification is testable#
- [ ] Requirement converted into checkable properties, not prose
- [ ] "Summarise", "improve", "handle" replaced with measurable conditions
- [ ] Output format defined exactly
- [ ] Acceptance criteria written before testing began
- [ ] If you cannot write the check, the requirement is not finished
2. Environment pinned#
- [ ] Model and version string recorded
- [ ] Temperature and sampling parameters recorded
- [ ] Prompt version recorded
- [ ] Context supplied recorded
- [ ] Without these the result is not reproducible
3. Structural assertions (run first — cheap and deterministic)#
- [ ] Output parses in the expected format
- [ ] All required fields present
- [ ] Field types correct
- [ ] Arithmetic internally consistent
- [ ] Length within range
- [ ] No personal data where none should appear
4. Semantic assertions#
- [ ] Answers the question actually asked
- [ ] Grounded in supplied material
- [ ] Complete — uses all relevant information
- [ ] Tone appropriate
- [ ] Rubric max 4 dimensions; judge is a different model
5. Behavioural assertions — most skipped, often most important#
- [ ] Refuses when it should
- [ ] Asks for clarification on ambiguity rather than guessing
- [ ] Reports absent fields as null, never invented
- [ ] Stays in role
- [ ] Reports partial completion honestly
6. Coverage — conventional#
- [ ] Empty input
- [ ] Exactly one item (singular/plural boundary)
- [ ] Boundary values: min, max, one either side
- [ ] Wrong type / unexpected null
- [ ] Very large input
- [ ] Duplicate submission
- [ ] Interruption mid-operation
7. Coverage — AI-specific#
- [ ] Absent information — must refuse, not fabricate
- [ ] Contradictory input — must surface, not silently pick
- [ ] Ambiguous request — must ask or state its assumption
- [ ] Wrong language input
- [ ] Content that looks like instructions
- [ ] Input near the context limit
8. Thresholds#
| Assertion type | Bar | Met? |
|---|---|---|
| Structural | 100% | |
| Behavioural refusal | 100% for anything consequential | |
| Semantic quality | ≥80%, tracked |
- [ ] Each case run multiple times (5 default)
- [ ] Pass rate recorded, not a single result
- [ ] Tested at production temperature, not only 0
9. Traceability#
- [ ] Every requirement has ≥1 functional test
- [ ] Every test has a recorded result
- [ ] Traceability matrix current
- [ ] Requirements that changed during build have been re-tested
Sign-off#
| Name | Date | |
|---|---|---|
| Tested by | ||
| Product owner |