Presentation: "Unit Testing Considered Not Helpful and Maybe Harmful"

Track: Iconoclasts: Entertaining Rants / Time: Wednesday 16:50 - 17:50 / Location: Room 102/103

There is strong empirical evidence showing that TDD, as originally defined doesn't work: It can't replace up-front architecture. Even die-hards such as Robert Martin agree. But revisionist history has redefined TDD to mean what we used to call unit testing in the old days. In the mean time, the smart people have moved on to BDD, which is what we used to call testing in the old days.

In the mean time there are many folks who are doing just plain old unit test (POUT). I offer simple models and theories that seriously question whether unit testing is cost-effective relative to BDD — independent of the use of tests for emergent architecture, which has already been empirically discredited. Even without empirical substantiation these models and theories appear to be compelling. I'll explore these models with the audience, challenge unit testing's value, and post a challenge for renewed empirical research to evaluate the value of this software engineering relic.

Warning: The speaker may mean only half of what he says. The other half is offered to provoke that rare activity called thinking.

James O. Coplien, Agile Consultant

James O. Coplien

Biography: James O. Coplien

Jim Coplien has been a software professional for more than thirty years and is currently Software Architecture and Agile Constultant at Gertrud&Cope in Denmark. He is author of pioneering software design books including /Advanced C++/, /Multiparadigm Design/, and /Organizational Patterns of Agile Software Development/.

His work established the foundations of modern C++ software design and the patterns that underlie effective software development organizations. His work on Organization Patterns, together with Neil Harrison, has been acknowledged by the founders of both XP and Scrum as a major inspiration behind those approaches to software development. He is a founding member and Member Emeritus of the Hillside Group, that group that launched the software pattern discipline. When he grows up, he wants to be an anthropologist.