It kinda irritate me when people talk about TDD being write test first before you write code – and simply stop there. I don’t think this sufficiently captures the essence of TDD, and I suspect that in some cases this is simply regurgitation of some textbooks.
To me TDD is also:
- Treat unit testing as a first class process in the SDLC
- Use unit test as a key quality control mechanism
- Design your code and architecture so that it is testable
- Treat and maintain test code as first class citizen
What is TDD to you?