0 Shares 393 Views

Regression Testing in Software Development

January 26, 2021

Regression Testing in Software Development

One of the most popular techniques used in development is the iterative – incremental software process model [1] which is a combination of iterative design or iterative method and incremental build model. In this process models’ new functionalities are introduced repeatedly in each of the short development cycles. Adding new functionalities each time brings the risk of adding new errors. Regression testing (RT) [2] is effective in this software process model since it will check to see if previously developed and tested software still performing without an error. If the newly added functionality is creating errors for the previously developed one, this is called a regression. As you may have noticed this will add up to the number of tests needed each time the size of the software increases. This means the bigger the software size, the bigger the test cases, so consequently it will introduce new and additional costs for doing these tests. One of the most popular software development methodologies is agile software development which consists of very short life cycles and limited resources in each cycle. In this methodology adding regression testing at the end of each cycle can introduce unnecessary overhead and costs. In order to reduce these costs, many researchers have paid attention to optimize the execution of these tests. Their main focus has been on identifying the correct and appropriate test cases (TC) for regression tests. The writers have categorized regression testing techniques into four categories: minimization, selection, prioritization, and optimization. There are some other works in literature that focus on this topic and discuss RT techniques. For example in [4], the authors discuss RT techniques based on the prioritization approach. Another work [5] considers agile methodology and its requirements.

We categorize the techniques used for Regression testing into four main categories depicted in the figure below. We wouldn’t discuss Retest All approach here since it performs all possible test cases and the cost of such operation is tremendously high. Here in this work, we will try to briefly explain Regression testing techniques and introduce some automated regression testing tools.

regression testing types

What Is Regression Testing and Why Is It Important?

Regression Testing is a type of software testing which is used to make sure that the newly added or changed piece of the program, hasn’t inversely affected the existing program. We perform this type of testing to ensure that our program or application functionality hasn’t changed adding the new code. This type of testing empowers testers to identify any errors or bugs which may be caused by the changes to the code. But the question which comes to our mind is that when should we apply regression testing (RT). As a general rule of thumb, these tests should be taken on every new build, or in other words when something new is added up. There are various types of regression testings such as Unit RT, Partial RT, Complete RT, and Build Level RT. With the introduction of Agile methodology into software development, regression testing has also become a part of it under the continuous testing schema.
There are many advantages in Regression testing, but they may introduce excessive costs to the software development process. That’s why it has been well studied by many researchers.

regression testing

Functional testing doesn’t test the compatibility of new features added with the existing application, they only focus on the behavior of the new features and their capabilities. Therefore without Regression testing, it is difficult to find the root cause of the problem of your product. With rapid and automated regression testing your product team can get immediate feedback about bugs or defects early in the deployment cycle. This will prevent excessive cost and maintenance efforts, and therefore it will create a huge advantage in your deployment cycle.

Difference Between Re-Testing and Regression Testing

Re-testing as its name suggests means to “test again”. We perform re-testing when a bug or defect in the source code of our application is modified or fixed, or when the test cases fail or break in the final execution.

In contrast, regression testing is performed to figure out either a change or improvement recently introduced has caused any defects in the existing functionality of your application. You can consider Regression testing as discovering the side-effects of the new changes. Regression testing ensures the unification and integrity of the software.

In a typical software development pipeline, you first perform re-testing and then regression testing. While re-testing, as we mentioned earlier, focuses on broken or failed test cases, regression testing is applied to those who pass the re-testing, and its aim is so to find unexpected new bugs or malfunctioning caused by a new piece of code.

 

Automated Regression Testing

Companies use automation to benefit from the advantages regression testing brings for them. They use automated regression testing in their software development pipeline. In the long run, automated regression testing will bring up many benefits such as iteration simplification, unified standards across all projects, and saving time.

In automated regression testing, we automate most of our testing efforts and run all the tests we performed previously on new builds automatically. We create a test case set and we know the expected results, therefore automating these test cases would save us time and effort.

Finally, we would like to introduce some automated regression testing tools here, talking about the pros and cons of each of these tools is out of the scope of this article.

Selenium

Katalon Studio

IBM Rational Functional Tester

Silk Test

Watir

These automating tools are using record and playback logic. You will have to define and record the test cases. Definition of expected results also should be provided. Then you will have an insight either the desired results were derived or not.

References
[1] Craig Larman and Victor R Basili. Iterative and incremental developments.a brief history.Computer, 36(6):47–56, 2003.

[2] Wikipedia.Regression Testing, 2020 (accessed December 1, 2020) .https://en.wikipedia.org/wiki/Regressiontesting.

[3] Shin Yoo and Mark Harman. Regression testing minimization, selectionand prioritization: a survey.Software testing, verification and reliability,22(2):67–120, 2012.

[4] Emelie Engstr ̈om, Per Runeson, and Mats Skoglund. A systematic reviewon regression test selection techniques.Information and Software Technol-ogy, 52(1):14–30, 2010.

[5] Akira K Onoma, Wei-Tek Tsai, Mustafa Poonawala, and Hiroshi Sug-anuma. Regression testing in an industrial environment.Communicationsof the ACM, 41(5):81–86, 1998.

You may be interested

The Ultimate CDN (Content Delivery Network) Guide
CDN
3630 views
CDN
3630 views

The Ultimate CDN (Content Delivery Network) Guide

Nadia Benslimane - August 3, 2020

The Ultimate CDN Guide- Everything About Content Delivery Network You probably know what CDN (Content Delivery Network) stands for. You may also be aware of its full definition,…

The Essential CDN Glossary
CDN
8825 views
CDN
8825 views

The Essential CDN Glossary

Nadia Benslimane - November 21, 2019

Why Have We Decided To Create a CDN Glossary? Whether you are new to the world of CDN, or have been involved in it for years, there…

SERVICE MESH vs. API GATEWAY
Technology
69 views
Technology
69 views

SERVICE MESH vs. API GATEWAY

Emir Turna - April 6, 2021

SERVICE MESH vs. API GATEWAY API Gateway has become a sought-after part of the systems as API-based software has become widespread, accessing completely independent modules can be…

How Can AI Be Used to Beat Video Piracy
OTT
126 views
OTT
126 views

How Can AI Be Used to Beat Video Piracy

Tushar Sonal - March 25, 2021

Beating Video Piracy With AI Video streaming services are exploding rapidly. As a result, today, consumers of entertainment/ infotainment find it easier than ever before to access…

How CDN Providers are Meeting Surging OTT Demand
CDN
286 views
CDN
286 views

How CDN Providers are Meeting Surging OTT Demand

Tushar Sonal - March 2, 2021

CDN Providers and Surging OTT Demand The OTT, or Over-the-Top video content is a trend that’s been growing phenomenally over the last few years.  According to a…

Most from this category