TDD Guide - Test Driven Development for Engineering Teams
A comprehensive Test Driven Development skill that provides intelligent test generation, coverage analysis, framework integration, and TDD workflow guidance across multiple languages and testing frameworks.
Capabilities
Test Generation
- Generate Test Cases from Requirements: Convert user stories, API specs, and business requirements into executable test cases
- Create Test Stubs: Generate test function scaffolding with proper naming, imports, and setup/teardown
- Generate Test Fixtures: Create realistic test data, mocks, and fixtures for various scenarios
TDD Workflow Support
- Guide Red-Green-Refactor: Step-by-step guidance through TDD cycles with validation
- Suggest Missing Scenarios: Identify untested edge cases, error conditions, and boundary scenarios
- Review Test Quality: Analyze test isolation, assertions quality, naming conventions, and maintainability
Coverage & Metrics Analysis
- Calculate Coverage: Parse LCOV, JSON, and XML coverage reports for line/branch/function coverage
- Identify Untested Paths: Find code paths, branches, and error handlers without test coverage
- Recommend Improvements: Prioritized recommendations (P0/P1/P2) for coverage gaps and test quality
Framework Integration
- Multi-Framework Support: Jest, Pytest, JUnit, Vitest, Mocha, RSpec adapters
- Generate Boilerplate: Create test files with proper imports, describe blocks, and best practices
- Configure Test Runners: Set up test configuration, coverage tools, and CI integration
Comprehensive Metrics
- Test Coverage: Line, branch, function coverage with gap analysis
- Code Complexity: Cyclomatic complexity, cognitive complexity, testability scoring
- Test Quality: Assertions per test, isolation score, naming quality, test smell detection
- Test Data: Boundary value analysis, edge case identification, mock data generation
- Test Execution: Timing analysis, slow test detection, flakiness detection
- Missing Tests: Uncovered edge cases, error handling gaps, missing integration scenarios
Input Requirements
The skill supports automatic format detection for flexible input:
Source Code
- Languages: TypeScript, JavaScript, Python, Java
- Format: Direct file paths or copy-pasted code blocks
- Detection: Automatic language/framework detection from syntax and imports
Test Artifacts
- Coverage Reports: LCOV (.lcov), JSON (coverage-final.json), XML (cobertura.xml)
- Test Results: JUnit XML, Jest JSON, Pytest JSON, TAP format
- Format: File paths or raw coverage data
Requirements (Optional)
- User Stories: Text descriptions of functionality
- API Specifications: OpenAPI/Swagger, REST endpoints, GraphQL schemas
- Business Requirements: Acceptance criteria, business rules
Input Methods
- Option A: Provide file paths (skill will read files)
- Option B: Copy-paste code/data directly
- Option C: Mix of both (automatically detected)
Output Formats
The skill provides context-aware output optimized for your environment:
Code Files
- Test Files: Generated tests (Jest/Pytest/JUnit/Vitest) with proper structure
- Fixtures: Test data files, mock objects, factory functions
- Mocks: Mock implementations, stub functions, test doubles
Reports
- Markdown: Rich coverage reports, recommendations, quality analysis (Claude Desktop)
- JSON: Machine-readable metrics, structured data for CI/CD integration
- Terminal-Friendly: Simplified output for Claude Code CLI
Smart Defaults
- Desktop/Apps: Rich markdown with tables, code blocks, visual hierarchy
- CLI: Concise, terminal-friendly format with clear sections
- CI/CD: JSON output for automated processing
Progressive Disclosure
- Summary First: High-level overview (<200 tokens)
- Details on Demand: Full analysis available (500-1000 tokens)
- Prioritized: P0 (critical) → P1 (important) → P2 (nice-to-have)
How to Use
Basic Usage
@tdd-guide
I need tests for my authentication module. Here's the code:
[paste code or provide file path]
Generate comprehensive test cases covering happy path, error cases, and edge cases.
Coverage Analysis
@tdd-guide
Analyze test coverage for my TypeScript project. Coverage report: coverage/lcov.info
Identify gaps and provide prioritized recommendations.
TDD Workflow
@tdd-guide
Guide me through TDD for implementing a password validation function.
Requirements:
- Min 8 characters
- At least 1 uppercase, 1 lowercase, 1 number, 1 special char
- No common passwords
Multi-Framework Support
@tdd-guide
Convert these Jest tests to Pytest format:
[paste Jest tests]
Scripts
Core Modules
- test_generator.py: Intelligent test case generation from requirements and code
- coverage_analyzer.py: Parse and analyze coverage reports (LCOV, JSON, XML)
- metrics_calculator.py: Calculate comprehensive test and code quality metrics
- framework_adapter.py: Multi-framework adapter (Jest, Pytest, JUnit, Vitest)
- tdd_workflow.py: Red-green-refactor workflow guidance and validation
- fixture_generator.py: Generate realistic test data and fixtures
- format_detector.py: Automatic language and framework detection
Utilities
- complexity_analyzer.py: Cyclomatic and cognitive complexity analysis
- test_quality_scorer.py: Test quality scoring (isolation, assertions, naming)
- missing_test_detector.py: Identify untested paths and missing scenarios
- output_formatter.py: Context-aware output formatting (Desktop vs CLI)
Best Practices
Test Generation
- Start with Requirements: Write tests from user stories before seeing implementation
- Test Behavior, Not Implementation: Focus on what code does, not how it does it
- One Assertion Focus: Each test should verify one specific behavior
- Descriptive Names: Test names should read like specifications
TDD Workflow
- Red: Write failing test first
- Green: Write minimal code to make it pass
- Refactor: Improve code while keeping tests green
- Repeat: Small iterations, frequent commits
Coverage Goals
- Aim for 80%+: Line coverage baseline for most projects
- 100% Critical Paths: Authentication, payments, data validation must be fully covered
- Branch Coverage Matters: Line coverage alone is insufficient
- Don't Game Metrics: Focus on meaningful tests, not coverage numbers
Test Quality
- Independent Tests: Each test should run in isolation
- Fast Execution: Keep unit tests under 100ms each
- Deterministic: Tests should always produce same results
- Clear Failures: Assertion messages should explain what went wrong
Framework Selection
- Jest: JavaScript/TypeScript projects (React, Node.js)
- Pytest: Python projects (Django, Flask, FastAPI)
- JUnit: Java projects (Spring, Android)
- Vitest: Modern Vite-based projects
Multi-Language Support
TypeScript/JavaScript
- Frameworks: Jest, Vitest, Mocha, Jasmine
- Runners: Node.js, Karma, Playwright
- Coverage: Istanbul/nyc, c8
Python
- Frameworks: Pytest, unittest, nose2
- Runners: pytest, tox, nox
- Coverage: coverage.py, pytest-cov
Java
- Frameworks: JUnit 5, TestNG, Mockito
- Runners: Maven Surefire, Gradle Test
- Coverage: JaCoCo, Cobertura
Limitations
Scope
- Unit Tests Focus: Primarily optimized for unit tests (integration tests require different patterns)
- Static Analysis Only: Cannot execute tests or measure actual code behavior
- Language Support: Best support for TypeScript, JavaScript, Python, Java (other languages limited)
Coverage Analysis
- Report Dependency: Requires existing coverage reports (cannot generate coverage from scratch)
- Format Support: LCOV, JSON, XML only (other formats need conversion)
- Interpretation Context: Coverage numbers need human judgment for meaningfulness
Test Generation
- Baseline Quality: Generated tests provide scaffolding, require human review and refinement
- Complex Logic: Advanced business logic and integration scenarios need manual test design
- Mocking Strategy: Mock/stub strategies should align with project patterns
Framework Integration
- Configuration Required: Test runners need proper setup (this skill doesn't modify package.json or pom.xml)
- Version Compatibility: Generated code targets recent stable versions (Jest 29+, Pytest 7+, JUnit 5+)
When NOT to Use This Skill
- E2E Testing: Use dedicated E2E tools (Playwright, Cypress, Selenium)
- Performance Testing: Use JMeter, k6, or Locust
- Security Testing: Use OWASP ZAP, Burp Suite, or security-focused tools
- Manual Testing: Some scenarios require human exploratory testing
Example Workflows
Workflow 1: Generate Tests from Requirements
Input: User story + API specification
Process: Parse requirements → Generate test cases → Create test stubs
Output: Complete test files ready for implementation
Workflow 2: Improve Coverage
Input: Coverage report + source code
Process: Identify gaps → Suggest tests → Generate test code
Output: Prioritized test cases for uncovered code
Workflow 3: TDD New Feature
Input: Feature requirements
Process: Guide red-green-refactor → Validate each step → Suggest refactorings
Output: Well-tested feature with clean code
Workflow 4: Framework Migration
Input: Tests in Framework A
Process: Parse tests → Translate patterns → Generate equivalent tests
Output: Tests in Framework B with same coverage
Integration Points
CI/CD Integration
- Parse coverage reports from CI artifacts
- Generate coverage badges and reports
- Fail builds on coverage thresholds
- Track coverage trends over time
IDE Integration
- Generate tests for selected code
- Run coverage analysis on save
- Highlight untested code paths
- Quick-fix suggestions for test gaps
Code Review
- Validate test coverage in PRs
- Check test quality standards
- Identify missing test scenarios
- Suggest improvements before merge
Version Support
- Node.js: 16+ (Jest 29+, Vitest 0.34+)
- Python: 3.8+ (Pytest 7+)
- Java: 11+ (JUnit 5.9+)
- TypeScript: 4.5+
Related Skills
This skill works well with:
- code-review: Validate test quality during reviews
- refactoring-assistant: Maintain tests during refactoring
- ci-cd-helper: Integrate coverage in pipelines
- documentation-generator: Generate test documentation
1---2name: tdd-guide3description: Comprehensive Test Driven Development guide for engineering subagents with multi-framework support, coverage analysis, and intelligent test generation4---5
6# TDD Guide - Test Driven Development for Engineering Teams
7
8A comprehensive Test Driven Development skill that provides intelligent test generation, coverage analysis, framework integration, and TDD workflow guidance across multiple languages and testing frameworks.
9
10## Capabilities
11
12### Test Generation
13- **Generate Test Cases from Requirements**: Convert user stories, API specs, and business requirements into executable test cases
14- **Create Test Stubs**: Generate test function scaffolding with proper naming, imports, and setup/teardown
15- **Generate Test Fixtures**: Create realistic test data, mocks, and fixtures for various scenarios
16
17### TDD Workflow Support
18- **Guide Red-Green-Refactor**: Step-by-step guidance through TDD cycles with validation
19- **Suggest Missing Scenarios**: Identify untested edge cases, error conditions, and boundary scenarios
20- **Review Test Quality**: Analyze test isolation, assertions quality, naming conventions, and maintainability
21
22### Coverage & Metrics Analysis
23- **Calculate Coverage**: Parse LCOV, JSON, and XML coverage reports for line/branch/function coverage
24- **Identify Untested Paths**: Find code paths, branches, and error handlers without test coverage
25- **Recommend Improvements**: Prioritized recommendations (P0/P1/P2) for coverage gaps and test quality
26
27### Framework Integration
28- **Multi-Framework Support**: Jest, Pytest, JUnit, Vitest, Mocha, RSpec adapters
29- **Generate Boilerplate**: Create test files with proper imports, describe blocks, and best practices
30- **Configure Test Runners**: Set up test configuration, coverage tools, and CI integration
31
32### Comprehensive Metrics
33- **Test Coverage**: Line, branch, function coverage with gap analysis
34- **Code Complexity**: Cyclomatic complexity, cognitive complexity, testability scoring
35- **Test Quality**: Assertions per test, isolation score, naming quality, test smell detection
36- **Test Data**: Boundary value analysis, edge case identification, mock data generation
37- **Test Execution**: Timing analysis, slow test detection, flakiness detection
38- **Missing Tests**: Uncovered edge cases, error handling gaps, missing integration scenarios
39
40## Input Requirements
41
42The skill supports **automatic format detection** for flexible input:
43
44### Source Code
45- **Languages**: TypeScript, JavaScript, Python, Java
46- **Format**: Direct file paths or copy-pasted code blocks
47- **Detection**: Automatic language/framework detection from syntax and imports
48
49### Test Artifacts
50- **Coverage Reports**: LCOV (.lcov), JSON (coverage-final.json), XML (cobertura.xml)
51- **Test Results**: JUnit XML, Jest JSON, Pytest JSON, TAP format
52- **Format**: File paths or raw coverage data
53
54### Requirements (Optional)
55- **User Stories**: Text descriptions of functionality
56- **API Specifications**: OpenAPI/Swagger, REST endpoints, GraphQL schemas
57- **Business Requirements**: Acceptance criteria, business rules
58
59### Input Methods
60- **Option A**: Provide file paths (skill will read files)
61- **Option B**: Copy-paste code/data directly
62- **Option C**: Mix of both (automatically detected)
63
64## Output Formats
65
66The skill provides **context-aware output** optimized for your environment:
67
68### Code Files
69- **Test Files**: Generated tests (Jest/Pytest/JUnit/Vitest) with proper structure
70- **Fixtures**: Test data files, mock objects, factory functions
71- **Mocks**: Mock implementations, stub functions, test doubles
72
73### Reports
74- **Markdown**: Rich coverage reports, recommendations, quality analysis (Claude Desktop)
75- **JSON**: Machine-readable metrics, structured data for CI/CD integration
76- **Terminal-Friendly**: Simplified output for Claude Code CLI
77
78### Smart Defaults
79- **Desktop/Apps**: Rich markdown with tables, code blocks, visual hierarchy
80- **CLI**: Concise, terminal-friendly format with clear sections
81- **CI/CD**: JSON output for automated processing
82
83### Progressive Disclosure
84- **Summary First**: High-level overview (<200 tokens)
85- **Details on Demand**: Full analysis available (500-1000 tokens)
86- **Prioritized**: P0 (critical) → P1 (important) → P2 (nice-to-have)
87
88## How to Use
89
90### Basic Usage
91```
92@tdd-guide
93
94I need tests for my authentication module. Here's the code:
95[paste code or provide file path]
96
97Generate comprehensive test cases covering happy path, error cases, and edge cases.
98```
99
100### Coverage Analysis
101```
102@tdd-guide
103
104Analyze test coverage for my TypeScript project. Coverage report: coverage/lcov.info
105
106Identify gaps and provide prioritized recommendations.
107```
108
109### TDD Workflow
110```
111@tdd-guide
112
113Guide me through TDD for implementing a password validation function.
114
115Requirements:
116- Min 8 characters
117- At least 1 uppercase, 1 lowercase, 1 number, 1 special char
118- No common passwords
119```
120
121### Multi-Framework Support
122```
123@tdd-guide
124
125Convert these Jest tests to Pytest format:
126[paste Jest tests]
127```
128
129## Scripts
130
131### Core Modules
132
133- **test_generator.py**: Intelligent test case generation from requirements and code
134- **coverage_analyzer.py**: Parse and analyze coverage reports (LCOV, JSON, XML)
135- **metrics_calculator.py**: Calculate comprehensive test and code quality metrics
136- **framework_adapter.py**: Multi-framework adapter (Jest, Pytest, JUnit, Vitest)
137- **tdd_workflow.py**: Red-green-refactor workflow guidance and validation
138- **fixture_generator.py**: Generate realistic test data and fixtures
139- **format_detector.py**: Automatic language and framework detection
140
141### Utilities
142
143- **complexity_analyzer.py**: Cyclomatic and cognitive complexity analysis
144- **test_quality_scorer.py**: Test quality scoring (isolation, assertions, naming)
145- **missing_test_detector.py**: Identify untested paths and missing scenarios
146- **output_formatter.py**: Context-aware output formatting (Desktop vs CLI)
147
148## Best Practices
149
150### Test Generation
1511. **Start with Requirements**: Write tests from user stories before seeing implementation
1522. **Test Behavior, Not Implementation**: Focus on what code does, not how it does it
1533. **One Assertion Focus**: Each test should verify one specific behavior
1544. **Descriptive Names**: Test names should read like specifications
155
156### TDD Workflow
1571. **Red**: Write failing test first
1582. **Green**: Write minimal code to make it pass
1593. **Refactor**: Improve code while keeping tests green
1604. **Repeat**: Small iterations, frequent commits
161
162### Coverage Goals
1631. **Aim for 80%+**: Line coverage baseline for most projects
1642. **100% Critical Paths**: Authentication, payments, data validation must be fully covered
1653. **Branch Coverage Matters**: Line coverage alone is insufficient
1664. **Don't Game Metrics**: Focus on meaningful tests, not coverage numbers
167
168### Test Quality
1691. **Independent Tests**: Each test should run in isolation
1702. **Fast Execution**: Keep unit tests under 100ms each
1713. **Deterministic**: Tests should always produce same results
1724. **Clear Failures**: Assertion messages should explain what went wrong
173
174### Framework Selection
1751. **Jest**: JavaScript/TypeScript projects (React, Node.js)
1762. **Pytest**: Python projects (Django, Flask, FastAPI)
1773. **JUnit**: Java projects (Spring, Android)
1784. **Vitest**: Modern Vite-based projects
179
180## Multi-Language Support
181
182### TypeScript/JavaScript
183- Frameworks: Jest, Vitest, Mocha, Jasmine
184- Runners: Node.js, Karma, Playwright
185- Coverage: Istanbul/nyc, c8
186
187### Python
188- Frameworks: Pytest, unittest, nose2
189- Runners: pytest, tox, nox
190- Coverage: coverage.py, pytest-cov
191
192### Java
193- Frameworks: JUnit 5, TestNG, Mockito
194- Runners: Maven Surefire, Gradle Test
195- Coverage: JaCoCo, Cobertura
196
197## Limitations
198
199### Scope
200- **Unit Tests Focus**: Primarily optimized for unit tests (integration tests require different patterns)
201- **Static Analysis Only**: Cannot execute tests or measure actual code behavior
202- **Language Support**: Best support for TypeScript, JavaScript, Python, Java (other languages limited)
203
204### Coverage Analysis
205- **Report Dependency**: Requires existing coverage reports (cannot generate coverage from scratch)
206- **Format Support**: LCOV, JSON, XML only (other formats need conversion)
207- **Interpretation Context**: Coverage numbers need human judgment for meaningfulness
208
209### Test Generation
210- **Baseline Quality**: Generated tests provide scaffolding, require human review and refinement
211- **Complex Logic**: Advanced business logic and integration scenarios need manual test design
212- **Mocking Strategy**: Mock/stub strategies should align with project patterns
213
214### Framework Integration
215- **Configuration Required**: Test runners need proper setup (this skill doesn't modify package.json or pom.xml)
216- **Version Compatibility**: Generated code targets recent stable versions (Jest 29+, Pytest 7+, JUnit 5+)
217
218### When NOT to Use This Skill
219- **E2E Testing**: Use dedicated E2E tools (Playwright, Cypress, Selenium)
220- **Performance Testing**: Use JMeter, k6, or Locust
221- **Security Testing**: Use OWASP ZAP, Burp Suite, or security-focused tools
222- **Manual Testing**: Some scenarios require human exploratory testing
223
224## Example Workflows
225
226### Workflow 1: Generate Tests from Requirements
227```
228Input: User story + API specification
229Process: Parse requirements → Generate test cases → Create test stubs
230Output: Complete test files ready for implementation
231```
232
233### Workflow 2: Improve Coverage
234```
235Input: Coverage report + source code
236Process: Identify gaps → Suggest tests → Generate test code
237Output: Prioritized test cases for uncovered code
238```
239
240### Workflow 3: TDD New Feature
241```
242Input: Feature requirements
243Process: Guide red-green-refactor → Validate each step → Suggest refactorings
244Output: Well-tested feature with clean code
245```
246
247### Workflow 4: Framework Migration
248```
249Input: Tests in Framework A
250Process: Parse tests → Translate patterns → Generate equivalent tests
251Output: Tests in Framework B with same coverage
252```
253
254## Integration Points
255
256### CI/CD Integration
257- Parse coverage reports from CI artifacts
258- Generate coverage badges and reports
259- Fail builds on coverage thresholds
260- Track coverage trends over time
261
262### IDE Integration
263- Generate tests for selected code
264- Run coverage analysis on save
265- Highlight untested code paths
266- Quick-fix suggestions for test gaps
267
268### Code Review
269- Validate test coverage in PRs
270- Check test quality standards
271- Identify missing test scenarios
272- Suggest improvements before merge
273
274## Version Support
275
276- **Node.js**: 16+ (Jest 29+, Vitest 0.34+)
277- **Python**: 3.8+ (Pytest 7+)
278- **Java**: 11+ (JUnit 5.9+)
279- **TypeScript**: 4.5+
280
281## Related Skills
282
283This skill works well with:
284- **code-review**: Validate test quality during reviews
285- **refactoring-assistant**: Maintain tests during refactoring
286- **ci-cd-helper**: Integrate coverage in pipelines
287- **documentation-generator**: Generate test documentation