Change-related testing is the final target of testing which is first conducted after defect fixing and we should expect a new version of the product that has the defect fixed. It involves ensuring that the defect has been successfully corrected by running the test that failed due to this defect. This test is run again to confirm that the defect has been indeed removed and no longer exists in the app. In this case, it is expected to pass without problems.
These objectives have given rise to two subtypes of change-related testing such as confirmation testing (retesting) and regression testing.
Confirmation testing is often confused with regression testing. Regression testing is usually conducted after verifying changes or new features. Here is the difference between these test subtypes.
Confirmation testing precedes regression testing and when doing it we need to ascertain that the test is performed in an exactly the same way as it was in the first time, namely with the same data, inputs and environment. Should we be sure that the software has no defects now if the test passes successfully? Now we just know that one part of the product is 100% correct – the one where the defect was present. But it isn’t enough because the fix might have uncovered and introduced a new defect elsewhere in the product. Regression testing is the way to identify these unforeseen side effects of fixes.
Regression testing involves repeating the tests that have been successfully completed to make sure that new defects have not occurred after the change. It is performed to ensure that the system being tested has not regressed. Unlike confirmation testing, regression testing uses tests cases that passed the last time that they were executed and impacted by code changes (for re-testing, these tests failed last time). Regression testing aims to confirm that modifications in the system have not adversely affected the existing functionality and the system still correctly works with new changes.
Regression testing is intended to check that the system hasn’t more defects in it because of some changes.
Some organizations tend to have a regression test suite (pack). They use it for regression testing. These are designed together perform most functions (surely, the most crucial ones) in a system but not to test each one individually.
There are good tools for change-related testing: SoapUI, Selenium, TestDrive, TestComplete, HP Quicktest Professional. You may use them without getting help from anyone but together with software testing outsourcing companies you will be able to maximally utilize them.