Regression testing
From Software testing and development
Regression testing can be defined as the retesting of a previously tested program following modification to ensure that faults have not been introduced or uncovered as a result of the changes made. The principle is that given a tested system and a new version of that system with some change made, a subset of the tests may be sufficient to restore the "tested" status of the system.
The value of separating out regression testing as a separate concept from simply re-testing the system completely is that when testing costs are high, being able to get the same verification from less testing is desirable. If the cost of a full system test is low, simply re-testing the system when changes are made is probably the best strategy.
The extra work that has to be done to execute a regression test is determining the subset of the full system test required to bring the system back to "tested" status. It is possible, if the changes to the system are extensive enough, that the regression test will in fact be the same as the full system test.
A regression test suite is created from selected test cases and scripts. Where possible regression testing should be automated to reduce the time taken to repeat these tests, in some cases the additional time required to automate the tests will outweigh the benefits and so regression testing is performed manually.
