In this post, we will see the major differences between Re-Testing and Regression testing. This question is frequently asked in manual testing interviews. Mostly, the concepts stated on this page are from a manual testing standpoint. However, from a continuous delivery testing standpoint, most of the things done in the regression cycle can be automated.
First of all, regression testing is done to ensure that change in one part of the software has no side-effects on other parts of the application. Regression is re-execution of the test cases for the unchanged parts to see that unchanged functionality is working fine and is not. ( this exercise is usually done as a cycle as shown in the below picture )
When a defect is reported, the Dev team would fix the defect. It is likely that the change made in the code may lead to side effects that may not be visible immediately. So, whenever a change is made to the source code, QA team has to ensure that there are no side effects of the change to other parts of the AUT.
Regression is re-execution of the test cases for unchanged parts to see that unchanged functionality is working fine are not. Retesting is done to make sure that bug is fixed and failed functionality is working fine or not, This is a kind of verification method followed in the Testing field for the fixed bugs.
Re-Testing is done to ensure that the bug is fixed by running the same test case repeatedly. It is run on the same code where the change has been made. Also, it does not involve testing of other parts of the software. Furthermore, Re-testing means we are testing only a certain part of an application again. We do not consider how it will affect the other part or in the whole application.
Retesting is only done for failed Test cases. When there is little time Re-testing takes precedence over regression testing.