A long, long time ago, I wrote a 6 part blog series that was a very in-depth explanation of what Test Driven Development is, and how it worked. I've been talking to a few people lately about the basics of TDD, so I thought that bringing these posts back up might be something useful. The big point I've been talking about lately is that Test Driven Development is about 2 things:
- Design - TDD is a design technique, not a testing technique. It is about understanding your design as you work your way through it, creating systems that are changeable, because that preserves the Product Owner's ability to redirect the team as they see fit.
- Defect Prevention - TDD is also about defect prevention. It is not a testing technique, but it is part of an overall quality process that prevents defects from occurring. Fixing bugs is a 100% wasteful process, at least for logic bugs, but creating processes that prevent defects before they occur is part of fulfilling the spirit and letter of the Agile Manifesto - Continuous attention to technical excellence and good design enhances agility.
- A Deep Dive Into Test Driven Development
- TDD Dive - Part Deux
- Diving Into TDD - Take 3
- TDD Dive 4 - Refactoring Away External Loops
- The Never Ending TDD Story - Part 5
- TDD Dive - Chapter 6
- Every method is one line
- No private methods
- No exposed collections
"Extreme Refactoring" - The Video Store Revisited