Regression Testing

Regression Testing

What is Regression Testing

Definition – Regression Testing is done to check that existing functionality is working fine whenever some new functionality is added to the Application.

Examples of Regression Testing

Let’s take an example of an eCommerce Application. Let’s say We are working on a new Project and we have to test some features in our project, which are new features. New Features means, the features are developed now and ready for testing for the very first time. Below is the List of Features, that we are going to test. We will call them New Features.

New Features

  1. Create Home Delivery Order
  2. Search for a Product
  3. Browse a Product
  4. Checkout (Shipping Address, Shipping Method, Payment Method)
  5. Create a Return.

So, Let’s say, We have tested all these Features, and all are passed. So Now, when more new functionalities or Features will be added then the above features will become existing features.

So, Let’s say that there are 2 new features added.

  1. Create a Pick up Order.
  2. Create Exchange.

Now, Let’s see the list of New Features and Existing Features.

New FeaturesExisting Features
1. Create a Pick up Order.
2. Create Exchange.
1. Create Home Delivery Order
2. Search for a Product
3. Browse a Product
4. Checkout (Shipping Address, Shipping Method, Payment Method)
5. Create a Return.

So, Let’s say We have tested these 2 new features and we found them passed. Now, We don’t know that the existing features are working fine or not, because we didn’t test them, and if we don’t test the existing features, then there is a chance of existing features failure, because there is a beliefe that New Features implementation might impact existing features, So whenever some new feature is implemented, then we should test Existing features along with New Features.

So, after testing the new features, We will have to check whether our existing features are working fine or not. So, we have to test our existing features as well. So, let’s say that after testing the existing features, we found that the 2 existing features are not working fine.

Those 2 Features are

  1. Create Home Delivery Order – Create Pick Order has impacted this
  2. Create a Return. – Create Exchange Order has impacted this.

So, We will have to raise defect for these existing functionalities issue.
This is how Regression Testing is done.

We can define Regression Testing as

Definition – Regression Testing is done to check that existing functionality is working fine whenever some new functionality is added to the Application

When to do Regression Testing

Regression Testing is generally done when

  1. New functionality is added to the application – Whenever a new functionality is added to the application, then it may impact the existing functionality, and we should do a Regression Test to make sure existing features are working fine.
  2. After a defect is fixed – Whenever Development team fixes a defect, then this new fix might impact the existing functionality, and we should do a Regression Test to make sure existing features are working fine.
  3. In case of change requirement – Whenever some change happens in system, such as our application migrates from one environment to other environment, then as part of Migration Testing, we should do a Regression Test to make sure existing features are working fine.

Retesting vs Regression Testing

Retesting – What is ReTesting. Retesting simply menas, testing the same test cases again. But, why will someone test the same test case again, and the answer is, Whenever we test a test case for the first time, and we find it fail, then we log a defect, and then the developer fixes the defect, and then we have to test the test case again, and this is called Retesting.

Now, Let’s see the difference between Retesting and Regression testing

RetestingRegression Testing
Retesting means Testing a test case again.Regression Testing means identifying the impact on existing features due to any new change.
Retesting is done only when a defect is foundRegression Testing is done always, when some new feature is added, or some defect is found.
Retesting is not time consuming as it is specific to one test case.Regression Testing is time consuming as we have to test many features as part of Regression Testing
Retesting is done on failed test casesRegression Testing is generic testing.

Importance of Regression Testing

The importance of regression testing can be highlighted in the following ways:

  1. Ensures Stability: Regression testing helps in ensuring that the software remains stable even after modifications or changes are made to it. It verifies that existing functionality has not been impacted by changes.
  2. Saves Time and Money: Regression testing can help us in saving time and money because we can catch defects early in the development cycle. If defects are caught early, then it is cheaper to fix them.
  3. Increases Confidence: Regression testing increases the confidence in all the stakeholders by showing that the existing features have not been impacted and the Software is stable.
  4. Improves Quality: Regression testing improves the quality of software by identifying defects early and ensuring that they are fixed before the software is released to users.

Overall, regression testing is a critical component of software testing that ensures the stability and quality of software applications.

Summary

We have covered below topics in this session

  1. What is Regression Testing
  2. Example of Regression Testing
  3. When to do Regression Testing
  4. Retesting vs Regression Testing
  5. Importance of Regression Testing

Question

List out the difference between Regression Testing and Retesting ?

Leave a Comment