Established in the recent discussion of Software Process Models, there is an array of models by which a project can be developed. From the simple code-and-fix approach used by many computer science students with a deadline to the more intricate spiral technique which encourages cyclical development. While many of the models were covered in class, due to time constraints, we did not manage to cover the process of test-driven development. The purpose of this blog is to provide an overview of this approach.
What is it?
Test-driven development is an agile approach by which each cycle of development is dictated by a particular test case. The test case is intended to act as a metric by which each component may be evaluated and measured fro completion. Each additional feature will also test previous feature tests know as regression testing.
Why is it beneficial?
By performing the cyclical development process, like any agile approach, it allows for the continual development of the project in a way that is sustainable, encourages communication and achieves the desired outcome. In particular, test-driven development adds the element of continual testing through its unique test-based progress.
Where did it come from?
Well, it is not completely clear. Some say it was around and it was only recently rediscovered in the book Extreme Programming by Kent Beck. However, it is said that the Michael Bolton author of Rapid Software Testing that this technique actually dates back to the 1950s with the concept of Program Counter within Digital Computer Programming by D. D. McCracken. If you would like to check it out, it’s available here.