Regression Testing (Part-2)
Tags: apacheage, postgres, age
Published: 2023-07-21 11:53:24

**Why Need Of Regression Testing?**

1. Change in requirements and code is modified as per the changed requirements
2. Added new features in product
3. Bug fixing
4. Fixing of performance related issues

**Techniques of Regression Testing**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hvz1m8hdgyggidgp4asy.png)

**Retest All:** Re execute all the tests in the existing test bucket. This requires huge time and resources and that’s why it is very expensive.
**Regression Test Selection:** Execute the selected part of test suites i.e. re-usable test cases or obsolete test cases.
**Prioritization Of Test Case:** Prioritization of test cases depends on business impact and used functionalities.

**Types of Regression Testing:**

**Corrective:** Corrective regression testing is used when there are no changes introduced in the existing software/application/product specification. The existing test cases can be used to conduct the desired test.

**Progressive:** This testing is used in situations when the modifications are added in the specifications of the product and new test cases are designed. Progressive regression testing works effectively when there are changes done in the software/application specifications as well as new test cases are designed.

**Selective:** We utilize a subset of the current experiments to cut down the retesting cost and effort in selective regression testing. In this case if any changes are done to any part or module of software application/product, e.g. capacities, factors and so on and afterward a test cases must be re-executed. Here is the difficult part to determine the conditions between an experiment and the program elements it covers. It is done to observe the effect of new code development to the existing code of the application. When this type of relapse testing is directed, a subset from existing experiments is utilized, to reduce the effort needed for retesting.

**Retest-All:** Retest-all strategy is very time taking because in this testing we reuse all tests which results in the execution of avoidable test cases. This strategy is not much useful when any small modification or change is done to the application. Retest-all strategy involves the testing of all aspects of a particular application as well as reusing all test cases even where the changes have not been made. This testing is not advisable when there is a small change in the existing code.

**Complete:** Complete regression testing is very useful when multiple changes have been done in the existing code. This testing is specially used when multiple new changes has certain impact on software’s root code. Performing this testing is highly valuable to identify unexpected bugs.

**Best Practices For Regression Testing** 
We may adopt following practices to get the good results:

**Get a Fresh Perspective:** Remember we emphasized on the importance of test cases? So make sure to keep them up-to-date so they reflect the current state of your application. That also includes new features added and specification changes

**Know What Works Best:**  Make sure to keep running the tests that gives you consistent results on a regular basis.

**Prioritizing Task or Cases:** The high-load areas require more thorough testing as they incorporate crucial functionality to the system.

**Conclusion:** Regression testing is an important part for improving software product quality and enhancing the end-user experience by making sure that code changes do not impact the older or existing product functionality. Using appropriate regression testing tools eliminates software defects early in the software deployment cycle.

**Recommendations: **
https://www.spiceworks.com/tech/devops/articles/what-is-regression-testing/
https://www.javatpoint.com/regression-testing