Files
Claude-Code-Game-Studios/.claude/docs/templates/test-plan.md
Donchitos 168ac96c3a Add comprehensive QA and testing framework (52→56 skills)
Introduces a full shift-left QA pipeline with Story Type classification
as the backbone of the Definition of Done:

New skills:
- /test-setup: scaffold test framework + CI/CD per engine (Godot/Unity/Unreal)
- /qa-plan: generate sprint test plan classifying stories by type
- /smoke-check: critical path gate (PASS/PASS WITH WARNINGS/FAIL) before QA hand-off
- /team-qa: orchestrate qa-lead + qa-tester through full QA cycle

Story Type classification (Logic/Integration/Visual/Feel/UI/Config/Data):
- Logic and Integration: BLOCKING DoD gate — unit/integration test required
- Visual/Feel and UI: ADVISORY — screenshot + sign-off evidence required
- Config/Data: ADVISORY — smoke check pass sufficient

Updated skills: story-done (test evidence gate), story-readiness (Story Type
check), gate-check (test framework at Technical Setup, test evidence at
Polish/Release), create-epics-stories (Type field + Test Evidence section)

Updated agents: qa-lead (shift-left philosophy + evidence table),
qa-tester (automated test patterns for Godot/Unity/Unreal)

New templates: test-evidence.md (manual sign-off record), test-plan.md
(sprint-oriented QA plan replacing generic feature template)

Updated coding-standards.md: Testing Standards section with DoD table,
test rules, what NOT to automate, and engine-specific CI/CD commands

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 13:48:32 +11:00

4.4 KiB

QA Plan: [Sprint/Feature Name]

Date: [date] Generated by: /qa-plan Scope: [N stories across N systems] Engine: [engine name and version] Sprint file: [path to sprint plan]


Story Coverage Summary

Story Type Automated Test Required Manual Verification Required
[story title] Logic Unit test — tests/unit/[system]/ None
[story title] Integration Integration test — tests/integration/[system]/ Smoke check
[story title] Visual/Feel None (not automatable) Screenshot + lead sign-off
[story title] UI None (not automatable) Manual step-through
[story title] Config/Data Data validation (optional) Spot-check in-game values

Totals: [N] Logic, [N] Integration, [N] Visual/Feel, [N] UI, [N] Config/Data


Automated Tests Required

[Story Title] — Logic

Test file path: tests/unit/[system]/[story-slug]_test.[ext]

What to test:

  • [Formula or rule from GDD Formulas section — e.g., "damage = base * multiplier where multiplier ∈ [0.5, 3.0]"]
  • [Each named state transition]
  • [Each side effect that should / should not occur]

Edge cases to cover:

  • Zero / minimum input values
  • Maximum / boundary input values
  • Invalid or null input
  • [GDD-specified edge cases]

Estimated test count: ~[N] unit tests


[Story Title] — Integration

Test file path: tests/integration/[system]/[story-slug]_test.[ext]

What to test:

  • [Cross-system interaction — e.g., "applying buff updates CharacterStats and triggers UI refresh"]
  • [Round-trip — e.g., "save → load restores all fields"]

Manual QA Checklist

[Story Title] — Visual/Feel

Verification method: Screenshot + [designer / art-lead] sign-off Evidence file: production/qa/evidence/[story-slug]-evidence.md Who must sign off: [designer / lead-programmer / art-lead]

  • [Specific observable condition — e.g., "hit flash appears on frame of impact, not the frame after"]
  • [Another falsifiable condition]

[Story Title] — UI

Verification method: Manual step-through Evidence file: production/qa/evidence/[story-slug]-evidence.md

  • [Every acceptance criterion translated into a manual check item]

Smoke Test Scope

Critical paths to verify before QA hand-off (run via /smoke-check):

  1. Game launches to main menu without crash
  2. New game / session can be started
  3. [Primary mechanic introduced or changed this sprint]
  4. [System with regression risk from this sprint's changes]
  5. Save / load cycle completes without data loss (if save system exists)
  6. Performance is within budget on target hardware

Playtest Requirements

Story Playtest Goal Min Sessions Target Player Type
[story] [What question must be answered?] [N] [new player / experienced / etc.]

Sign-off requirement: Playtest notes → production/session-logs/playtest-[sprint]-[story-slug].md

If no playtest sessions required: No playtest sessions required for this sprint.


Definition of Done — This Sprint

A story is DONE when ALL of the following are true:

  • All acceptance criteria verified — automated test result OR documented manual evidence
  • Test file exists for all Logic and Integration stories and passes
  • Manual evidence document exists for all Visual/Feel and UI stories
  • Smoke check passes (run /smoke-check sprint before QA hand-off)
  • No regressions introduced — previous sprint's features still pass
  • Code reviewed (via /code-review or documented peer review)
  • Story file updated to Status: Complete via /story-done

Stories requiring playtest sign-off before close: [list, or "None"]


Test Results

Fill in after testing is complete.

Story Automated Manual Result Notes
[title] PASS PASS
[title] PASS PASS
[title] FAIL BLOCKED [describe failure]

Bugs Found

ID Story Severity Description Status
BUG-001 S[1-4] Open

Sign-Off

  • QA Tester: [name] — [date]
  • QA Lead: [name] — [date]
  • Sprint Owner: [name] — [date]

Template: .claude/docs/templates/test-plan.md Generated by: /qa-plan — do not edit this line