The origin of TDD
In 1996, Kent Beck, Ward Cunningham, and Ron Jeffries introduced a new software development methodology called Extreme Programming while they were working on the project Comprehensive Compensation System at Chrysler. The word Extreme indicates that the concepts behind Extreme Programming are totally different from the concepts used in software development back then. For many people, these concepts sound extreme even today.
The methodology is based on 12 rules or practices. One of the rules states that developers have to write unit tests and all parts of the software have to be thoroughly tested. All tests have to pass before the software (or a new feature) can be released to customers. The tests should be written before the production code that they test.
This so-called test-first programming led to TDD. As the name suggests, in TDD, tests drive the development. This means that the developer writes code only because there is a test...