This battery tests out the new capability as thoroughly as the designers could want. It is easy to write because it has no other concern than the new capability, and that capability is fresh-coded, or better, yet to be coded. As a test battery is applied, needless tests are weeded out and new ones added for forgotten corners. Anytime a new capability is added, with its new test battery, all previous, validated tests are run, and the results compared with the standard results already stored on file. This is precisely what is called a regression test .
Computer time is the cheapest resource around.
Anything that goes wrong with the old tests can be traced to something done between the last time the regression test was run, and the time the latest one has run. Normally, that should be twenty-four hours. This truly narrows down bug searching. The same full regression test is run whenever the implementation is changed, even if no new capability is introduced. You can quickly write small applications simply to test a portion of your project.