Quality – the single most influential parameter that decides whether a business thrives or dooms – is also the most often misunderstood concept.
Be it the service sector or product sector, quality of output is of supreme importance to maintain and enhance customer satisfaction.
A very important aspect of ensuring quality is rigorous quality checks or QC. QC is done in a phased manner – at first, Functional testing is done, which comprises, Unit testing, Smoke testing, Sanity testing, and Integration testing. Functional testing aims to figure out as many bugs as possible so that no error creeps in the final version.
Functional testing is followed by Retesting and Regression testing. While many do not clearly distinguish between Retesting and Regression testing, these are two distinct types of testing with different scopes.
Let’s first understand what Retesting and Regression testing means.
What is Retesting?
Retesting is nothing but limited functional testing on the updated version of the product wherein all the functionalities with identified bugs are tested again to check whether fixes are done properly or not.
The scope of Retesting is thus limited to the test cases where bugs were found in the initial Functional testing.
What is Regression testing?
Regression testing is based on the idea that while fixing identified bugs, some new bugs might get into the system which was not present in the original version. Thus, a Retesting will not be able to filter out those new bugs.
Here comes the role of Regression testing wherein the product is testing to ensure that no new bugs have been introduced in the earlier functional parts.
Comparing Regression Testing with Retesting
Though sounds similar, Regression testing and Retesting differ significantly in various aspects.
The table summaries the key differences between Regression testing and Retesting.
Aspects | Regression testing | Retesting |
Scope | Regression testing is done to check if a change in one part of the product has introduced defect in another part of the product | Retesting is done to check where the fixes applied on identified defects have been proper or not |
Purpose | To prevent the introduction of new bugs | To ensure bugs don’t go unfixed |
Out of scope | Defect verification is not part of Regression testing | Testing of non-reported parts is not part of Retesting |
Priority | Regression testing is done after Retesting or in parallel, but never before | Retesting is done before Regression testing or in parallel |
Automation | Regression testing is mostly automated to save time | Retesting usually done manually |
Type | Regression testing is a generic testing | Retesting is planned testing |
Test cases scope | Regression testing is done for passed test cases | Retesting is done for failed test cases |
Test type
|
Regression testing checks for unintended bugs introduced during fixes | Retesting is done to make sure original bugs are fixed |
Test cases identification
|
Test cases for Regression testing can be obtained from original test cases of Functional testing | Test cases for resting cannot be predicted beforehand |
What to choose – Regression testing or Retesting?
There is technically no choice between Regression testing and Retesting as both serve different purposes. Retesting is necessary to ensure that bugs are fixed. There is no question of avoiding Retesting or priority of doing Retesting.
Sometimes, due to various reasons, such as resource crunch or time constraints, Regression testing takes a backseat. However, Regression testing is a part and parcel of a quality assurance process.
Timing – whether to do parallelly or sequentially
Retesting always takes priority. Once the identified bugs are fixed, the revised build is parked to the QC team for Retesting.
As mentioned earlier, Retesting test cases are already defined from the bug reports of functional testing. So, the QC team tests the revised build against the bug reports and checks whether all the reported bugs are closed.
The Regression testing ideally should be done after the closure of Retesting. This is so because if there are some open bugs found in Retesting, fixing those may result in the introduction of new bugs.
These new bugs won’t be detected is Regression testing is done parallelly. However, due to time constraints or resource constraints, sometimes Regression testing is taken up parallelly.
Such cases need to be closely monitored to ensure no bugs leak to the final product.
Conclusion
Both Regressions testing and Retesting are an integral part of the QC process and needs rigorous implementation. Each has its scope and contribution to the quality of the final deliverable.