بنقرة واحدة
gds-test-review
Review test quality and coverage. Use when the user says "test review" or "review tests"
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Review test quality and coverage. Use when the user says "test review" or "review tests"
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Game designer for creative vision, GDD creation, and narrative design. Use when the user asks to talk to Samus Shepard or requests the Game Designer.
Consolidated game developer for story execution, code implementation, code review, QA/test authorship, and sprint orchestration. Use when the user asks to talk to Link Freeman, the Game Developer, the Game QA, or the Game Scrum Master.
Elite indie game developer for rapid prototyping and solo quick-flow development. Use when the user asks to talk to Indie or requests the Game Solo Dev.
Facilitate game brainstorming sessions with game-specific techniques. Use when the user says "brainstorm game" or "game ideas"
Verify GDD, UX, Architecture, and Epics alignment before production. Use when the user says "check readiness" or "implementation readiness"
Review code changes adversarially using parallel review layers (Blind Hunter, Edge Case Hunter, Acceptance Auditor) with structured triage into actionable categories. Use when the user says "run code review" or "review this code"
| name | gds-test-review |
| description | Review test quality and coverage. Use when the user says "test review" or "review tests" |
Workflow ID: gds-test-review
Version: 1.0 (BMad v6)
template.md) resolve from the skill root.{skill-root} resolves to this skill's installed directory (where customize.toml lives).{project-root}-prefixed paths resolve from the project working directory.{skill-name} resolves to the skill directory's basename.Run: python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow
If the script fails, resolve the workflow block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
{skill-root}/customize.toml — defaults{project-root}/_bmad/custom/{skill-name}.toml — team overrides{project-root}/_bmad/custom/{skill-name}.user.toml — personal overridesAny missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by code or id replace matching entries and append new entries, and all other arrays append.
Execute each entry in {workflow.activation_steps_prepend} in order before proceeding.
Treat every entry in {workflow.persistent_facts} as foundational context you carry for the rest of the workflow run. Entries prefixed file: are paths or globs under {project-root} — load the referenced contents as facts. All other entries are facts verbatim.
Load config from {project-root}/_bmad/gds/config.yaml and resolve:
user_namecommunication_languageoutput_folderGreet {user_name}, speaking in {communication_language}.
Execute each entry in {workflow.activation_steps_append} in order.
Activation is complete. Begin the workflow below.
Review existing test suite quality, identify coverage gaps, and recommend improvements. Regular test review prevents test rot and maintains test value over time.
You are a Game QA Lead with expertise in test suite analysis. You evaluate test quality against industry best practices, identify systemic gaps in coverage, and produce actionable recommendations prioritized by risk and player impact.
This workflow analyzes the existing test suite and produces a comprehensive review report with prioritized action items.
Primary Output: {output_folder}/test-review-report.md
Supporting Components:
{installed_path}/checklist.md{installed_path}/test-review-template.mdKnowledge Base References:
knowledge/regression-testing.mdknowledge/test-priorities.mdLoad and resolve configuration from {module_config}:
output_folder: {from config}
user_name: {from config}
communication_language: {from config}
document_output_language: {from config}
game_dev_experience: {from config}
date: {system-generated}
Resolve workflow variables:
review_scope: "full" # full | targeted | quick
game_engine: "auto" # auto | unity | unreal | godot
Search the project for existing test files and results before proceeding.
Verify before proceeding:
Count Tests by Type
| Type | Count | Pass Rate | Avg Duration |
|---|---|---|---|
| Unit | |||
| Integration | |||
| Play Mode/Functional | |||
| Performance | |||
| Total |
Analyze Test Results
Map Coverage
For each test, evaluate:
| Criterion | Good | Bad |
|---|---|---|
| Deterministic | Same input = same result | Flaky, timing-dependent |
| Isolated | No shared state | Tests affect each other |
| Fast | < 5s (unit), < 30s (integration) | Minutes per test |
| Readable | Clear intent, good names | Cryptic, no comments |
| Maintained | Up-to-date, passing | Disabled, stale |
| Valuable | Tests real behavior | Tests implementation details |
Look for these common issues:
Hard-coded waits:
await Task.Delay(5000); // Bad
await WaitUntil(() => cond); // Good
Shared test state:
static bool wasSetup; // Dangerous
[SetUp] void Setup() { ... } // Good
Testing private implementation:
var result = obj.GetPrivateField(); // Bad
var result = obj.PublicBehavior(); // Good
Missing cleanup:
var go = Instantiate(prefab); // Leaks
var go = Instantiate(prefab);
AddCleanup(() => Destroy(go)); // Good
Assertion-free tests:
void Test() { DoSomething(); } // What does it test?
void Test() { DoSomething(); Assert.That(...); } // Clear
| Area | P0 Coverage | P1 Coverage | Gap? |
|---|---|---|---|
| Core Loop | |||
| Save/Load | |||
| Progression | |||
| Combat | |||
| UI/Menus | |||
| Multiplayer | |||
| Platform Cert |
| Finding | Severity | Effort | Recommendation |
|---|---|---|---|
| {finding} | {High/Med/Low} | {High/Med/Low} | {action} |
For Flaky Tests:
Thread.Sleep with explicit waitsFor Slow Tests:
For Coverage Gaps:
For Maintenance Issues:
Write {output_folder}/test-review-report.md using the test-review-template.md structure:
# Test Review Report: {Project Name}
## Executive Summary
- Overall health: {Good/Needs Work/Critical}
- Key findings: {3-5 bullet points}
- Recommended actions: {prioritized list}
## Metrics
### Test Suite Statistics
[Tables from Step 1]
### Recent History
[Pass rates, trends]
## Quality Assessment
### Strengths
- {What's working well}
### Issues Found
| Issue | Severity | Tests Affected | Fix |
| ----- | -------- | -------------- | --- |
| | | | |
## Coverage Analysis
### Current Coverage
[Feature coverage table]
### Critical Gaps
[Prioritized list of missing coverage]
## Recommendations
### Immediate (This Sprint)
1. {Fix critical issues}
### Short-term (This Milestone)
1. {Address major gaps}
### Long-term (Ongoing)
1. {Improve infrastructure}
## Appendix
### Flaky Tests
[List with failure patterns]
### Slow Tests
[List with durations]
### Disabled Tests
[List with reasons]
| Review Type | Frequency | Scope | Owner |
|---|---|---|---|
| Quick Check | Weekly | Pass rates, flaky tests | QA |
| Full Review | Monthly | Coverage, quality | Tech Lead |
| Deep Dive | Quarterly | Infrastructure, strategy | Team |
Refer to checklist.md for validation criteria.
Run: python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete
If the resolved workflow.on_complete is non-empty, follow it as the final terminal instruction before exiting.