We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
TDD & generative AI - a perfect pairing? by Bouke Nijhuis
Learn how TDD practices pair with AI code generation, explore the key challenges, and discover practical workflows for combining automated tests with AI-assisted development.
-
TDD and generative AI make an effective pairing - tests serve as clear specifications for AI to generate implementations
-
Two key purposes of tests in AI-assisted development:
- Input/specifications for the AI to generate code
- Validation that AI-generated code works correctly
-
Local LLMs vs Cloud LLMs:
- Local models are faster but less capable
- Cloud models produce better results but cost money
- Cloud models don’t have context of local codebase/dependencies
-
Main challenges when using AI code generation:
- Sometimes produces partial/non-compiling code
- Struggles with less common dependencies and frameworks
- May get stuck or need multiple attempts
- Requires automation to be practical
-
The test-driven generation workflow:
- Human writes tests first
- AI generates implementation
- Run tests to validate
- If tests fail, feed errors back to AI and retry
- Maximum of 5 retries per implementation attempt
-
Benefits of this approach:
- Tests prevent biased implementations
- Forces thorough thinking about requirements upfront
- Provides clear validation of AI output
- Works well with pair programming practices
- Can save significant development time when successful
-
Recommendations for implementation:
- Add clear test messages/documentation
- Start with simple cases before complex ones
- Provide adequate context to the AI
- Be prepared to retry with different prompts/models
- Automate the feedback loop between tests and AI
-
Future potential improvements:
- IDE plugin integration
- Support for more testing frameworks
- Better handling of dependencies
- Support for multiple test files
- Improved context sharing with AI models