Difference between Change Related Software Testing like Confirmation Testing & Regression Testing
During software testing we get failures. In most cases the underlying defects are corrected and the corrected test object is handed over to the testers for confirmation. This is the situation where we iterate in the test process and go back to the test execution process. We go back to perform confirmation testing and regression testing.
Confirmation testing and regression testing are important activities in test execution. They can appear in all the test levels from component testing to (one hopes rarely) acceptance testing and even during maintenance of a product in operation.
These two types of change-related software testing activities have one thing in common: they are executed after defect correction. Apart from that, they have very different goals.
In the figure above the test object with a defect is shown to the left. The defect has been discovered during the software testing activity. The defect has subsequently been corrected and we have got the new test object back again for testing; this is the one to the
right.What we must do now are confirmation testing and regression testing of the corrected test object.
Confirmation testing is the first to be performed after defect correction. It is done to ensure that the defect has indeed been successfully removed. The test that originally unveiled the defect by causing a failure is executed again and this time it should pass without problems. This is illustrated by the dark rectangle in the place where the defect was.
Regression testing may and should then be performed.
Regression testing is repetition of tests that have already been performed without problems to confirm that new defects have not come up or discovered after the change. In other words it is to ensure the object under test has not regressed.
Following example shows a case of regression:
A correction of a fault in a document using the “replace all” of the word “Author” with the word “Speaker” had an unintended effect in one of the paragraphs:
“� If you are providing the Presentation as part of your duties with your company or another company, please let me know and have a Speakerized representative of the company also sign this Agreement.”
The amount of regression testing can vary from a complete rerun of all the test procedures that have already passed, to, well, in reality, no regression testing at all. The amount depends on issues such as:
1) The risk involved
2) The architecture of the system or product
3) The nature of the defect that has been corrected
The amount of regression testing we choose to do must be justified in accordance with the strategy for the test.
Regression testing should be performed whenever something in or around the object under testing has changed. Fault correction is an obvious reason. There could also be others, more external or environmental changes, which could cause us to consider regression testing.
An example of an environment change could be the installation of a new version of the underlying database administration system or operating system. Experience shows that such updates may have the strangest effects on systems or products previously running without problems.