What is the difference between “Test First” software development and “Test Driven Development (TDD)”? In this blog post, Daniel Lindner provides his opinion about this topic and discusses his issues with Test Driven Development and how he thought he could train to apply it properly.
He defines “Test First” as “write a failing test first and make it green by writing exactly enough production code to do so.” “Test Driven Development” is defined as “apply a Test First approach to a problem using baby steps, letting the tests drive the production code”. In this blog post, Daniel Lindner presents how he try to solve the same problem using the two approaches. This is done describing the process step by step and with code examples. His conclusion is that “TDD doesn’t lead to particularly elegant solutions, it leads to the simplest thing that could possibly work and assures you that it will work in the realm of your specification. There’s no place for the programmer’s ego between these lines and that’s a good thing.”
Read the complete blog post on http://schneide.wordpress.com/2013/04/29/the-difference-between-test-first-and-test-driven-development/