Search-Based Regression Testing Optimization

Search-Based Regression Testing Optimization

Nagwa R. Fisal, Abeer Hamdy, Essam A. Rashed
Copyright: © 2021 |Pages: 20
DOI: 10.4018/IJOSSP.2021040101
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Regression testing is one of the essential activities during the maintenance phase of software projects. It is executed to ensure the validity of an altered software. However, as the software evolves, regression testing becomes prohibitively expensive. In order to reduce the cost of regression testing, it is mandatory to reduce the size of the test suite by selecting the most representative test cases that do not compromise the effectiveness of the regression testing in terms of fault-detection capability. This problem is known as test suite reduction (TSR) problem, and it is known to be an NP-complete. The paper proposes a multi-objective adapted binary bat algorithm (ABBA) to solve the TSR problem. The original binary bat (OBBA) algorithm was adapted to enhance its exploration capabilities during the search for a Pareto-optimal surface. The effectiveness of the ABBA was evaluated using six Java programs with different sizes. Experimental results showed that for the same fault discovery rate, the ABBA is capable of reducing the test suite size more than the OBBA and the BPSO.
Article Preview
Top

Introduction

As software testing is known to be an expensive process, open-source software is usually released with several bugs; e.g., at the early releases of Mozilla and Eclipse, about 170 and 120 bugs respectively were reported daily (Abeer Hamdy & El-Laithy, 2020; Abeer Hamdy & Ellaithy, 2020; Abeer Hamdy & Ezzat, 2020). It is essential to design a cost-effective test plan that detects as many defects as possible before the release of the open-source software to ensure the quality of the delivered software. Especially, during the maintenance phase, enhancements and modifications are made to the software, which necessitates the development and execution of new test cases to test the modifications; in addition to the re-execution of the earlier test cases, to test the software stability after enhancements (Catal & Mishra, 2013). Testing the behavior of the whole system under test (SUT) before release and after each modification is called regression testing (Leung & White, 1989; Rosero, Gómez, & Rodríguez, 2016). The cost of regression testing increases over time due to the increase in the test suite size. So, it is important to find the smallest representative subset of the test suite without compromising the fault-detection capability of the original test suite (Gotlieb & Marijan, 2014; Nadeem & Awais, 2006). This problem is known as test suite reduction problem (TSR). One way to assess the capabilities of the reduced test suite, in discovering bugs, is through the utilization of a fault-based testing technique called mutation testing. Mutation testing calculates a score for the test suite which indicates its capabilities on discovering bugs in the SUT (Jia & Harman, 2010). The TSR problem is known to be a combinational optimization problem that can be described as a set covering problem which is known to be NP-complete (Gary & Johnson, 1979). In practice, there is no efficient solution for NP-complete problems. However, suboptimal solutions could be found using search-based optimization (SBO) algorithms (Chen & Lau, 1998). Bat algorithm (BA) is a recent and efficient SBO algorithm, which mimics the echolocation behavior of bats to find a global optimal solution (Yang, 2010). The performance of the BA was reported in the literature to be superior to other SBO algorithms such as the particle swarm optimization (PSO) (Eberhart & Kennedy, 1995; A Hamdy & Mohamed, 2019) and Genetic algorithms (GA) (Abeer Hamdy, 2014), over the majority of benchmark functions and real applications.

Complete Article List

Search this Journal:
Reset
Volume 15: 1 Issue (2024): Forthcoming, Available for Pre-Order
Volume 14: 1 Issue (2023)
Volume 13: 4 Issues (2022): 1 Released, 3 Forthcoming
Volume 12: 4 Issues (2021)
Volume 11: 4 Issues (2020)
Volume 10: 4 Issues (2019)
Volume 9: 4 Issues (2018)
Volume 8: 4 Issues (2017)
Volume 7: 4 Issues (2016)
Volume 6: 1 Issue (2015)
Volume 5: 3 Issues (2014)
Volume 4: 4 Issues (2012)
Volume 3: 4 Issues (2011)
Volume 2: 4 Issues (2010)
Volume 1: 4 Issues (2009)
View Complete Journal Contents Listing