NA-MIC-kit-curriculum/Testing-Based Programming

From NAMIC Wiki
Revision as of 14:27, 11 December 2009 by Ibanez (talk | contribs) (→‎Introduction)
Jump to: navigation, search
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.

(as a reference the annual budget of NIH is $30 billion)

"The Economic Impacts of Inadequate Infrastructure for Software Testing" NIST Report