Software testing is an essential part of quality assurance. Regression testing is one among the different types of software testing. Regression testing can be defined as a type of software testing performed every time when a new functionality is added, or any modification is done to the software product. This testing ensures that the old programming still works well with the new changes made. We do regression testing by repeated testing of already tested program to identify any defects or bugs due to the modifications done to the software.

How Can we Perform Regression Testing?

Software testing is an essential part of quality assurance. Regression testing is one among the different types of software testing. Regression testing can be defined as a type of software testing performed every time when a new functionality is added, or any modification is done to the software product. This testing ensures that the old programming still works well with the new changes made. We do regression testing by repeated testing of already tested program to identify any defects or bugs due to the modifications done to the software.

When is Regression Testing performed?

Regression testing is performed on four instances:

  • When a new function/code is added to the software, regression testing should be done to ensure that it is compatible with the old
  • When one product is integrated with another, regression testing is done to check both products are working fine after integration
  • After fixing pre-existing bugs, the system is regression tested to ensure that the bug fixing hasn’t introduced new bugs
  • When changes are done to the existing functionality

Types of Regression Testing

Regression testing can be done in many ways. It depends on factors like type of changes introduced, type of bugs fixed etc. Here are some of the common types of Regression testing done:

  • Corrective Regression testing – This is done when there are no changes introduced to the product’s specification. Testing can be conducted using the existing test cases.
  • Retest-all Regression Testing – This involves testing of all aspects of a product/application and reusing all the test cases. This is time consuming and not advisable when small changes are introduced to the existing application.
  • Selective Regression Testing – This is done to analyse the impact of a new code added to the existing software. Here, a subset from the existing test cases is run.
  • Progressive Regression Testing – This type of testing works well when changes are made in the product specification and new test cases are designed.
  • Complete Regression Testing – This is the best method to be used when multiple changes are done to the existing code. This is helpful in identifying unexpected issues.

Regression testing is like a verification method and it can be carried out in all phases of testing like Unit testing, Integration testing and Acceptance testing. Since Regression testing is carried out repeatedly, it will be very tedious to do it manually. So, regression tests are mostly automated. Here are some of the best regression testing tools available that helps in the reduction of execution time and cost:

  • Selenium
  • Watir
  • Winrunner
  • Regression Tester
  • vTest

Benefits of Regression Testing
Regression testing helps in detecting bugs caused by modifications to a software product/application.