Regression testing is tests that are aimed at finding defects in those parts of the application that have already been tested. 

Regression errors are the same defects with only one difference: they do not appear when the program is written, but when a new section of the program is added to an existing release or when other bugs are fixed.

For example, let’s say you made an online dating app that matches you with a partner based on your musical tastes, occupation, and personality type. But then, after testing, we decided to add the ability to swipe there, like in Tinder. As a result, some function of the previous version of the product may crash.

Additions, changes, and new features may cause new defects in a product that has already been tested. Therefore, testers conduct regression testing to make sure that the defect fix / release update did not create new defects in the already tested code.

Regression testing includes several types of tests:

  • verification tests

They are carried out to check and correct the detected defect.

  • version verification testing

This test contains the principles of smoke testing and build testing: as part of version verification testing, we check the functionality of the main functionality of the program in each new build.

  • regression tests

Needed to re-test a product that has already been written and tested before. Regression tests are carried out on already existing test cases, and it does not matter whether defects were found during their passage or not.

  • tests of fixed bugs in the old release

They are carried out when you already have a new release on hand, but you need to check if the defects that were fixed in the old release have “revived”.

Important: regression testing is not the same as regression testing. Retesting is the verification of fixes made to a particular module or element. This is the main difference, because regression testing is aimed at finding defects in the whole product, where the impact of the fix on another component of the system is the main focus.

How regression testing is done

In order for you to understand how regression testing works and what it is, I will tell you how it is usually carried out.

Facts – Regression Testing:

  1. Held in every new release
  2. Starts with version verification (build testing and smoke testing)
  3. Contains a check of fixed defects
  4. Basically does not cover the entire application, but only those areas that are affected by changes in the release
  5. Conducted in three main areas: testing bugs, old problems and side effects

At the last point, I will stop and tell you what these directions are and what are the specifics of each.

Three key areas in regression testing

Regression is testing three main areas: defects, old problems, and side effects.

  • Defect Regression

This is a search for problems that have officially been fixed, but there is reason to believe that they still exist. In this case, it is necessary to check all actions with a certain object in various combinations. The main thing here is to find out if the defect was actually fixed, and to test the mechanism by which it was detected.

  • Regression of old bugs

This is testing for bugs that have arisen due to a recent code change in one part of the application. When this happens, another part of the application is broken – in whole or in part. The task of the tester is to identify all the problem areas.

  • Regression of side effects

For this, automated software testing is connected, during which testing of the main functions and tasks is performed automatically. This can be, for example, testing startup, initialization and execution, as well as analysis and output of results.
Automated testing is carried out by a technical specialist who is responsible for creating, debugging and maintaining test scripts, test suites and tools.

Advantages and disadvantages of regression testing

The benefits of regression testing include:

  • reducing the number of defects in the system by the time of release
  • exclusion of degradation of the quality of the system with the growth of functionality
  • reducing the likelihood of critical errors when using

In other words, regression testing ensures that you release a viable, high-quality and working release, and your product does not lose quality even when you start adding new features, functions and options to it.

Regression testing has one drawback – it is not cheap, because it requires a lot of manual labor. Not everything can be automated, so regression testing almost guarantees you additional costs.

However, these are almost always necessary expenses: according to the World Quality Report 2018, on average 26% of the total IT budget of companies goes to testing. At the same time, 40–70% of these costs are accounted for by regression testing. If you translate percentages into real money, you can understand why regression testing is worth every ruble, deserves attention, and requires a well-thought-out strategy.

To effectively find all the problem areas, eliminate them and ensure the high quality of the digital product, you need to choose the right approach and assemble a strong team of testers.

Feature Image Credits

Author