The dictionary definition of regression is the act of going back to a previous place or state. In software, regression implies that a feature that used to work suddenly stopped working after a developer added a new code or functionality to the software.
Regression problems are pervasive in the software industry, as new features are getting added all the time. Developers don’t build these features in isolation, separate from the existing code. Instead, the new code interacts with the legacy code and modifies it in various ways, introducing side effects, whether intended or not.
As a result, there is always a chance that introducing new changes may negatively impact a working feature. It’s important to keep in mind that even a small change has the potential to cause regression.
Regression testing helps ensure that the new code or modifications to the existing code don’t break the present behavior. It allows the tester to verify that the new code plays well with the legacy code.
Regression Testing is a type of testing that is done to verify that a code change in the software does not impact the existing functionality of the product.
This is to ensure that the product works fine with new functionality, bug fixes or any changes to the existing feature. Previously executed test cases are re-executed in order to verify the impact of the change.
For Example, Consider a product X, in which one of the functionality is to trigger confirmation, acceptance, and dispatched emails when the Confirm, Accept and Dispatch buttons are clicked.
Some issues occur in the confirmation email and in order to fix the same, some code changes are made. In this case, not only the Confirmation emails need to be tested, but Acceptance and Dispatched emails also need to be tested to ensure that the change in the code has not affected them.