- It's a way to capture behavior (think requirements)
- It's a design tool (If it's easy to test, the resulting code will be elegant)
- It captures high level documentation (think tools like agiledox)
- It's a regression test suite.
The word "tests" in it leads to all kinds of confusion among TDD practitioners. What do I test? How do I test? What do I test first?
Happily, we now have Behavior Driven Development - which simply removes the confusion around TDD while taking it to a whole new level.
Yes - I'm beginning to like BDD a lot. It's a better TDD and more.