Test Driven Development - eradicates fear of change

TDD eradicates fear of change.

As a developer, you shouldn't have to guess whether software is working correctly; You should be able to prove it at every step of the way.

A test-driven development (TDD) process allows you to build testing into your daily routine.

You can get instant feedback on the changes you are making which will increase your productivity, confidence and peace of mind.

Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, then the software is improved so that the tests pass.

This is opposed to software development that allows software to be added that is not proven to meet requirements.

Cons of TDD:
  1. TDD will make you slow when the design is changing rapidly. 
  2. In TDD, emphasis is given to passing tests than design. 
    1. Passing tests is NEVER a key to good quality.
    2. Quality is made by design, not testing.