Confirmation testing
Retesting or Confirmation testing: You must retest fixes to ensure that issues have been resolved before development can progress. So, retesting is the act of repeating a test to verify that a found defect has been correctly fixed.
Regression testing
Regression testing on the other hand is the act of repeating other tests in 'parallel' areas to ensure that the applied fix or a change of code has not introduced other errors or unexpected behavior. In empirical studies it has been estimated that up to 50% of bug fixes actually introduce additional errors in the code. Given this, you can imagine how important regression testing is. Better QA processes will reduce this ratio but will never eliminate it by assessing the 'area of impact' affected by a change or a bug fix to see if it has unintended consequences. It verifies known good behavior after a change.
Regression Testing | Re-Testing/Confirmation Testing |
Regression testing is to ensure that changes have not affected unchanged part. | Retesting is done to make sure that the tests cases which failed in last execution are passed after the defects are fixed. |
Regression testing is not carried out for specific defect fixes. | Retesting is carried out based on the defect fixes. |
In Regression testing, the test cases which passed earlier can be included to check the functionality which was working earlier. | In Retesting, the cases which are failed earlier can be included to check if the functionality failure in an earlier build. |
Regression test cases are derived from the functional specification, the user manuals, user tutorials, and defect reports in relation to corrected problems. | Test cases for Retesting cannot be prepared before start testing. In Retesting, test cases that are failed in the prior execution are only re-executed. |
Automation is the key for regression testing. Manual regression testing tends to get more expensive with each new release. Automation always complements the regression test process. | Test cases for re-testing cannot be automated due to uncertainty |
Defect verification doesn’t fall under Regression testing. | Defect verification is coming under Retesting. |
Based on the resource availability the Regression testing can be carried out in parallel with Retesting. | Priority of Retesting over Regression testing is higher, so it is carried out before regression testing. |