An Efficient Regression Test Suite Optimization Approach Using Hybrid Spider Monkey Optimization Algorithm

An Efficient Regression Test Suite Optimization Approach Using Hybrid Spider Monkey Optimization Algorithm

Arun Prakash Agrawal, Ankur Choudhary, Parma Nand
Copyright: © 2021 |Pages: 24
DOI: 10.4018/IJSIR.2021100104
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Regression testing validates the modified software and safeguards against the introduction of new errors during modification. A number of test suite optimization techniques relying on meta-heuristic techniques have been proposed to find the minimal set of test cases to execute for regression purposes. This paper proposes a hybrid spider monkey optimization based regression test suite optimization approach and empirically compares its performance with three other approaches based on bat search, ant colony, and cuckoo search. The authors conducted an empirical study with various subjects retrieved from software artifact infrastructure repository. Fault coverage and execution time of algorithm are used as fitness measures to meet the optimization criteria. Extensive experiments are conducted to evaluate the performance of the proposed approach with other search-based approaches under study using various statistical tests like m-way ANOVA and post hoc tests including odds ratio. Results indicate the superiority of the proposed approach in most of the cases and comparable in others.
Article Preview
Top

1. Introduction

Increased reuse of software artifacts at different levels of software projects and evolutionary software development have made it necessary to maintain software for increasing return on investment, and so the need of regression testing. No software product can be released without adequate testing. It has been observed that finding bugs after release is hundred times costlier than during development or maintenance phase (Leung & White, 1989). Effective software testing approaches are always required as testing of software becomes very expensive with software evolution.

Regression testing is one such activity that ensures the absence of any adverse effect of modifications performed on the previously working version of software (Reid, 2005). Re-execution of complete test suite is however simplest but costliest approach to ensure software quality. Hence, optimizing testing effort is necessary and various techniques have been proposed to achieve this. Previous literatures revealed that test effort might be reduced by selecting test cases that demonstrate a better fault revealing ability from the existing test suite (Gregg Rothermel & Harrold, 1997a)(M.J. Harrold & Souffa, 1988)(Binkley, 1997b)(Shin Yoo & Harman, 2007)(Graves, Harrold, Kim, Porters, et al., 2001) (Xu et al., n.d.)(Mirarab et al., 2012)(Loiola & Maia, 2009). Regression test case selection (RTS) techniques attempt to find some test cases from previously executed test suite for software under test (SUT) that maximize fault detection ability while minimizing cost. Selection of test cases therefore becomes a challenging task and helps in maintaining cost effectiveness during regression testing (Kazmi et al., 2017). However identification of modification traversing test cases itself is a challenging task. Test case prioritization and test suite minimization are other two approaches for test suite optimization (S Yoo & Harman, 2007). These approaches have their own limitations such as prioritization techniques don’t reduce the test suite to re-execute and minimization techniques permanently remove test cases from test suite that makes it unusable for previous releases.

We confront a number of optimization problems in every walk of our life from morning till evening so principle of optimality is natural for us as human beings (Smith & Kapfhammer, 2009). Optimization is nothing but finding an equilibrium between goals and constraints as we always want to minimize cost and maximize benefit (Rao & Kumar, 2015). Search based software testing is an area of research that applies artificial intelligence techniques to solve such complex testing problems by formulating them as search problem (Li et al., 2007). Humans are trying to learn from natural phenomena to solve these problems and are exploring nature inspired algorithms since last three and a half decades. Literature reveals that metaheuristic algorithms have shown a greater impact in optimizing testing effort and have been utilized to optimize various testing techniques successfully (Girgis, 2005)(Mann et al., 2018).

Complete Article List

Search this Journal:
Reset
Volume 15: 1 Issue (2024)
Volume 14: 3 Issues (2023)
Volume 13: 4 Issues (2022)
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: 4 Issues (2015)
Volume 5: 4 Issues (2014)
Volume 4: 4 Issues (2013)
Volume 3: 4 Issues (2012)
Volume 2: 4 Issues (2011)
Volume 1: 4 Issues (2010)
View Complete Journal Contents Listing