AI turns stories and acceptance criteria into UAT test cases — steps, data, expected results — in minutes. The artifact that makes it trustworthy is the requirement-to-test coverage matrix generated alongside: it exposes zero-coverage requirements and orphan tests before UAT starts, and gives incoming defects a home when it does.
Workflow area: UAT & Testing · Tier: Core · Hands-on time: ~35 minutes
UAT packs written by hand converge on the happy path, because writing test case forty-one is tedious and the deadline is real. AI removes the tedium — but an AI-generated pack has its own signature failure: plausible tests that quietly skip the requirement nobody phrased crisply, plus tests that verify behavior no requirement asked for. The coverage matrix is the instrument that catches both, which is why in this playbook the matrix is not documentation of the pack — it is the quality gate the pack must pass.
Assemble the tested set. Collect the baselined stories with IDs, their acceptance criteria, and any relevant NFRs slated for business verification. Note which requirements the business owner has flagged critical-path — the matrix will weight review effort by this.
Generate cases and matrix together. One prompt, both artifacts, so they cannot drift:
You are drafting a UAT pack for business testers. Attached:
stories with IDs and Given/When/Then acceptance criteria.
Produce:
1. TEST CASES — for each acceptance criterion at least one
case: TC-ID | traces-to (story + criterion ID) | title |
preconditions | numbered steps in business-user language
(what to click/enter/observe — no API calls) | test data
(synthetic only, realistic formats) | expected result
(observable, unambiguous) | priority inherited from the
requirement.
Include negative cases (invalid input, missing data,
unauthorized user) and boundary cases wherever a
criterion implies a limit.
2. COVERAGE MATRIX — rows: every story and criterion ID.
Columns: covering TC-IDs, case count, coverage verdict
(COVERED / PARTIAL: <what is untested> / NONE).
3. ORPHANS — every test case that traces to no criterion.
Do not delete them; list them for adjudication.
Rules: never invent requirements to justify a test. If a
criterion is too vague to test, output UNTESTABLE with the
reason instead of a weak test.
Read the matrix before the tests. The verdict lines are the findings:
ST-07/AC-2 (partial refunds) | — | 0 | NONE
ST-11/AC-1 (duplicate submission) | TC-31 | 1 | PARTIAL:
tested via double-click only; concurrent-session path
untested
ORPHAN: TC-44 "verify export includes archived records" —
no requirement mentions archived records in export
UNTESTABLE: ST-09/AC-3 "statement generation is fast"
Each NONE is either a generation miss (regenerate with the criterion quoted) or a requirement so vague it repelled testing (fix the requirement). Each orphan is either scope creep to delete or — more interestingly — evidence of a missing requirement to raise. Each UNTESTABLE goes back through the acceptance-criteria gate.
Review the cases as a business tester, not a proofreader. Sample every critical-path case fully and a third of the rest. You are hunting three defects: expected results two people could score differently ("works correctly"), steps that assume system knowledge a business tester lacks, and data that would not survive first contact (formats, mandatory fields, referential setup). Fix in the pack, and note the pattern — the same prompt fix improves next sprint's generation.
Have the business owner sign the matrix, not the pack. The owner cannot meaningfully review 200 test cases; they can absolutely review a one-page matrix saying which requirements are covered, partially covered, and untested, with priorities visible. Their sign-off on the coverage position — including any accepted gaps, in writing — is the honest form of UAT scope agreement.
Use the matrix as the live UAT dashboard. As defects arrive, ask the AI to cluster them: "map each defect to the requirement and test case it implicates; flag defects matching no test (escaped coverage) and requirements accumulating multiple defects." Escaped-coverage defects feed new test cases; defect concentrations feed the go/no-go narrative with evidence attached.
Stories, acceptance criteria, and test data describe unreleased functionality and business rules — generate UAT packs only in your organization's approved AI workspace, and treat any test case referencing real customer or employee records as a defect to fix on sight.
The test cases are the volume; the coverage matrix is the analysis — a UAT pack that names its own gaps before execution starts turns "did we test enough?" from a go/no-go argument into a document everyone signed three weeks earlier.