Regression testing is one of the software testing types. it is most often used software testing type to verify that software is not regressed.
Regression testing is nothing but, retesting of the application to find out the regression in the software. Typically, Regression tests are being carried out when new functionality or bug fixes or any code change has been made into the software.
It is strongly recommended that the Regression test suite should be automated so that it helps QA to focus on new functionality. there are many good automation tools are available in the market like QTP, Selenium, TestComplete, VSTS, SOAPUI pro etc.
Regression testing we do on both functional and non-function tests. intend of the regression testing is to make sure that software is not broken due to changes in code or code merging etc.
when we should do the regression testing?
Regression testing typically carry out in the following cases
1) when the new functionality introduced then regression testing needs to carry out to find whether the existing functionality is not broken.
2) whenever there are Bug fixes, to verify the other functionality is not affected by the bug fixes we need to do the regression testing
3) After Code refactoring, regression testing needs to carry out to make sure that there is no functionality is regressed due to code refactoring.
4) After Merging the branches or code, regression testing needs to done, as during merging branches or code, there are more chances of functionality breakage.
Regression testing plays important role in software testing.