NA-MIC-kit-curriculum/Testing-Based Programming
From NAMIC Wiki
Home < NA-MIC-kit-curriculum < Testing-Based Programming
Introduction
Testing-Based Programming is an software development methodology that relies on continuous and exhaustive testing as a scaffolding for facilitating rapid development.
The principle is very simple:
- If you have an extensive test-suite that exercises all the capabilities of your software, you can make both swift and large scale changes to the code, and rely on the testing-suite to reveal immediately if any bug has been introduced by the changes.
- In the absence of a testing-suite, every change in the code has the potential of introducing new defects that will go unnoticed for a long time.
As an illustration of what happens in a world without sufficient Testing:
- The national annual costs of an inadequate infrastructure for software testing is estimated to range from $22.2 to $59.5 billion.
"The Economic Impacts of Inadequate Infrastructure for Software Testing" NIST Report
As a reference the annual budget of NIH is $30 billion.