Differences between Regression Testing and Retesting.
a) Retesting is carried out to verify defect fix / fixes. Regression testing is done to check if the defect fix / fixes have not impacted other functionality of the application that was working fine before applying the code changes.
b) Retesting is planned based for the defect fixes listed in Build Notes. Regression testing is generic and may not be always specific to any defect fix or code change and can be planned as regional or full regression testing.
c) Retesting involves executing test cases that were failed earlier and regression testing involves executing test cases that were passed earlier build i.e., functionality that was working in earlier builds.
d) Retesting will involve rerunning failed test cases that are associated with defect(s) fixes being verified. Regression testing does not involve verifying defect fix but only executing regression test cases.
e) Retesting always takes higher priority over Regression testing i.e., Regression testing is done after completing Retesting. In some projects where there are ample testing resources, Regression testing is carried out in parallel with regression testing.
f) Though Retesting and regression testing have different objectives and priorities, they equally important for project’s success.
ANSWER(2):
Regression Testing: Whenever the changes are made to the existing code (while fixing defects) a set of Test cases is run every time to ensure that the changes in code have not introduced any new failures in existing code, is known as Regression Testing.
The bug which was recently fixed by developers (after making some code changes or whatever) may have caused new bugs in the functionality that had already been tested. In this case, you’ll identify all other functionality that that is linked with this bug (or functionality) and execute those scenarios (test cases). This is called Regression testing.
Take a simple example: You have an Application to test, you found a bug. The developers fixed it. Now, you need to test the entire application in order to see that there is no effect of the bug fix on the application in total. Or, lets say you have a bug in a feature which you found on Vista OS English. Now, you will test for the same bug in all the different languages which your application supports. This is Regression Testing.
If you have bugs in your previous versions or builds, checking them on the latest builds and other versions can also be called as Regression Testing.
Re-testing: This is very simple. Whenever a defect is fixed by the developer, tester verifies that defect to make sure that the defect is actually fixed, this is known as Re-testing. The functionality is again tested for a fix here. This would not includechecking the system in total. TEST ONLY THE FIX. Here, you are concerned with only the fix.
Example of this would be: You found a bug. The developer fixes it and send it to you to test. You retest it to make sure that it has been fixed. If it is still not fixed, you again send it back to developers and they in turn return back to you after fixing it again. This process of retesting goes on and on until bug is fixed. This is called RE-Testing
Re-Testing is also called as Confirmation Testing. Confirmation Testing is done to make sure that the tests cases which Failed in last execution are passing after the defects against those failures are fixed.
We would love to hear any other examples which you have encountered in real time which would help us more in understanding these two concepts…
Thanks for the post on this mostly used topic. In my opinion:
ReplyDeleteRegression Testing is the execution of all or a select set of test cases which have passed on the previous build or release of the application under test in order to
validate that the original features and functions are still working as they were previously. These tests normally will not have already been executed against the
current build or release as normally only the new features and functions are tested prior to regression testing.
Retesting is the execution of one or a set of test cases which previously failed due to a suspected defect in the software which now is documented as being remedied.
Source: What is the
difference between Regression Testing vs Retest?