7.8 KiB
7.8 KiB
TDD Quality Gates Template
Quality gate criteria and checkpoints for Test-Driven Development workflows.
Gate Structure
Each TDD phase has specific quality gates that must be met before progression to the next phase.
Red Phase Gates
Prerequisites for Red Phase Entry
- Story has clear acceptance criteria
- Test runner detected or configured
- Story status is 'ready' or 'inprogress'
- TDD enabled in core-config.yaml
Red Phase Completion Gates
PASS Criteria:
- At least one test written and failing
- Tests fail for correct reasons (missing implementation, not syntax errors)
- All external dependencies properly mocked
- Test data is deterministic (no random values, current time)
- Test names clearly describe expected behavior
- Story TDD metadata updated (status='red', test list populated)
- Test files follow project naming conventions
FAIL Criteria:
- No tests written
- Tests pass unexpectedly (implementation may already exist)
- Tests fail due to syntax errors or configuration issues
- External dependencies not mocked (network calls, file system, etc.)
- Non-deterministic tests (random data, time-dependent)
Gate Decision:
red_phase_gate:
status: PASS|FAIL
failing_tests_count: { number }
tests_fail_correctly: true|false
mocking_complete: true|false
deterministic_tests: true|false
metadata_updated: true|false
ready_for_green_phase: true|false
Green Phase Gates
Prerequisites for Green Phase Entry
- Red phase gate passed
- Story tdd.status = 'red'
- Failing tests exist and documented
- Test runner confirmed working
Green Phase Completion Gates
PASS Criteria:
- All previously failing tests now pass
- No new tests added during implementation
- Implementation is minimal (only what's needed for tests)
- No feature creep beyond test requirements
- All existing tests remain green (no regressions)
- Code follows basic quality standards
- Story TDD metadata updated (status='green')
CONCERNS Criteria:
- Implementation seems overly complex for test requirements
- Additional functionality added without corresponding tests
- Code quality significantly below project standards
- Performance implications not addressed
FAIL Criteria:
- Tests still failing after implementation attempt
- New regressions introduced (previously passing tests now fail)
- Implementation missing for some failing tests
- Significant feature creep detected
Gate Decision:
green_phase_gate:
status: PASS|CONCERNS|FAIL
all_tests_passing: true|false
no_regressions: true|false
minimal_implementation: true|false
feature_creep_detected: false|true
code_quality_acceptable: true|false
ready_for_refactor_phase: true|false
Refactor Phase Gates
Prerequisites for Refactor Phase Entry
- Green phase gate passed
- Story tdd.status = 'green'
- All tests consistently passing
- Code quality issues identified
Refactor Phase Completion Gates
PASS Criteria:
- All tests remain green throughout refactoring
- Code quality measurably improved
- No behavior changes introduced
- Refactoring changes committed incrementally
- Technical debt reduced in story scope
- Story TDD metadata updated (status='refactor' or 'done')
CONCERNS Criteria:
- Some code smells remain unaddressed
- Refactoring introduced minor complexity
- Test execution time increased significantly
- Marginal quality improvements
FAIL Criteria:
- Tests broken by refactoring changes
- Behavior changed during refactoring
- Code quality degraded
- Large, risky refactoring attempts
Gate Decision:
refactor_phase_gate:
status: PASS|CONCERNS|FAIL
tests_remain_green: true|false
code_quality_improved: true|false
behavior_preserved: true|false
technical_debt_reduced: true|false
safe_incremental_changes: true|false
ready_for_completion: true|false
Story Completion Gates
TDD Story Completion Criteria
Must Have:
- All TDD phases completed (Red → Green → Refactor)
- Final test suite passes consistently
- Code quality meets project standards
- All acceptance criteria covered by tests
- TDD-specific DoD checklist completed
Quality Metrics:
- Test coverage meets story target
- No obvious code smells remain
- Test execution time reasonable (< 2x baseline)
- All TDD artifacts documented in story
Documentation:
- TDD cycle progression tracked in story
- Test-to-requirement traceability clear
- Refactoring decisions documented
- Lessons learned captured
Gate Failure Recovery
Red Phase Recovery
red_phase_failures:
no_failing_tests:
action: 'Review acceptance criteria, create simpler test cases'
escalation: 'Consult SM for requirement clarification'
tests_pass_unexpectedly:
action: 'Check if implementation already exists, adjust test scope'
escalation: 'Review story scope with PO'
mocking_issues:
action: 'Review external dependencies, implement proper mocks'
escalation: 'Consult with Dev agent on architecture'
Green Phase Recovery
green_phase_failures:
tests_still_failing:
action: 'Break down implementation into smaller steps'
escalation: 'Review test expectations vs implementation approach'
regressions_introduced:
action: 'Revert changes, identify conflicting logic'
escalation: 'Architectural review with team'
feature_creep_detected:
action: 'Remove features not covered by tests'
escalation: 'Return to Red phase for additional tests'
Refactor Phase Recovery
refactor_phase_failures:
tests_broken:
action: 'Immediately revert breaking changes'
escalation: 'Use smaller refactoring steps'
behavior_changed:
action: 'Revert and analyze where behavior diverged'
escalation: 'Review refactoring approach with QA agent'
quality_degraded:
action: 'Revert changes, try different refactoring technique'
escalation: 'Accept current code quality, document technical debt'
Quality Metrics Dashboard
Per-Phase Metrics
metrics_tracking:
red_phase:
- failing_tests_count
- test_creation_time
- mocking_complexity
green_phase:
- implementation_time
- lines_of_code_added
- test_pass_rate
refactor_phase:
- code_quality_delta
- test_execution_time_delta
- refactoring_safety_score
Story-Level Metrics
story_metrics:
total_tdd_cycle_time: '{hours}'
cycles_completed: '{count}'
test_to_code_ratio: '{percentage}'
coverage_achieved: '{percentage}'
quality_improvement_score: '{0-100}'
Integration with Standard Gates
How TDD Gates Extend Standard QA Gates
- Standard gates still apply for final story review
- TDD gates are additional checkpoints during development
- Phase-specific criteria supplement overall quality assessment
- Traceability maintained between TDD progress and story completion
Gate Reporting
gate_report_template:
story_id: '{epic}.{story}'
tdd_enabled: true
phases_completed: ['red', 'green', 'refactor']
phase_gates:
red:
status: 'PASS'
completed_date: '2025-01-01T10:00:00Z'
criteria_met: 6/6
green:
status: 'PASS'
completed_date: '2025-01-01T14:00:00Z'
criteria_met: 7/7
refactor:
status: 'PASS'
completed_date: '2025-01-01T16:00:00Z'
criteria_met: 6/6
final_assessment:
overall_gate: 'PASS'
quality_score: 92
recommendations: []
This template ensures consistent quality standards across all TDD phases while maintaining compatibility with existing BMAD quality gates.