There's lots and lots of information on Test Driven Development (TDD) on the web. Much of it is very useful, but many people still don't get the primary point. '''Test Driven Development is a ''design'' technique, not a ''testing'' technique.''' Sure, you end up with a !UnitTest suite that can be very useful for testing and provide a framework for adding tests. This is a wonderful benefit of TDD, but it's not what TTD ''is''. ''"That's what a ship is, you know. It's not just a keel and hull and a deck and sails. That's what a ship needs. But what a ship is... is freedom."'' (Captain Jack Sparrow, from Walt Disney's ''Pirates of the Caribbean: The Curse of the Black Pearl'' ASIN:B00005JM5E) Test Driven Development is also freedom. It's the freedom to change your mind. It's the freedom to move forward without worrying that you're making a mistake. It's the freedom to concentrate on what you want rather than how to build it. * TestDrivenDevelopmentFrequentlyAskedQuestions * TestDrivenDevelopmentExamples * A presentation I gave at the [[http://apln.agilemaryland.org/moin/Meeting2007July|July 2007 APLN Maryland meeting]]. ToBeWritten: * The change of viewpoint required to do TDD. * How the tests generated by TDD are "free," coming out of design time that is necessary in any case. * Why I don't want to write software without TDD, ever again. * How to get started with TDD. * Greenfield development * Legacy development * Dependencies on other systems * Database * Real-time * Libraries with deep dependencies * SMTP (outgoing mail) * EJBs === Elsewhere === * Emmanuel Gaillot's [[http://emmanuelgaillot.blogspot.com/2006/03/explaining-tdd-to-your-baker.html|Explanation of TDD]] to his baker. * Michael Feather's [[http://www.artima.com/weblogs/viewpost.jsp?thread=126923|A Set of Unit Testing Rules]] ''"A test is not a unit test if..."'' * M Easter's [[http://codetojoy.blogspot.com/2007/02/im-believer.html|Dining at the TDD Buffet]] blog entry. * Christoph Steindl's [[http://www.agilealliance.org/system/article/file/1423/file.pdf|Test-Driven Development]] slides * Dan Bunea's [[http://danbunea.blogspot.com/2005/12/test-little-code-little-practical.html|Test a little, code a little - a practical introduction to TDD]] with examples in C#/NUnit. * Uncle Bob Martin and Bob Koss' [[http://www.objectmentor.com/resources/articles/xpepisode.htm|bowling game example]]. * Justin Searls on [[http://blog.testdouble.com/posts/2014-01-25-the-failures-of-intro-to-tdd.html|the way he now teaches TDD]]. === Books === * ''Test Driven Development: By Example'' (ISBN:0321146530) by Kent Beck Demonstrates TDD using the Money example in Java. * ''Test Driven Development: A Practical Guide'' (ISBN:0131016490) by Dave Astels * ''JUnit Recipes: Practical Methods for Programmer Testing'' (ISBN:1932394230) by J.B. Rainsberger * ''Test Driven: TDD and Acceptance TDD for Java Developers'' (ISBN:1932394850) by Lasse Koskela See Ed Gibb's [[http://edgibbs.com/2007/05/05/test-driven-development-applied/|review]]. * ''xUnit Test Patterns: Refactoring Test Code'' (ISBN:0131495054) by Gerard Meszaros * ''Growing Object-Oriented Software, Guided by Tests'' (ISBN:0321503627) by Steve Freeman and Nat Pryce * ''Test Driven Development for Embedded C'' (ISBN:193435662X) by James Grenning === Details === * NunitCheatSheet <>