mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-14 18:57:41 +02:00
6.2 KiB
6.2 KiB
Test Review
Workflow ID: _bmad/bmgd/gametest/test-review
Version: 1.0 (BMad v6)
Overview
Review existing test suite quality, identify coverage gaps, and recommend improvements. Regular test review prevents test rot and maintains test value over time.
Knowledge Base Reference: knowledge/regression-testing.md, knowledge/test-priorities.md
Preflight Requirements
- ✅ Test suite exists (some tests to review)
- ✅ Access to test execution results
- ✅ Understanding of game features
Step 1: Gather Test Suite Metrics
Actions
-
Count Tests by Type
Type Count Pass Rate Avg Duration Unit Integration Play Mode/Functional Performance Total -
Analyze Test Results
- Recent pass rate (last 10 runs)
- Flaky tests (inconsistent results)
- Slow tests (> 30s individual)
- Disabled/skipped tests
-
Map Coverage
- Features with tests
- Features without tests
- Critical paths covered
Step 2: Assess Test Quality
Quality Criteria
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 |
Anti-Pattern Detection
Look for these common issues:
❌ Hard-coded waits
await Task.Delay(5000); // Bad
await WaitUntil(() => condition); // Good
❌ Shared test state
static bool wasSetup; // Dangerous
[SetUp] void Setup() { /* fresh state */ } // 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
Step 3: Identify Coverage Gaps
Critical Areas to Verify
| Area | P0 Coverage | P1 Coverage | Gap? |
|---|---|---|---|
| Core Loop | |||
| Save/Load | |||
| Progression | |||
| Combat | |||
| UI/Menus | |||
| Multiplayer | |||
| Platform Cert |
Gap Identification Process
- List all game features
- Check if each feature has tests
- Assess test depth (happy path only vs edge cases)
- Prioritize gaps by risk
Step 4: Review Test Infrastructure
Framework Health
- Tests run in CI
- Results are visible to team
- Failures block deployments
- Test data is versioned
- Fixtures are reusable
- Helpers reduce duplication
Maintenance Burden
- How often do tests need updates?
- Are updates proportional to code changes?
- Do refactors break tests unnecessarily?
Step 5: Generate Recommendations
Priority Matrix
| Finding | Severity | Effort | Recommendation |
|---|---|---|---|
| {finding} | {High/Med/Low} | {High/Med/Low} | {action} |
Common Recommendations
For Flaky Tests:
- Replace
Thread.Sleepwith explicit waits - Add proper synchronization
- Isolate test state
For Slow Tests:
- Move to nightly builds
- Optimize test setup
- Mock expensive dependencies
For Coverage Gaps:
- Prioritize P0/P1 features
- Add smoke tests first
- Use test-design workflow
For Maintenance Issues:
- Refactor common patterns
- Create test utilities
- Improve documentation
Step 6: Generate Test Review Report
Report 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 Frequency
| 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 |
Deliverables
- Test Review Report - Comprehensive analysis
- Action Items - Prioritized improvements
- Coverage Matrix - Visual gap identification
- Technical Debt List - Tests needing refactor
Validation
Refer to checklist.md for validation criteria.