Day27 - The Origins of TDD
This post provides a short overview of where TDD comes from and how it has evolved.
Kent Beck is known as the developer or at least rediscoverer of TDD as stated on Wikipedia. Kent Beck writes on Quora that he discovered TDD for himself after created the TestingFramework for Smalltalk. This must have happened around the year 1994. Beck says that at that time, he remembered reading a book which already described the idea of TDD. The origins of the TDD must therefore be before 1994.
Here is an excerpt from Quora where Kent Beck writes about the ancient book he read before:
... you take the input tape, manually type in the output tape you expect, then program until the actual output tape matches the expected output.
Michael Bolton writes on Quora that the roots of TDD go back to 1957 (Digital Computer Programming by Danial D. McCracken):
The first attack on the checkout problem may be made before coding is begun. In order to fully ascertain the accuracy of the answers, it is necessary to have a hand-calculated check case with which to compare the answers which will later be calculated by the machine. This means that stored program machines are never used for a true one-shot problem. There must always be an element of iteration to make it pay.
Allegedly, also the NASA used a form of TDD with punched cards for their Murcery Space Program back in the late 50s / early 60s.
As you can see, the idea of TDD is not as new as one might expect. I could imagine that TDD became popular the recent years for the following reasons:
- Nomenclature: à la "give it a name" (TDD)
- Interaction: people share their opinions and experiences with TDD via internet
- Learning resources: there are a lot of books and webinars on TDD
- Acceptance: there are developers who see a benefit by applying TDD to their projects
That's it for now, time to watch Kent Beck's video session Test Driven Development :-)
Cheers!