BXUP Track progress & test yourself — free
QA & Testing · Playbook · Foundation · ~4 min read
QA & TESTING · PLAYBOOK · FOUNDATION

Generate Test Cases from Acceptance Criteria — Then Gate Them Like a Reviewer

An assistant drafts thirty test cases in ninety seconds. The professional skill is the ten-minute review gate that follows: score coverage against a rubric, trace every case to a requirement line, and delete the hallucinated behavior before anything enters TestRail.

Tier: Foundation · Workflow area: Test design & planning

This playbook is the foundation move of AI-assisted QA: turn acceptance criteria into a candidate test suite fast, then apply a disciplined human gate so speed never becomes noise. The generation is a commodity. The gate — catching gaps, duplicates, and invented features — is what you are paid for.

When to use

  • New story or feature with written acceptance criteriayou would otherwise hand-author 20–50 cases from scratch.
  • Sparse legacy coverageyou have a requirements doc but the existing suite covers only the happy path.
  • Time-boxed test designsprint planning gave you two hours for a feature that deserves a day.

When NOT to use:

  • No written requirements exist. The model will invent behavior to fill the vacuum. Write or extract ACs first — pb-02 is the tool for that.
  • Compliance-controlled test artifacts where every case needs a signed human author of record; use AI for ideation only and re-author by hand.
  • Trivial changesa one-line copy change needs one check, not a generated suite.

Prerequisites

  • An approved assistantClaude or ChatGPT under your org's data policy; client requirements checked before any story text is pasted.
  • Written acceptance criteria with stable numbering, plus any linked API or design contract.
  • A coverage rubricyour team's checklist of what "covered" means; borrow the one in step 4 if you have none.
  • Import access to TestRail, Xray, or your test-management tool of record.

The recipe

  1. Assemble the source packet. Paste the user story, every acceptance criterion (numbered — you will trace against these numbers), known constraints, and any API or UI contract. Strip customer names and personal data before anything leaves your machine.

  2. Prompt for structured candidates, not prose. Force a table so the output imports cleanly and reviews quickly:

    You are drafting CANDIDATE test cases for human review. Do not invent behavior:
    every case must cite the AC number it verifies. If a behavior seems implied but
    is not written, list it under "OPEN QUESTIONS" instead of writing a case for it.
    
    Story: [paste]
    Acceptance criteria (numbered): [paste]
    Constraints: web app, logged-in users only, EUR and INR currencies.
    
    Output a markdown table: ID | Title | Preconditions | Steps | Expected result |
    Priority (P1-P3) | Source AC.
    Cover: happy paths, negative cases, boundary values, permission variants.
    Then list OPEN QUESTIONS separately.
    
  3. Demand the model attack its own output. Same conversation, before you review:

    Review the table you produced. Which ACs have no covering case? Which cases
    duplicate each other? Which cases assert behavior not present in any AC?
    Answer as three lists: GAPS, DUPLICATES, UNSUPPORTED.
    

    A good result looks like this — the model catching its own invention is the point:

    UNSUPPORTED:
    - TC-14 asserts a confirmation email is sent. No AC mentions email.
    - TC-22 assumes admin users bypass the limit. AC-6 says the limit is universal.
    
  4. Run the human gate with a coverage rubric. Score the suite yourself against a fixed checklist: every AC has ≥1 positive and ≥1 negative case; boundaries tested at, below, and above each limit; role/permission variants present; error paths asserted with specific messages, not "an error is shown." Anything the self-critique flagged gets your verdict, not the model's.

  5. Trace and prune. Delete every case whose Source AC column you cannot verify by re-reading the requirement. Merge duplicates. Rewrite vague expected results ("works correctly") into observable outcomes. Take the OPEN QUESTIONS list to the product owner — these are usually real requirement bugs.

  6. Import the survivors. Convert to your test-management format and load:

    Convert the approved cases to TestRail CSV import format with columns:
    "Title","Precondition","Steps","Expected Result","Priority","References".
    Steps separated by newlines within the cell. Output raw CSV only.
    
    csvlint approved-cases.csv && head -3 approved-cases.csv
    

    Then TestRail: Cases → Import from CSV; Xray: Test Case Importer. Keep the References column pointing at AC numbers — that is your traceability for free.

Warning

Never bulk-import directly from model output to your test-management tool. The import step must consume only the reviewed file, or the gate silently disappears from your process within a sprint.

Make it yours

  • ChatGPT / Claude chat with a project or custom instructionpin your coverage rubric and output format in project instructions so every generation starts pre-formatted; you stop re-pasting the rubric.
  • Claude Code against a requirements repoif ACs live as markdown in git, run the generation in-repo so the model reads the actual files, and commit candidate suites as PRs; the review gate becomes a normal code review.
  • Xray/Zephyr shopsswap step 6 for Gherkin output (see pb-04) and import as Cucumber tests, keeping AC tags as scenario tags for traceability queries in Jira.

Quality check

  • Traceability is total: every surviving case cites an AC you re-read and confirmed; zero cases with an empty or hand-waved Source column.
  • The gate caught something: if your review found nothing to delete or fix, your rubric is too loose — generated suites reliably contain at least duplicates and one unsupported behavior.
  • Negative coverage is real: count them; a suite that is 90% happy-path passed generation but failed design.
  • Boundaries are three-valued: at-limit, one-below, one-above for every numeric or length constraint in the ACs.
  • Open questions were filed: ambiguities went to the product owner as tickets or comments, not silently resolved by your assumption or the model's.
  • Import round-trips: spot-check three imported cases in TestRail/Xray against the approved CSV — formatting mangling is common and silent.
Key Takeaway:

Generation compresses hours of typing into minutes; it does not compress judgment. The suite that enters your tool must be one a reviewer signed, traced, and pruned — the AI wrote candidates, you wrote the coverage.

This is the free reading view. Open BXUP to track your progress, run the hands-on labs, and prove it with original, exam-pattern assessments.
© Anvi Innovate · BXUP — Be Exponentially Upskilled · BXUP is an independent learning platform, not affiliated with or endorsed by AWS, Microsoft, Google, NVIDIA, IBM, Salesforce, Databricks, Oracle or Anthropic. All trademarks belong to their respective owners. · bxup.in