D'Arcy from Winnipeg
Solution Architecture, Business & Entrepreneurship, Microsoft, and Adoption

Of Course TDD Doesn't Guarantee Quality!

Tuesday, April 22, 2008 12:48 AM

Wouldn't it be great if we could just utilize some new methodology or tool out there and instantly insert quality directly into our software? Like, just add *whatever* and *poof* - you get quality!


Of course, that isn't reality. TDD will not *guarantee* quality. NHibernate will not guarantee quality. NUnit will not, neither will BDD, or DDD, or any other buzzword that is happening currently.

The output of software may be something automating a process, but the process of software development is still inherently human.

Aaron blogged about how TDD doesn't guarantee quality. I fully support this statement. That's like saying you followed a book to build a deck, and therefore the quality of your deck is associated with the book: its only true up to the quality of the book, but a human still needs to do the actual building.

With TDD we have a *mindset* that *encourages* quality to be a first-thought instead of an after-thought. It trains developers to ensure that their code will do what its supposed to do and in a way that its supposed to do it. But how do you know if you've covered all the test scenarios when writing your unit tests? How far do you go with obscure test scenarios that end up reducing overall productivity and delivery?

There's always a human angle, and I think we need to keep that in mind...especially since we've grown up in a spoon fed, drag and drop world. We are the biggest influence of quality in our organizations...tools can help, but the first place we need to evaluate is where we're at with our own skills and abilities first. There is no easy-fix, quality out of a Betty Crocker box that we can rely on.



# re: Of Course TDD Doesn't Guarantee Quality!

I would have to agree with the human aspect completely. 4/22/2008 1:41 AM | Fervent Coder

# re: Of Course TDD Doesn't Guarantee Quality!

I also agree, existence of tests != quality. It is pretty easy to write poor tests that don't properly test what they are supposed to, so that even though the build shows 200 green tests, it really does not represent the actual current state of the app. 4/22/2008 10:39 AM | Dave Harris

Post a comment