Articles

What is Regression Testing? Definition and examples of automated regression testing

What is regression testing? The most straightforward and helpful definition says that it is a software maintenance activity. It involves checking the already tested functionalities and features after some modifications happen to the system. These could be deliberate but they can also be a by-prod3uct of a system update or a change that happened elsewhere in the system.


Regression testing teams are therefore responsible for investigating if the existing functionalities have not been negatively impacted during software changes. They run thorough checks to see if the system is running the same way as before the changes were introduced. They are looking for correlations within the system and enhance their knowledge on how developing new features and implementing new functionalities might influence the existing system – or even break it.


The purpose of the regression testing is to catch any bugs in time, before they accidentally break a new build, but also to make sure that the bugs killed don’t come back as zombies (so basically stay dead). That is why regression testing also involves re-running testing scenarios and re-using the regression test cases that were originally scripted when certain problems were first fixed. As a result, you make sure that no changes have resulted in a system regression or caused some functionalities to fail. 

Hence, regression testing has a very wide scope. It is often executed in several different, long testing cycles. Any knowledge gained from the result of each test cycles helps pinpoint the are where more testing is necessary for any newly introduced changes. Some regression testing can be obviously performed manually (for small projects). However, in most cases, repeating a suite of regression tests every time, let’s say an update happens, is too much consuming. Plus, it is a very complex endeavor. That is why an automated regression testing tool is more often than not a natural choice (and business requirement). Further on, we will discuss what a perfect regression testing tool should be like, why automation of regression testing is a must and what benefits such testing brings, both short- and long-term. 

Chapter #1

Example of regression testing

BG-Chapter
Regression testing, as complex as it is, requires a different approach depending on what you want to check. You might need one testing methodology if you want to run test for business critical functions only but yet a different one to test the whole system. Regression test cases design can impact the effectiveness of the process itself. So, if you are wondering how to perform regression testing, here are the most popular regression testing approaches:
  • Retest All

    this approach is used by the testing teams to define the number of changes and their general impact on the system functionalities. It is a required step in the deployment stage of every release. The Retest All approach is very often adopted as the final stage of before the release of the built. Because it is an all-round method, it is very time-consuming. That is why it is best to make the regression test cases re-usable and the test runs automated as much as possible. 

  • Regression Test Selection

    contrary to Retest All, this technique allows to select only some regression test cased from the test suite and execute these to verify if the modified code has affected the software application (and to what extent). Generally, regression test cases in this approach are divided into two categories: reusable regression test cases – that can be used in further regression testing cycles – and obsolete test cases – the ones that can only be used in one testing cycle. 

  • Test Case Prioritization

    in some cases, the regression test plan requires you to prioritize your regression test cases. There are certain criteria which you have to take into consideration when prioritizing them. These are: business impact (criticality), failure rate and gradually used functionalities. High priority regression test cases might also include those that relate to aspects of customer-facing operations or newly added functionalities that’d better be checked first. 

Chapter #2

Regression testing benefits

BG-Chapter

A lot of companies try to get by without performing scheduled regression testing. Instead, they opt to test only the critical system functions to make sure that they work as expected. Then, the development teams often work on an assumption that the functions will work the same after introduced modifications or software updates.


However, it is extremely important for testers and developers to understand the big picture of the situations. Even seemingly insignificant alterations or tweaks to the code can turn the functionalities upside down. That is an undeniable benefit of regression testing – to safeguard your system.

Think of regression testing as a safety net for your system – it prevents any inadvertent problems with functions that without the testing might stop working.
 
When talking about the benefits of regression testing, let’s also focus on the automated tests as these are most commonly used nowadays (ca. 75% of businesses – both in cloud and on-prem) use automated regression testing). Most companies who have invested in regression test automation were able to cover minimum 30% processes (in most cases with the appropriate tool and methodology test coverage, however, can be as high as 70%). Even considering the dynamic nature of today's operational reality that requires frequent software updates and flexibility to changing business requirements, keeping automated scripts that can be regularly updated in the long run is still less costly and effort-consuming method than manual regression testing. How to perform regression testing right? Using a carefully considered regression testing tool is a good starting point and an important part of your testing project.
Chapter #3

Regression testing tool

BG-Chapter

What is regression testing best testing technique? There is no simple answer. 

The choice is yours – you can either run regression test manually (both inefficient and costly) or use an automated regression testing tool. Manual execution of regression tests requires significant involvement of multiple users in preparation of test suites and then running tests, not to mention the gigantic amount of time required. An automated regression testing tool is a great helping hand for testing and developing teams. 

However, the choice of automated testing software makes it often difficult to make. With systems such as ERP, you need a tool that allows:

  • repeatability

    due to consistent and thus predictable performance, automated tests are highly repeatable. With modern ERP systems such as MS Dynamics 365, creating new regression test suites anew with every new release and periodic update would not only be extremely time-consuming but also challenging in terms of resources and workforce. Automated regression tests eliminate the need for involving the whole testing team in running continuous iterations of each of the scripted tests.

  • minimum (if any) supervision

    automated regression tests can be recorded by any business user. Their no-code nature makes it possible to be executed even by users with no programming skills. All they need is a knowledge of their business processes.

  • automated regression tests can be run 24/7.

    The so called “Sunday tests” take place during nights so there is no need to involve human resources for test execution at all. This makes it not only very convenient but also far less costly. 

  • stability

    manual regression testing requires a high level of expertise, attention to details and tons of patience. But with the software development and a growing number of functionalities, regression testing gets more and more prone to (human) errors. Using an automated testing tool guarantees that the system is thoroughly and precisely checked, with the same level of focus, expertise and speed.

  • easy maintenance

    an automated regression testing tool should allow simple creation, update and modification of your test scripts. Ideally, if regression testing scripts could be merged, cloned and modified as you go. With certain automation testing tools, you are able to take full control of the test scripts and add, delete, move or copy the necessary steps if needed. You might also want to double check if the regression testing tool that you are considering allows for grouping script into larger testing projects – with regression tests, you need a tool that allows a lot of flexibility and reusability. 

  • Reusability

    when talking about reusability, with regression test you need it a lot. Go for a tool allowing 100% reusability, especially for CRM or ERP systems. Consider two aspects of reusability of your tool. Firstly, it should allow you to reuse a recorded test script umpteen time, in exactly the same setup, by any other user and in a different testing context, too (e.g. during UAT testing). Secondly, make sure that the tests themselves can be re-used safely. With certain tools, using the same test twice or ten times might cause some data integrity issues and even require building a new database. And last but not least, check for reusability for data and process verification during rollouts. You need to be able to check if all the data is correct and if system configuration and its customizations match the business requirements 1:1.

Chapter #4

How to do automated regression testing?

BG-Chapter

What is regression testing without automation? Certainly a pain in the… neck. Of course, test automation has its limitations. However, automated regression testing reduces the stress levels of programming teams to a large extent. It makes regression testing much easier and faster. With just a few clicks, you can establish the testing parameters, prepare regression test cases accurately and check for any inconsistencies whenever you need to. Automated regression testing tool also comes with value added enhancements. You can view the testing logs and documentation as you go and have access to detailed test results. A drastic reduction in resources that you would need to check for bugs manually is what makes automated regression testing more and more popular. 


But how to perform regression testing with an automated testing tool? For automated regression testing to be effective, you need to have a comprehensive testing methodology. You need to seriously consider your testing coverage and what needs to be incorporated into regression test cases. You need to prioritize them, then. A regression testing strategy is a must so no aspect of your software application goes unchecked. If you plan to test complex environments such as an ERP application, make sure that regression testing is a part of iterative deployment testing schedule. 


With a solid regression testing strategy, you also make sure that the testing project does not go over budget. The testing teams is on track and on the same page and, most importantly, you save the operational side of things but not letting the bugs fall through the cracks.


Careful planning is what you definitely need when thinking about your regression testing. Make it a part of your quality assurance process. And more importantly, make the decision makers aware how important regression testing is for business continuity. You need to think of it as a prevention method. Although regression testing – be it manual or automated – does call for substantial financial investment, undetected defects in the application will cost you much more. No regression testing strategy in place, running UATs only or using regression test cases but only ad hoc whenever an issue occurs – this is a so-called “put-out-fires approach”. What this means is that you only react once the problem happens. The lack of a proactive approach – which for business systems is regression testing – will definitely have negative consequences for the health and stability of the software and in the long run, for the company’s operations and profits.