top of page

What is Regression testing?


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.

176 views

Recent Posts

See All
bottom of page