InfoQ Homepage Presentations TDD: Where Did It All Go Wrong?
TDD: Where Did It All Go Wrong?
Summary
Ian Cooper reminds what was Kent's original proposition on TDD, what misunderstandings occurred along the way and suggests a better approach to TDD, one that supports development rather impeding it.
Bio
Ian Cooper has over 20 years of experience delivering Microsoft platform solutions in government, healthcare, and finance. During that time he has worked for the DTi, Reuters, Sungard, Misys, Beazley and Huddle delivering everything from enterprise solutions to 'shrink-wrapped' products. Ian is a passionate exponent of OO, SOA, EDA, CQRS and Agile. He is the founder of the London .NET user group.
About the conference
“BUILD STUFF” Conference is a Software Development Conference created for developers, team leaders, software architects and technical project managers. Our goal is to bring world class speakers to share innovations, latest developments, new trends and directions in software development world to the Baltics.
Community comments
Slides Out of Sync
by David Grant,
Re: Slides Out of Sync
by Oskar Karlsson,
Re: Slides Out of Sync
by Charles Humble,
Re: Slides Out of Sync
by David Grant,
Re: Slides Out of Sync
by Charles Humble,
Re: Slides Out of Sync
by Charles Humble,
Pure gold
by Noam Ben Ari,
This settled my thoughts about testing
by Richard Richter,
Domain Model as a Rules Engine - don't make calls outside...
by Neil Stevens,
Mocks are a smell
by Bill Turner,
Slides Out of Sync
by David Grant,
Your message is awaiting moderation. Thank you for participating in the discussion.
The slides are out of sync around 40m.
Re: Slides Out of Sync
by Oskar Karlsson,
Your message is awaiting moderation. Thank you for participating in the discussion.
Would a unit test have catched it?
Re: Slides Out of Sync
by Charles Humble,
Your message is awaiting moderation. Thank you for participating in the discussion.
Hi David,
I've checked around the 40 minute mark but it seems fine to me. What am I missing?
Charles Humble
Head of Editorial
Re: Slides Out of Sync
by Charles Humble,
Your message is awaiting moderation. Thank you for participating in the discussion.
Hi David,
I've checked around the 40 minute mark but it seems fine to me. What am I missing?
Charles Humble
Head of Editorial
Re: Slides Out of Sync
by David Grant,
Your message is awaiting moderation. Thank you for participating in the discussion.
The problem is demonstrated around 42:30. The slide on the video contains four visible lines of text but the accompanying slide fails to change, and continues to read "Acceptance Test-Driven Development".
Dave
Re: Slides Out of Sync
by Charles Humble,
Your message is awaiting moderation. Thank you for participating in the discussion.
Hi David,
Thanks for taking the time to clarify this. We don't have a slide between the two that we're showing from the slide deck we got from the conference organisers. We'll see if we track down Ian Cooper and clarify.
Thanks and regards,
Charles Humble
Head of Editorial
Pure gold
by Noam Ben Ari,
Your message is awaiting moderation. Thank you for participating in the discussion.
Refreshed my frame of mind regarding testing.
This settled my thoughts about testing
by Richard Richter,
Your message is awaiting moderation. Thank you for participating in the discussion.
I very much agree with most of it although I had some names mixed up (starting with understanding of unit test definition, but I aplied it like stated in the video). I prefer black-box testing - based on contract. I defiitely don't test every single class. And while I understand that mocks are useful, seeing how people use it made me avoid them nearly all the time. Most of the time when test breaks after refactoring the code - it has some mock inside that assumes too much. Without good reasons. Many people use mocks, because they can. I personally don't care about pure TDD or what TDD, but every sensible programmer should get to the stage where they know what to test and how. If they test. As anywhere else - no pain, no gain. You can learn something, but you have to go through some of your own dark paths.
Very good presentation indeed.
Domain Model as a Rules Engine - don't make calls outside...
by Neil Stevens,
Your message is awaiting moderation. Thank you for participating in the discussion.
The answer to the final question at 1:00:54 has confused me.
He seems to be saying that the UI Port calls the Database Port, constructs the domain objects and sends them to the Domain Model, to get the result.
Is that right?
If the api was getTodaysInvoicesForChasing(), then surely it is the Domain that knows what invoices to retrieve from the Database Port and then maybe further reduces the list according to it's own rules?
I looked at his blog codebetter.com/iancooper/2011/04/27/why-use-the... but didn't see anything there that helped me.
Mocks are a smell
by Bill Turner,
Your message is awaiting moderation. Thank you for participating in the discussion.
Well, maybe that is a bit hyperbolic. Not all mocks are smelly. I have been frustrated with what I have seen of how mocks are used at most places I've consulted. Sadly, I have not been able to articulate this discomfort well. Now I feel better equipped. Yet, I know what I have to say will only be understood and adopted by a few while the remainder go on mocking all interactions and testing classes.
FWIW - Gerard Meszaros has a decent presentation - www.infoq.com/presentations/tests-vocabulary - especially his insistence upon using domain language in the tests, and the examples he provides, that couples well with this presentation.