--- tags: - software-design - software-engineering - tdd --- Classic TDD: 1. Write a failing test for public API (red) 2. Change implementation to make it pass (green) 3. Refactor 4. Go to step 1 Benefits: - Small increments - When adding features we can spot regressions quickly due to having numerous tests - Aggressive refactoring possible due to public API being tested - Complete regression test suite