Open In App

Regression Testing – Software Engineering

Last Updated : 14 Mar, 2024
Like Article

Regression Testing is the process of testing the modified parts of the code and the parts that might get affected due to the modifications to ensure that no new errors have been introduced in the software after the modifications have been made. Regression means the return of something and in the software field, it refers to the return of a bug.

When to do regression testing?

  • When new functionality is added to the system and the code has been modified to absorb and integrate that functionality with the existing code.
  • When some defect has been identified in the software and the code is debugged to fix it.
  • When the code is modified to optimize its working.

Process of Regression testing

Firstly, whenever we make some changes to the source code for any reason like adding new functionality, optimization, etc. then our program when executed fails in the previously designed test suite for obvious reasons. After the failure, the source code is debugged to identify the bugs in the program. After identification of the bugs in the source code, appropriate modifications are made. Then appropriate test cases are selected from the already existing test suite which covers all the modified and affected parts of the source code. We can add new test cases if required. In the end, regression testing is performed using the selected test cases.

Techniques for the selection of Test cases for Regression Testing

  • Select all test cases: In this technique, all the test cases are selected from the already existing test suite. It is the simplest and safest technique but not very efficient.
  • Select test cases randomly: In this technique, test cases are selected randomly from the existing test suite, but it is only useful if all the test cases are equally good in their fault detection capability which is very rare. Hence, it is not used in most of the cases.
  • Select modification traversing test cases: In this technique, only those test cases are selected that cover and test the modified portions of the source code and the parts that are affected by these modifications.
  • Select higher priority test cases: In this technique, priority codes are assigned to each test case of the test suite based upon their bug detection capability, customer requirements, etc. After assigning the priority codes, test cases with the highest priorities are selected for the process of regression testing. The test case with the highest priority has the highest rank. For example, a test case with priority code 2 is less important than a test case with priority code 1.

Tools for Regression testing

In regression testing, we generally select the test cases from the existing test suite itself and hence, we need not compute their expected output, and it can be easily automated due to this reason. Automating the process of regression testing will be very effective and time-saving. The most commonly used tools for regression testing are:

  • Selenium
  • WATIR (Web Application Testing In Ruby)
  • QTP (Quick Test Professional)
  • RFT (Rational Functional Tester)
  • Winrunner
  • Silktest

Advantages of Regression Testing

  • It ensures that no new bugs have been introduced after adding new functionalities to the system.
  • As most of the test cases used in Regression Testing are selected from the existing test suite, and we already know their expected outputs. Hence, it can be easily automated by the automated tools.
  • It helps to maintain the quality of the source code.

Disadvantages of Regression Testing

  • It can be time and resource-consuming if automated tools are not used.
  • It is required even after very small changes in the code.

Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads