Regression Testing vs Re-Testing
Regression testing is done after receiving a new build that has some bug fixes which was identified during the initial round of testing. It is a type of black-box testing. It is performed to ensure that changes in the codebase ( new code or modified code) do not disrupt the existing functionality thereby introducing defects. It also checks for the performance of the application after adding a new feature.
Retesting is also known as confirmation testing. Retesting is done on the failed test cases with the new build to ensure the defects raised during the software cycle are fixed and work as per the desired specifications. The failed test cases are then re-executed and passed.
Difference between Regression and Re-Testing
|Regression Testing is carried out to confirm that changes like defect fixes or enhancements to the module or application have not affected existing features||Regression Testing is carried out to confirm the tests cases which failed in the last execution are passing after the defects are fixed|
|It is carried out in the complete application||Retesting is carried out based on the defect fixes.|
|Regression testing is mostly automated as a manual way could be expensive and time-consuming||Re-testing has to be performed manually|
|Defect verification is not coming under Regression testing||Defect verification comes under Re-testing|
|Regression testing is done for passed test cases||Re-testing is done for failed test cases|
|It is always a part of the testing process and performed each time code is changed and a software update is about to be released.||It is part of the testing process only if a defect is found in the code.|
|Test cases for regression testing can be obtained from the functional specification, use cases, and defect reports||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.|