In the defect life cycle, a tester files a bug whenever a defect is found in the application while testing. This defect will be created in a bug tracking software. A project manager or a test lead verifies the bug and it is assigned to a developer to fix it. Once a developer fixes the bug, the testing team is required to make sure the bug has been resolved and it no longer affects the functionalities of the application.
This process of testing the bug once it is solved is called retesting and, in sections given below, we will study this topic.
What is Retesting?
Retesting is the testing of failed test cases after the bugs coressponding to those test cases have been fixed by the developers. It is planned testing and is also known as ‘Confirmation Testing’.
This testing is a part of a defect life cycle. In a defect life cycle, a bug cannot be closed until it has been solved by the developer and retested by the tester.
Once the tester retests the bug and confirms that it is solved, then only the bug can be closed. If the testers find that the bug is not solved then they will reassign it to the developer.
While retesting, a tester will recreate the same scenario to see whether the bug has been solved. A tester is also required to check other functionalities related to the bug to make sure new code changes for this bug are not altering other closely related functionalities.
Example of Retesting
An e-commerce application’s checkout calculation is:
Item Price + Delivery Charges = Item Total
Item Total – Discount Code Applied = Order Total (Amount to be Paid)
A tester found a bug stating – “during checkout, after applying a valid discount code, it is not added in the order total calculation of the product”. The tester will file this bug and it will be assigned to the developer.
After this step, two scenarios can happen:
- A developer fixes this bug. It comes to the tester for retesting. While retesting, a tester follows the same steps to reproduce the bug. The tester applies the discount code and sees that it has been added in the final price, tester closes the bug.
- A developer rejects the bug due to some reason. After the rejection, it is assigned to the tester for retesting. The tester retests the bug and checks whether rejecting the bug was the right decision or not. In case not, it is re-assigned to the dev team.
Advantages of Retesting
- Retesting makes sure a bug has been fixed by the developer, it is no longer present on applying the same steps. At the end of the successful retesting process, a bug is closed. Retesting increases the quality of the software by checking the failed test cases.
- It takes less time as it requires testing of only a specific bug or the failed test case.
Disadvantages of Retesting
- Sometimes, in order to be resolved, a bug is needed only a minor code change. In such cases, just to test one bug, the developer needs to do the deployment of the code, which becomes time-consuming for the developer.
- In some cases, retesting is time-consuming for the tester as he or she needs to repeat the exact same steps to check if the issue is resolved.
Difference between Regression and Retesting
Many times, people are confused between regression testing and retesting. In this section, let’s discuss a few important points about the difference between these two testing methods or processes.
In the above-mentioned example of the e-commerce website, the first scenario has another possibility – While solving this bug, a developer has made a mistake and due to which ‘Delivery Charges’ are not added in the total and wrong ‘Total’ is calculated. So, after solving an existing bug, due to the developer’s mistake, another bug has been produced. The original bug has been fixed, but it has affected other functionality of the same page.
Because of such cases, a tester is responsible not only to test the ‘Discount Code Applied’ but also the other amounts added or subtracted in the order total. This is regression testing.
Regression testing is a testing of the software when a new code has been deployed. It is conducted to check whether new code changes have affected other untouched modules of the system.
Important points of difference between retesting and regression testing:
- In retesting, only a specific failed and then resolved bug is tested along with that a test case relating to this bug is tested. While in regression testing, testers carry out testing of the application to be sure that code changed have not affected other unchanged parts of the application. In regression testing, previously tested and passed test cases are checked.
- Regression testing is possible with automation testing, but the same is not always possible in retesting.
- Defect verification is carried out in retesting, while it is not a part of regression testing.
- Regression testing can be done simultaneously with retesting. But a priority should always be given to retesting over regression testing.
Quick Recap – Retesting Infographic
Retesting is an important and required testing type assuring system reliability and flawlessness. It confirms that failed test cases have been solved giving relief to not only testing and development teams but also to the client.
We hope this tutorial was beneficial in understanding the ‘Retesting’ concept. For any query or suggestion, please let us know in the comments.
Kuldeep is the founder and lead author of ArtOfTesting. He is skilled in test automation, performance testing, big data, and CI-CD. He brings his decade of experience to his current role where he is dedicated to educating the QA professionals. You can find him on LinkedIn and also follow ArtOfTesting’s LinkedIn page.