TDD is an art of developing quality software. So, I call TDD is an art. A professional programmer dreams to write a program which is bug free and easy to understand. A program that is appreciated by the co-developers. TDD is something that can help you to do that and van be more than that; it creates a culture of developing good software. To become TDDer needs experience and a creative mind. You have to be tester and also a pragmatic programmer. It leverages the essence of real world programming, the clean code approach and beauty of refactoring. Kent Beck in 2002 started this best practice and here I am trying to write some of my thoughts about it after experiencing this on my play projects, Three golden rules of TDD: 1. You will start with a failing test. You are not supposed to write the production code until you have a failing test. 2. You will write sufficient code to pass this failing test but not anything more ...