- Retesting: is a type of test that is performed to check the Failed cases on their last execution to Passed cases after the errors have been fixed.
- Regression testing: is a type of software testing performed to check if code changes are disturbing or affecting existing features and functionality of the Application.
- Retesting is performed to ensure that the error is corrected by running the same test case again and again. It is run on the same place the change was made.
- Also, it does not involve testing other pieces of software. Furthermore, Retest means only retesting only a certain part of the application. The test does not consider how it will affect another section or across the entire application.
- Retesting is only performed for Test Failure instances. When there is less time Retesting is preferred over regression testing. Example: You have to test for 1 monitor with 500 test cases. After testing those 500 cases, there are 30 test cases fail. So, you will report 30 bugs and assign them to Developer. After the bug is fixed by developer, you will verify these bugs again. How to verify 30 bugs that have been fixed? Of course, you have to re-execute 30 test cases with errors. That is Retesting.
3. Regression testing
- Regression testing is performed to ensure that a change in one piece of software does not affect other parts of the application.
- Regression is to redo the test cases for the immutable part to see that the functionality has not been altered and is working well.
- The cycle is as follows: Design New Test => Execute test => Re test => Regression test
- When an error is reported, the Dev team will correct the error. It is possible that the developer will make changes to the code and possibly lead to effects that may not be immediately visible. So whenever code changes are made, the QA team must ensure that there is no effect of the change on other parts of the system.
- Example 1: Same as above. You have 500 test cases and you test all of them. There are 470 test case passes, 30 test cases fail. Then the developer will fix them, then you do Retesting on all test cases that fail. What will happen to the 470 test case passes? We need to re-test them to check that there is no bug arising during dev fix bug. So we need to do regression testing to make sure there isn’t any effect of fixing code on the software.
- During regression testing, full re-testing of the case passes is not possible, so test cases often depend on customer requirements as well as assessing the impact of the change. code in software.
- Regression testing can also be done by automated testing, the repeated testing of cases will be very time consuming when doing the test manually.
- Example 2: As we already know the customer can change the requirement at any time. So to satisfy customers’ changes, developers need to change their logic and code. After the developer changes the code, we need to perform regression testing on the test cases that have passed before.
In a nutshell, we use regression testing in the following scenarios:
- When fixing bugs
- When adding new features
- When deleting any feature
- As the requirement changed
4. Comparison between Retesting with Regression testing
|Regression Testing is performed to confirm whether a recent program or code change adversely affects existing features.||– Re-testing is done to confirm Failed test cases then the last execution is Passed after the errors have been fixed.|
|– The purpose of Regression Check is that the latest code change will not affect existing functions||Retest is done on the basis of fixed Defect|
|Error Verification is not part of Regression Testing||Error verification is part of retest|
|– Based on project resource availability, Regression Test can be performed in parallel with Re-Check||– Retest priority is higher than regression test, so it is done before regression test|
|– Can test automation for regression testing, Manual testing can be expensive and time consuming||– You cannot test automation test cases to test again|
|Regression testing is called general inspection||– Retest is a planned test|
|Regression testing is performed for the test cases already PASSED||– The retest is only performed for FAILED test cases|
|– Regression test checks for unwanted effects||– Check to make sure that the original error has been successfully fixed|
|Regression testing is only performed when any modifications or changes are required in an existing project||Retest execution of an error with the same data and same environment with different inputs with a new scenario|
The error is recorded by the tester while testing the application and fixed by the developer in the project.
- In Retest, QA / Tester will check for the same error whether corrected or not using the steps mentioned in the error.
- In regression testing, QA / Tester will check for the same fixed error or the newly implemented function without affecting other unchanged part of the application, not breaking the previous working function as well. There was no error.