The most commonly asked interview question, the difference between Regression testing and Retesting. In this post, we will learn about these with clear examples.
Before Jumping directly into the definitions and blah blah blah… We will start with the basic term, which is the root cause for the entire discussion. Do you know what it is ? yes.. you know it, it is known as ‘DEFECT’. Suppose, you are testing gmail login functionality, On entering valid user credentials, user should be able to login. but, there is an error message displayed, which is a defect. To define, When Actual values do not match the Expected values, then it is called as a ‘Defect’.
From the above representation, Defect when passes through defect life cycle, the output is a defect fix. The defect is raised by a ‘Tester’ and fixed by a ‘Developer’. In order to confirm that the defect is fixed, it needs to be tested by the tester/QA. This is known as Retesting.
Hence, ‘Retesting’ is to verify that the defects are fixed and the functionality is working as expected. When a defect is fixed, the test cases which are failed with reference to the defect are executed again.
Regression Testing :
Software building goes through series of changes because of defect fixes, Enhancements, Additions of new functionality etc. Anytime such changes occur, it is very important to make sure that:
- Changes or Additions work as designed.
- These changes and additions do not break the existing functionality that is working.
So, what should be done ? Its Regression testing that ensures that, the above two requirements are fulfilled.
Regression testing is performed to verify that the defect fixes made to the software works as expected and does not break the existing functionality. It is important in today’s context of software release. Because the software is released more often to meet the competition and expectations of the customer, It is essential to make sure that the software is stable and does not effect the existing functionality.
Rotten Tomatoes Example:
Consider Rotten Tomatoes example, which is not related to movie rating website 🙂
In this example : A basket of tomatoes has come from the farm field which is fresh and organic. Now, If at all there are few tomatoes which are damaged or rotten, What would you do ? you would remove them and then ?.. then .. search for any other tomatoes that are effected due to the rotten one’s. Sound’s good . now relate this example to Retesting and Regression testing and you will never forget.
Selective Retesting concept:
Whenever defects are fixed, there are certain test cases to be executed which are failed due to occurrence of the defect. The testing team verifies the fixes. An impact analysis is carried out to find out the impact areas and based on this analysis, Test cases are selected for execution. Since, This technique focuses on existing test cases that are already been executed at least once, it is know as selective retesting concept which regression testing has incorporated.
Regression testing can be done without considering the test phase of the product currently in .
The failure of regression can only be found very late in the cycle or by the customers. So, proper planning and selection is necessary to get maximum advantage of regression testing.
Retesting and Regression with Google Mail :
Step 1 :
In Image below, on clicking ‘Inbox’ there are no emails listed , just some colors are visible. This is not expected and a defect is logged for which, the developer is working on.
Step 2 :
Now, The defect is fixed and tester has retested the defect. The result is that, all the emails for ‘Inbox’ are listed which is as expected and the defect is closed. see the image below
Is this all that needs to be done ? from the above theory, we have seen that once the defect is fixed, Impact analysis is done and the corresponding areas are identified to test. here comes the next step
In this example ‘Inbox’ , ‘Starred’, ‘Sent Mail’ etc have same functionality and the defect fix for ‘Inbox’ might effect the others as well . Hence, Regression testing need to be performed on the impact areas. In the below image ‘Test’ is done on ‘Starred’ category.
The results look good , no broken functionality and similar tests need to be done on other categories which are identified as part of Regression testing. When all the other categories do function as expected then the cycle is completed.
Regression Testing is vast concept unlike retesting. We will learn more about regression testing in future posts.