Besides fewer bugs, what do you consider the biggest advantage of TDD?
Opposite question: aside from the potential slowdown of writing tests, what do you consider the biggest drawback of TDD?
I wouldn't try to make the case that there are fewer bugs when using TDD. However, I would say that there are fewer regressions. It is possible to write tests first, and not think about all of the edge cases that could exist when the system is running.
I agree that there is definitely a slow down when learning TDD. It really took me years to start doing it well. When I was just starting out it was easy to create tests that were very coupled to the implementation—rather than the behavior—of a piece of code. I would say that the learning curve is a huge drawback. I'm not sure what I would say it is the biggest, I might have to revisit your question after thinking about it for a bit. After doing it for years I feel that it is actually slower for me to work in a non-TDD way.
Thank you for the questions!
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.