< Return to Feed
Donovan Lyons - 09.18.2019

The Importance of Regression Testing

Imagine for a moment that Amazon has added new features to their checkout process. The new program is released, and within a day undetected bugs affecting the checkout process are discovered. The new changes must be rolled back, Amazon potentially loses millions as coding bugs cause customers to receive the wrong products or be charged for items they didn’t order. In a worst-case scenario, the undetected bug can cause Amazon's stock price to drop and a tidal wave of irate customers calling the customer support line.

This scenario is possible, but easily avoided thanks to regression testing. Regression testing is a Quality Assurance process used to ensure that previous code still works once new code changes are added and pushed to the correct environment.

So why is regression testing so important to the software development lifecycle and why is it always used within the testing lifecycle? Because when new code changes are implemented, there's a chance that the new code could cause a new bug to surface on existing features that previously passed testing. This could cause significant issues when development pushes the new code to production to the live site. When regression testing isn’t included in the testing focus, the effects can be drastic and cause millions of dollars in lost revenue and lose the affected company new or existing customers.

All of which makes regression testing an essential step in delivering the highest quality product. Regression testing can be done in 3 different ways.

The first method is to retest your entire test suite or test case “bucket”. This process requires more time and resources to complete it, but it's a sure way of feeling confident when testing is complete.

The second way is “regression testing selection”. This process doesn’t require testing your entire test suite. Test cases are broken down by their usability for the next regression cycle. If you have test cases that won’t be used anymore, we call those “obsolete” and those test cases can be set aside.

The third method for regression testing code changes is the “prioritization process.” This method requires prioritizing the test cases by critical functionalities, core features, boundary values and business impact. By using this process, testing times can be greatly reduced and key areas pinpointed during this regression cycle.

Whichever regression testing technique is applied, it’s an important step in promoting product quality and keeping core functions operational. There may be costs associated with regression testing, but ultimately it can significantly reduce time to market and overall costs.

Perhaps the greatest benefit of regression testing can be found in maintaining a company’s good reputation unsullied by software glitches that can cause failed online transactions or, in extreme cases, may even lead to regulatory fines.

At Sagepath, our Quality Assurance team performs manual and automated QA testing to ensure flawless delivery of products to our customers. If your enterprise is focused on changing or upgrading your online presence, get in touch to learn how our experienced analysts can ensure the final product’s features and functionalities meet customer expectations for quality.