Regression Testing is a type of software testing to ensure that a recent program development or code change has adversely affected existing features. This Testing is a full or partial selection of already existing and executed test cases which are re-executed to ensure existing functionalities works fine. Regression testing is done to ensure that new code changes should not have impacted the existing features and its functions.
Regression Testing is required when there is a
Unit Regression is done during the unit testing phase and code is tested in isolation i.e., any dependencies on the unit to be tested are blocked so that the unit can be tested individually.
Partial Regression is done to validate that the code works fine with the new code changes and that unit is integrated with the already existing code.
Complete Regression testing is done when a requirement needs you to change the code in multiple functions and number of modules are impacted. The entire product is throroughly tested to check existing functionality still works fine as expected.
The entire test cases in the test suite are re-executed to ensure that there are no bugs that have occurred because of a change in the code. This is an expensive method as it require more time and resources to carry out thorough testing of the software.
In this method,a few test cases are selected from the test suite to be re-executed and not the entire suite. Selected test cases are executed based on the code change in the particular modules.
Test cases with high priority are executed first than the ones with the lower priority. Priority of test cases depends on its criticality and its impact on the product.
The Hybrid technique is a combination of Regression test selection and Prioritization. Rather than selecting the entire test suite, select only the test cases which are re-executed depending on their priority, only high priority and critical test cases are picked.