ISTQB definition:
Regression testing - is a testing of a previously tested component or system following modification to ensure that defects have not been introduced or have been uncovered in unchanged areas of the software as a result of the changes made.
Purpose
More specifically, the purpose of regression testing is to make sure (as far as is practical) that modifications in the software or the environment have not caused unintended adverse side effects and that the system still meets its requirements.
Regression tests are executed whenever the software changes, either as a result of fixes or new or changed functionality
Regression test suite
It is common for organizations to have what is usually called a regression test suite or regression test pack. This is a set of test cases that are specifically used for regression testing. They are designed to collectively exercise most functions (certainly the most important ones) in a system, but not test anyone in detail.
Maintenance of a regression
The test suite should be carried out, so it evolves over time in line with the software As new functionality is added to a system, new regression tests should be added. As old functionality is changed or removed, so too should regression tests be changed or removed.
Human language:
Regression testing - is a subtype of change-related 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. Regression testing is responsible for the overall stability and functionality of the existing features.
Purpose
The purpose is to catch bugs that may have been accidentally introduced into a new build or release candidate and to ensure that previously eradicated bugs continue to stay dead.
Importance
Whenever developers change or modify their software, even a small tweak can have unexpected consequences. That’s why developers and testers must not leave any alteration, even the smallest, that goes out of their control scope without regression testing, it is more difficult and time-consuming to investigate the root cause and the architecture of the product. In other words, if your product undergoes frequent modification, regression testing will be the filter that ensures quality as the product is improved.
Execution
There are different regression testing techniques
Regression testing is usually performed after verification of changes or new functionality. Usually, regression testing is performed before the release and includes all existing test cases;
Previously executed test cases are re-executed in order to verify the impact of the change.
Life example:
Let's consider the simple example of non-functional testing
Example: Release of the Auto Care Center Services functionality of the Services menu on the Online Store Market
Precondition
1. The development team develops a functionality: Auto Care Center Services functionality of the Services on the Online Store Market;
2. The Online Store Market is opened.
Let's imagine that this functionality has been developed for the online store by the development team during the development process
After that, during the testing process, the QA Engineer concentrates efforts to test each developed function of the Auto Care Center Services. For this reason, the tester writes and then runs the test cases for this functionality. After running the test cases, all functions that were recently built have been tested. But is It enough just to test the functionality that was recently built before releasing the product? The right answer is: No
Code changes in the software might have to impact the existing functionality of the product as well, and in order to ensure that the product works fine with new functionality, bug fixes, or any changes to the existing feature the QA Engineer should perform regression testing before releasing the product.
Based on our example, besides Auto Care Center Services, the QA Engineer should run all existing test cases for each function on the Website on each module through an overall system
Conclusion:
So, if you are asked at an interview: What is Regression testing? The best way to answer is:
Regression testing - is a subtype of change-related 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.
Comments