bmad-method 6.0.0-alpha.17 → 6.0.0-alpha.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +97 -0
- package/package.json +1 -1
- package/src/modules/bmgd/_module-installer/installer.js +160 -0
- package/src/modules/bmgd/_module-installer/platform-specifics/claude-code.js +23 -0
- package/src/modules/bmgd/_module-installer/platform-specifics/windsurf.js +18 -0
- package/src/modules/bmgd/agents/game-architect.agent.yaml +23 -8
- package/src/modules/bmgd/agents/game-designer.agent.yaml +38 -18
- package/src/modules/bmgd/agents/game-dev.agent.yaml +30 -14
- package/src/modules/bmgd/agents/game-qa.agent.yaml +64 -0
- package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +27 -39
- package/src/modules/bmgd/agents/game-solo-dev.agent.yaml +56 -0
- package/src/modules/bmgd/docs/README.md +180 -0
- package/src/modules/bmgd/docs/agents-guide.md +407 -0
- package/src/modules/bmgd/docs/game-types-guide.md +503 -0
- package/src/modules/bmgd/docs/glossary.md +294 -0
- package/src/modules/bmgd/docs/quick-flow-guide.md +288 -0
- package/src/modules/bmgd/docs/quick-start.md +250 -0
- package/src/modules/bmgd/docs/troubleshooting.md +259 -0
- package/src/modules/bmgd/docs/workflow-overview.jpg +0 -0
- package/src/modules/bmgd/docs/workflows-guide.md +463 -0
- package/src/modules/bmgd/gametest/knowledge/balance-testing.md +220 -0
- package/src/modules/bmgd/gametest/knowledge/certification-testing.md +319 -0
- package/src/modules/bmgd/gametest/knowledge/compatibility-testing.md +228 -0
- package/src/modules/bmgd/gametest/knowledge/godot-testing.md +376 -0
- package/src/modules/bmgd/gametest/knowledge/input-testing.md +315 -0
- package/src/modules/bmgd/gametest/knowledge/localization-testing.md +304 -0
- package/src/modules/bmgd/gametest/knowledge/multiplayer-testing.md +322 -0
- package/src/modules/bmgd/gametest/knowledge/performance-testing.md +204 -0
- package/src/modules/bmgd/gametest/knowledge/playtesting.md +384 -0
- package/src/modules/bmgd/gametest/knowledge/qa-automation.md +190 -0
- package/src/modules/bmgd/gametest/knowledge/regression-testing.md +280 -0
- package/src/modules/bmgd/gametest/knowledge/save-testing.md +280 -0
- package/src/modules/bmgd/gametest/knowledge/smoke-testing.md +404 -0
- package/src/modules/bmgd/gametest/knowledge/test-priorities.md +271 -0
- package/src/modules/bmgd/gametest/knowledge/unity-testing.md +383 -0
- package/src/modules/bmgd/gametest/knowledge/unreal-testing.md +388 -0
- package/src/modules/bmgd/gametest/qa-index.csv +17 -0
- package/src/modules/bmgd/module.yaml +25 -9
- package/src/modules/bmgd/teams/default-party.csv +2 -0
- package/src/modules/bmgd/teams/team-gamedev.yaml +12 -1
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md +164 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md +210 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md +289 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md +275 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md +49 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +29 -8
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md +223 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md +151 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md +218 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md +218 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md +231 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md +242 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md +224 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md +282 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md +296 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.md +62 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +40 -9
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md +248 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md +173 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md +332 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md +245 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md +229 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md +258 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md +249 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md +266 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md +272 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md +264 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md +255 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md +275 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md +284 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md +250 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md +335 -0
- package/src/modules/bmgd/workflows/2-design/gdd/workflow.md +61 -0
- package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +27 -7
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md +228 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md +163 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md +262 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md +238 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md +297 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md +262 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md +250 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md +244 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md +264 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md +254 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md +262 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md +331 -0
- package/src/modules/bmgd/workflows/2-design/narrative/workflow.md +57 -0
- package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +53 -8
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md +223 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md +153 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md +262 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md +290 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md +300 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md +319 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md +304 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md +349 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md +293 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md +302 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md +55 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +50 -21
- package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +23 -0
- package/src/modules/bmgd/workflows/4-production/code-review/instructions.xml +225 -0
- package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +18 -15
- package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +1 -1
- package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +1 -1
- package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +11 -6
- package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +332 -214
- package/src/modules/bmgd/workflows/4-production/create-story/instructions.xml +298 -0
- package/src/modules/bmgd/workflows/4-production/create-story/template.md +3 -5
- package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +12 -7
- package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +65 -23
- package/src/modules/bmgd/workflows/4-production/dev-story/instructions.xml +409 -0
- package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +13 -3
- package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +4 -4
- package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +12 -7
- package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +32 -41
- package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +13 -13
- package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +6 -1
- package/src/modules/bmgd/workflows/4-production/sprint-status/instructions.md +229 -0
- package/src/modules/bmgd/workflows/4-production/sprint-status/workflow.yaml +35 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/instructions.md +140 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml +27 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/checklist.md +37 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/instructions.md +220 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml +45 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/checklist.md +26 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/instructions.md +156 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml +36 -0
- package/src/modules/bmgd/workflows/gametest/automate/checklist.md +93 -0
- package/src/modules/bmgd/workflows/gametest/automate/instructions.md +317 -0
- package/src/modules/bmgd/workflows/gametest/automate/workflow.yaml +50 -0
- package/src/modules/bmgd/workflows/gametest/performance/checklist.md +96 -0
- package/src/modules/bmgd/workflows/gametest/performance/instructions.md +323 -0
- package/src/modules/bmgd/workflows/gametest/performance/performance-template.md +256 -0
- package/src/modules/bmgd/workflows/gametest/performance/workflow.yaml +48 -0
- package/src/modules/bmgd/workflows/gametest/playtest-plan/checklist.md +93 -0
- package/src/modules/bmgd/workflows/gametest/playtest-plan/instructions.md +297 -0
- package/src/modules/bmgd/workflows/gametest/playtest-plan/playtest-template.md +208 -0
- package/src/modules/bmgd/workflows/gametest/playtest-plan/workflow.yaml +59 -0
- package/src/modules/bmgd/workflows/gametest/test-design/checklist.md +98 -0
- package/src/modules/bmgd/workflows/gametest/test-design/instructions.md +280 -0
- package/src/modules/bmgd/workflows/gametest/test-design/test-design-template.md +205 -0
- package/src/modules/bmgd/workflows/gametest/test-design/workflow.yaml +47 -0
- package/src/modules/bmgd/workflows/gametest/test-framework/checklist.md +103 -0
- package/src/modules/bmgd/workflows/gametest/test-framework/instructions.md +348 -0
- package/src/modules/bmgd/workflows/gametest/test-framework/workflow.yaml +48 -0
- package/src/modules/bmgd/workflows/gametest/test-review/checklist.md +87 -0
- package/src/modules/bmgd/workflows/gametest/test-review/instructions.md +272 -0
- package/src/modules/bmgd/workflows/gametest/test-review/test-review-template.md +203 -0
- package/src/modules/bmgd/workflows/gametest/test-review/workflow.yaml +48 -0
- package/src/modules/bmgd/workflows/workflow-status/init/instructions.md +299 -0
- package/src/modules/bmgd/workflows/workflow-status/init/workflow.yaml +29 -0
- package/src/modules/bmgd/workflows/workflow-status/instructions.md +395 -0
- package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-brownfield.yaml +65 -0
- package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-greenfield.yaml +71 -0
- package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml +29 -0
- package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-greenfield.yaml +39 -0
- package/src/modules/bmgd/workflows/workflow-status/project-levels.yaml +63 -0
- package/src/modules/bmgd/workflows/workflow-status/workflow-status-template.yaml +24 -0
- package/src/modules/bmgd/workflows/workflow-status/workflow.yaml +30 -0
- package/tools/cli/commands/install.js +9 -0
- package/tools/cli/installers/lib/core/installer.js +109 -109
- package/tools/cli/installers/lib/core/installer.js.bak +3204 -0
- package/tools/cli/installers/lib/modules/manager.js +16 -4
- package/tools/cli/lib/agent/compiler.js +99 -0
- package/tools/cli/lib/ui.js +78 -27
- package/src/modules/bmgd/workflows/2-design/gdd/instructions-gdd.md +0 -502
- package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +0 -398
- package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +0 -256
- package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +0 -267
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +0 -17
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +0 -164
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/template.md +0 -76
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +0 -58
- package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +0 -16
- package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +0 -34
- package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +0 -209
- package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +0 -63
- package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +0 -111
- package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +0 -28
- package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +0 -117
- package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +0 -25
- /package/src/modules/bmgd/workflows/1-preproduction/game-brief/{template.md → templates/game-brief-template.md} +0 -0
- /package/src/modules/bmgd/workflows/2-design/gdd/{gdd-template.md → templates/gdd-template.md} +0 -0
- /package/src/modules/bmgd/workflows/2-design/narrative/{narrative-template.md → templates/narrative-template.md} +0 -0
- /package/src/modules/bmgd/workflows/3-technical/game-architecture/{architecture-template.md → templates/architecture-template.md} +0 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
<!-- Powered by BMAD-CORE™ -->
|
|
2
|
+
|
|
3
|
+
# Test Review
|
|
4
|
+
|
|
5
|
+
**Workflow ID**: `_bmad/bmgd/gametest/test-review`
|
|
6
|
+
**Version**: 1.0 (BMad v6)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Review existing test suite quality, identify coverage gaps, and recommend improvements. Regular test review prevents test rot and maintains test value over time.
|
|
13
|
+
|
|
14
|
+
**Knowledge Base Reference**: `knowledge/regression-testing.md`, `knowledge/test-priorities.md`
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Preflight Requirements
|
|
19
|
+
|
|
20
|
+
- ✅ Test suite exists (some tests to review)
|
|
21
|
+
- ✅ Access to test execution results
|
|
22
|
+
- ✅ Understanding of game features
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Step 1: Gather Test Suite Metrics
|
|
27
|
+
|
|
28
|
+
### Actions
|
|
29
|
+
|
|
30
|
+
1. **Count Tests by Type**
|
|
31
|
+
|
|
32
|
+
| Type | Count | Pass Rate | Avg Duration |
|
|
33
|
+
| -------------------- | ----- | --------- | ------------ |
|
|
34
|
+
| Unit | | | |
|
|
35
|
+
| Integration | | | |
|
|
36
|
+
| Play Mode/Functional | | | |
|
|
37
|
+
| Performance | | | |
|
|
38
|
+
| **Total** | | | |
|
|
39
|
+
|
|
40
|
+
2. **Analyze Test Results**
|
|
41
|
+
- Recent pass rate (last 10 runs)
|
|
42
|
+
- Flaky tests (inconsistent results)
|
|
43
|
+
- Slow tests (> 30s individual)
|
|
44
|
+
- Disabled/skipped tests
|
|
45
|
+
|
|
46
|
+
3. **Map Coverage**
|
|
47
|
+
- Features with tests
|
|
48
|
+
- Features without tests
|
|
49
|
+
- Critical paths covered
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Step 2: Assess Test Quality
|
|
54
|
+
|
|
55
|
+
### Quality Criteria
|
|
56
|
+
|
|
57
|
+
For each test, evaluate:
|
|
58
|
+
|
|
59
|
+
| Criterion | Good | Bad |
|
|
60
|
+
| ----------------- | -------------------------------- | ---------------------------- |
|
|
61
|
+
| **Deterministic** | Same input = same result | Flaky, timing-dependent |
|
|
62
|
+
| **Isolated** | No shared state | Tests affect each other |
|
|
63
|
+
| **Fast** | < 5s (unit), < 30s (integration) | Minutes per test |
|
|
64
|
+
| **Readable** | Clear intent, good names | Cryptic, no comments |
|
|
65
|
+
| **Maintained** | Up-to-date, passing | Disabled, stale |
|
|
66
|
+
| **Valuable** | Tests real behavior | Tests implementation details |
|
|
67
|
+
|
|
68
|
+
### Anti-Pattern Detection
|
|
69
|
+
|
|
70
|
+
Look for these common issues:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
❌ Hard-coded waits
|
|
74
|
+
await Task.Delay(5000); // Bad
|
|
75
|
+
await WaitUntil(() => condition); // Good
|
|
76
|
+
|
|
77
|
+
❌ Shared test state
|
|
78
|
+
static bool wasSetup; // Dangerous
|
|
79
|
+
[SetUp] void Setup() { /* fresh state */ } // Good
|
|
80
|
+
|
|
81
|
+
❌ Testing private implementation
|
|
82
|
+
var result = obj.GetPrivateField(); // Bad
|
|
83
|
+
var result = obj.PublicBehavior(); // Good
|
|
84
|
+
|
|
85
|
+
❌ Missing cleanup
|
|
86
|
+
var go = Instantiate(prefab); // Leaks
|
|
87
|
+
var go = Instantiate(prefab);
|
|
88
|
+
AddCleanup(() => Destroy(go)); // Good
|
|
89
|
+
|
|
90
|
+
❌ Assertion-free tests
|
|
91
|
+
void Test() { DoSomething(); } // What does it test?
|
|
92
|
+
void Test() { DoSomething(); Assert.That(...); } // Clear
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Step 3: Identify Coverage Gaps
|
|
98
|
+
|
|
99
|
+
### Critical Areas to Verify
|
|
100
|
+
|
|
101
|
+
| Area | P0 Coverage | P1 Coverage | Gap? |
|
|
102
|
+
| ------------- | ----------- | ----------- | ---- |
|
|
103
|
+
| Core Loop | | | |
|
|
104
|
+
| Save/Load | | | |
|
|
105
|
+
| Progression | | | |
|
|
106
|
+
| Combat | | | |
|
|
107
|
+
| UI/Menus | | | |
|
|
108
|
+
| Multiplayer | | | |
|
|
109
|
+
| Platform Cert | | | |
|
|
110
|
+
|
|
111
|
+
### Gap Identification Process
|
|
112
|
+
|
|
113
|
+
1. List all game features
|
|
114
|
+
2. Check if each feature has tests
|
|
115
|
+
3. Assess test depth (happy path only vs edge cases)
|
|
116
|
+
4. Prioritize gaps by risk
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Step 4: Review Test Infrastructure
|
|
121
|
+
|
|
122
|
+
### Framework Health
|
|
123
|
+
|
|
124
|
+
- [ ] Tests run in CI
|
|
125
|
+
- [ ] Results are visible to team
|
|
126
|
+
- [ ] Failures block deployments
|
|
127
|
+
- [ ] Test data is versioned
|
|
128
|
+
- [ ] Fixtures are reusable
|
|
129
|
+
- [ ] Helpers reduce duplication
|
|
130
|
+
|
|
131
|
+
### Maintenance Burden
|
|
132
|
+
|
|
133
|
+
- How often do tests need updates?
|
|
134
|
+
- Are updates proportional to code changes?
|
|
135
|
+
- Do refactors break tests unnecessarily?
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Step 5: Generate Recommendations
|
|
140
|
+
|
|
141
|
+
### Priority Matrix
|
|
142
|
+
|
|
143
|
+
| Finding | Severity | Effort | Recommendation |
|
|
144
|
+
| --------- | -------------- | -------------- | -------------- |
|
|
145
|
+
| {finding} | {High/Med/Low} | {High/Med/Low} | {action} |
|
|
146
|
+
|
|
147
|
+
### Common Recommendations
|
|
148
|
+
|
|
149
|
+
**For Flaky Tests**:
|
|
150
|
+
|
|
151
|
+
- Replace `Thread.Sleep` with explicit waits
|
|
152
|
+
- Add proper synchronization
|
|
153
|
+
- Isolate test state
|
|
154
|
+
|
|
155
|
+
**For Slow Tests**:
|
|
156
|
+
|
|
157
|
+
- Move to nightly builds
|
|
158
|
+
- Optimize test setup
|
|
159
|
+
- Mock expensive dependencies
|
|
160
|
+
|
|
161
|
+
**For Coverage Gaps**:
|
|
162
|
+
|
|
163
|
+
- Prioritize P0/P1 features
|
|
164
|
+
- Add smoke tests first
|
|
165
|
+
- Use test-design workflow
|
|
166
|
+
|
|
167
|
+
**For Maintenance Issues**:
|
|
168
|
+
|
|
169
|
+
- Refactor common patterns
|
|
170
|
+
- Create test utilities
|
|
171
|
+
- Improve documentation
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Step 6: Generate Test Review Report
|
|
176
|
+
|
|
177
|
+
### Report Structure
|
|
178
|
+
|
|
179
|
+
```markdown
|
|
180
|
+
# Test Review Report: {Project Name}
|
|
181
|
+
|
|
182
|
+
## Executive Summary
|
|
183
|
+
|
|
184
|
+
- Overall health: {Good/Needs Work/Critical}
|
|
185
|
+
- Key findings: {3-5 bullet points}
|
|
186
|
+
- Recommended actions: {prioritized list}
|
|
187
|
+
|
|
188
|
+
## Metrics
|
|
189
|
+
|
|
190
|
+
### Test Suite Statistics
|
|
191
|
+
|
|
192
|
+
[Tables from Step 1]
|
|
193
|
+
|
|
194
|
+
### Recent History
|
|
195
|
+
|
|
196
|
+
[Pass rates, trends]
|
|
197
|
+
|
|
198
|
+
## Quality Assessment
|
|
199
|
+
|
|
200
|
+
### Strengths
|
|
201
|
+
|
|
202
|
+
- {What's working well}
|
|
203
|
+
|
|
204
|
+
### Issues Found
|
|
205
|
+
|
|
206
|
+
| Issue | Severity | Tests Affected | Fix |
|
|
207
|
+
| ----- | -------- | -------------- | --- |
|
|
208
|
+
| | | | |
|
|
209
|
+
|
|
210
|
+
## Coverage Analysis
|
|
211
|
+
|
|
212
|
+
### Current Coverage
|
|
213
|
+
|
|
214
|
+
[Feature coverage table]
|
|
215
|
+
|
|
216
|
+
### Critical Gaps
|
|
217
|
+
|
|
218
|
+
[Prioritized list of missing coverage]
|
|
219
|
+
|
|
220
|
+
## Recommendations
|
|
221
|
+
|
|
222
|
+
### Immediate (This Sprint)
|
|
223
|
+
|
|
224
|
+
1. {Fix critical issues}
|
|
225
|
+
|
|
226
|
+
### Short-term (This Milestone)
|
|
227
|
+
|
|
228
|
+
1. {Address major gaps}
|
|
229
|
+
|
|
230
|
+
### Long-term (Ongoing)
|
|
231
|
+
|
|
232
|
+
1. {Improve infrastructure}
|
|
233
|
+
|
|
234
|
+
## Appendix
|
|
235
|
+
|
|
236
|
+
### Flaky Tests
|
|
237
|
+
|
|
238
|
+
[List with failure patterns]
|
|
239
|
+
|
|
240
|
+
### Slow Tests
|
|
241
|
+
|
|
242
|
+
[List with durations]
|
|
243
|
+
|
|
244
|
+
### Disabled Tests
|
|
245
|
+
|
|
246
|
+
[List with reasons]
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## Review Frequency
|
|
252
|
+
|
|
253
|
+
| Review Type | Frequency | Scope | Owner |
|
|
254
|
+
| ----------- | --------- | ------------------------ | --------- |
|
|
255
|
+
| Quick Check | Weekly | Pass rates, flaky tests | QA |
|
|
256
|
+
| Full Review | Monthly | Coverage, quality | Tech Lead |
|
|
257
|
+
| Deep Dive | Quarterly | Infrastructure, strategy | Team |
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Deliverables
|
|
262
|
+
|
|
263
|
+
1. **Test Review Report** - Comprehensive analysis
|
|
264
|
+
2. **Action Items** - Prioritized improvements
|
|
265
|
+
3. **Coverage Matrix** - Visual gap identification
|
|
266
|
+
4. **Technical Debt List** - Tests needing refactor
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
## Validation
|
|
271
|
+
|
|
272
|
+
Refer to `checklist.md` for validation criteria.
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Test Review Report: {PROJECT_NAME}
|
|
2
|
+
|
|
3
|
+
**Review Date**: {DATE}
|
|
4
|
+
**Reviewer**: {REVIEWER}
|
|
5
|
+
**Period Covered**: {START_DATE} to {END_DATE}
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Executive Summary
|
|
10
|
+
|
|
11
|
+
### Overall Health: {Good | Needs Work | Critical}
|
|
12
|
+
|
|
13
|
+
### Key Findings
|
|
14
|
+
|
|
15
|
+
1. {Finding 1}
|
|
16
|
+
2. {Finding 2}
|
|
17
|
+
3. {Finding 3}
|
|
18
|
+
|
|
19
|
+
### Recommended Actions
|
|
20
|
+
|
|
21
|
+
1. {High priority action}
|
|
22
|
+
2. {Medium priority action}
|
|
23
|
+
3. {Ongoing improvement}
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Test Suite Metrics
|
|
28
|
+
|
|
29
|
+
### Test Distribution
|
|
30
|
+
|
|
31
|
+
| Type | Count | % of Total |
|
|
32
|
+
| -------------------- | ----- | ---------- |
|
|
33
|
+
| Unit Tests | | |
|
|
34
|
+
| Integration Tests | | |
|
|
35
|
+
| Play Mode/Functional | | |
|
|
36
|
+
| Performance Tests | | |
|
|
37
|
+
| **Total** | | 100% |
|
|
38
|
+
|
|
39
|
+
### Execution Metrics
|
|
40
|
+
|
|
41
|
+
| Metric | Current | Previous | Trend |
|
|
42
|
+
| -------------- | ------- | -------- | ----- |
|
|
43
|
+
| Pass Rate | | | {↑↓→} |
|
|
44
|
+
| Avg Duration | | | {↑↓→} |
|
|
45
|
+
| Flaky Tests | | | {↑↓→} |
|
|
46
|
+
| Disabled Tests | | | {↑↓→} |
|
|
47
|
+
|
|
48
|
+
### Recent Run History
|
|
49
|
+
|
|
50
|
+
| Date | Passed | Failed | Skipped | Duration |
|
|
51
|
+
| ---- | ------ | ------ | ------- | -------- |
|
|
52
|
+
| | | | | |
|
|
53
|
+
| | | | | |
|
|
54
|
+
| | | | | |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Quality Assessment
|
|
59
|
+
|
|
60
|
+
### Strengths
|
|
61
|
+
|
|
62
|
+
- {What the test suite does well}
|
|
63
|
+
- {Good patterns observed}
|
|
64
|
+
- {Areas of strong coverage}
|
|
65
|
+
|
|
66
|
+
### Issues Found
|
|
67
|
+
|
|
68
|
+
| Issue | Severity | Count | Example | Recommended Fix |
|
|
69
|
+
| ------------------ | -------- | ----- | ------- | --------------- |
|
|
70
|
+
| Flaky tests | High | | | |
|
|
71
|
+
| Slow tests | Medium | | | |
|
|
72
|
+
| Missing cleanup | Medium | | | |
|
|
73
|
+
| Hard-coded waits | Low | | | |
|
|
74
|
+
| Unclear assertions | Low | | | |
|
|
75
|
+
|
|
76
|
+
### Anti-Patterns Detected
|
|
77
|
+
|
|
78
|
+
| Pattern | Occurrences | Impact | Fix Effort |
|
|
79
|
+
| --------- | ----------- | ------ | ---------- |
|
|
80
|
+
| {pattern} | | | |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Coverage Analysis
|
|
85
|
+
|
|
86
|
+
### Feature Coverage Matrix
|
|
87
|
+
|
|
88
|
+
| Feature | P0 Tests | P1 Tests | P2 Tests | Gap? |
|
|
89
|
+
| ------------- | -------- | -------- | -------- | ---- |
|
|
90
|
+
| Core Loop | | | | |
|
|
91
|
+
| Combat/Action | | | | |
|
|
92
|
+
| Movement | | | | |
|
|
93
|
+
| UI/Menus | | | | |
|
|
94
|
+
| Save/Load | | | | |
|
|
95
|
+
| Progression | | | | |
|
|
96
|
+
| Multiplayer | | | | |
|
|
97
|
+
| Audio | | | | |
|
|
98
|
+
| Platform | | | | |
|
|
99
|
+
|
|
100
|
+
### Critical Gaps
|
|
101
|
+
|
|
102
|
+
| Gap | Risk | Impact | Priority to Fix |
|
|
103
|
+
| ----------------------- | ------------ | ----------- | --------------- |
|
|
104
|
+
| {feature without tests} | {risk level} | {if breaks} | P{0-3} |
|
|
105
|
+
|
|
106
|
+
### Coverage by Priority
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
P0 Coverage: {X}% ████████░░
|
|
110
|
+
P1 Coverage: {X}% ██████░░░░
|
|
111
|
+
P2 Coverage: {X}% ████░░░░░░
|
|
112
|
+
P3 Coverage: {X}% ██░░░░░░░░
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Infrastructure Review
|
|
118
|
+
|
|
119
|
+
### CI/CD Integration
|
|
120
|
+
|
|
121
|
+
| Aspect | Status | Notes |
|
|
122
|
+
| ----------------- | ------- | ----- |
|
|
123
|
+
| Tests in CI | {✅/❌} | |
|
|
124
|
+
| Results visible | {✅/❌} | |
|
|
125
|
+
| Failures block | {✅/❌} | |
|
|
126
|
+
| Nightly runs | {✅/❌} | |
|
|
127
|
+
| Performance tests | {✅/❌} | |
|
|
128
|
+
|
|
129
|
+
### Test Infrastructure Quality
|
|
130
|
+
|
|
131
|
+
| Component | Quality | Notes |
|
|
132
|
+
| -------------- | ---------------- | ----- |
|
|
133
|
+
| Fixtures | {Good/Fair/Poor} | |
|
|
134
|
+
| Helpers | {Good/Fair/Poor} | |
|
|
135
|
+
| Data factories | {Good/Fair/Poor} | |
|
|
136
|
+
| Documentation | {Good/Fair/Poor} | |
|
|
137
|
+
|
|
138
|
+
### Maintenance Burden
|
|
139
|
+
|
|
140
|
+
- Test update frequency: {high/medium/low}
|
|
141
|
+
- Brittleness score: {high/medium/low}
|
|
142
|
+
- Developer friction: {high/medium/low}
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Recommendations
|
|
147
|
+
|
|
148
|
+
### Immediate (This Sprint)
|
|
149
|
+
|
|
150
|
+
| Action | Effort | Impact | Owner |
|
|
151
|
+
| ------------------------- | ------- | ------ | ----- |
|
|
152
|
+
| {fix critical flaky test} | {hours} | High | |
|
|
153
|
+
| {add P0 test for X} | {hours} | High | |
|
|
154
|
+
|
|
155
|
+
### Short-term (This Milestone)
|
|
156
|
+
|
|
157
|
+
| Action | Effort | Impact | Owner |
|
|
158
|
+
| ----------------------------- | ------ | ------ | ----- |
|
|
159
|
+
| {refactor slow tests} | {days} | Medium | |
|
|
160
|
+
| {add integration tests for Y} | {days} | Medium | |
|
|
161
|
+
|
|
162
|
+
### Long-term (Ongoing)
|
|
163
|
+
|
|
164
|
+
| Action | Effort | Impact | Notes |
|
|
165
|
+
| ----------------------------- | ------- | ------ | ----- |
|
|
166
|
+
| {improve test infrastructure} | {weeks} | High | |
|
|
167
|
+
| {expand coverage to Z} | {weeks} | Medium | |
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Appendices
|
|
172
|
+
|
|
173
|
+
### Appendix A: Flaky Tests
|
|
174
|
+
|
|
175
|
+
| Test Name | Failure Rate | Failure Pattern | Fix Priority |
|
|
176
|
+
| --------- | ------------ | --------------- | ------------ |
|
|
177
|
+
| | | | |
|
|
178
|
+
|
|
179
|
+
### Appendix B: Slow Tests
|
|
180
|
+
|
|
181
|
+
| Test Name | Duration | Type | Action |
|
|
182
|
+
| --------- | -------- | ---- | -------------------------- |
|
|
183
|
+
| | | | {optimize/move to nightly} |
|
|
184
|
+
|
|
185
|
+
### Appendix C: Disabled Tests
|
|
186
|
+
|
|
187
|
+
| Test Name | Disabled Since | Reason | Action |
|
|
188
|
+
| --------- | -------------- | ------ | ------------ |
|
|
189
|
+
| | | | {fix/delete} |
|
|
190
|
+
|
|
191
|
+
### Appendix D: Technical Debt
|
|
192
|
+
|
|
193
|
+
| Item | Description | Effort | Priority |
|
|
194
|
+
| ---- | ----------- | ------ | -------- |
|
|
195
|
+
| | | | |
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Next Review
|
|
200
|
+
|
|
201
|
+
**Scheduled**: {DATE}
|
|
202
|
+
**Focus Areas**: {areas to pay attention to}
|
|
203
|
+
**Success Criteria**: {what would make next review "green"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Game QA workflow: test-review
|
|
2
|
+
name: gametest-test-review
|
|
3
|
+
description: "Review test quality, coverage, and identify gaps in game testing"
|
|
4
|
+
author: "BMad"
|
|
5
|
+
|
|
6
|
+
# Critical variables from config
|
|
7
|
+
config_source: "{project-root}/_bmad/bmgd/config.yaml"
|
|
8
|
+
output_folder: "{config_source}:output_folder"
|
|
9
|
+
user_name: "{config_source}:user_name"
|
|
10
|
+
communication_language: "{config_source}:communication_language"
|
|
11
|
+
document_output_language: "{config_source}:document_output_language"
|
|
12
|
+
date: system-generated
|
|
13
|
+
|
|
14
|
+
# Workflow components
|
|
15
|
+
installed_path: "{project-root}/_bmad/bmgd/workflows/gametest/test-review"
|
|
16
|
+
instructions: "{installed_path}/instructions.md"
|
|
17
|
+
validation: "{installed_path}/checklist.md"
|
|
18
|
+
template: "{installed_path}/test-review-template.md"
|
|
19
|
+
|
|
20
|
+
# Variables and inputs
|
|
21
|
+
variables:
|
|
22
|
+
review_scope: "full" # full, targeted, quick
|
|
23
|
+
game_engine: "auto" # auto, unity, unreal, godot
|
|
24
|
+
|
|
25
|
+
# Output configuration
|
|
26
|
+
default_output_file: "{output_folder}/test-review-report.md"
|
|
27
|
+
|
|
28
|
+
# Required tools
|
|
29
|
+
required_tools:
|
|
30
|
+
- read_file
|
|
31
|
+
- write_file
|
|
32
|
+
- list_files
|
|
33
|
+
- search_repo
|
|
34
|
+
- glob
|
|
35
|
+
|
|
36
|
+
tags:
|
|
37
|
+
- qa
|
|
38
|
+
- review
|
|
39
|
+
- coverage
|
|
40
|
+
- quality
|
|
41
|
+
- maintenance
|
|
42
|
+
|
|
43
|
+
execution_hints:
|
|
44
|
+
interactive: false
|
|
45
|
+
autonomous: true
|
|
46
|
+
iterative: true
|
|
47
|
+
|
|
48
|
+
web_bundle: false
|