Hybrid Regression Testing Based on Path Pruning

Hybrid Regression Testing Based on Path Pruning

Varun Gupta (Jawaharlal Nehru Govt. Engineering College, Sundernagar, India), Durg Singh Chauhan (Uttarakhand Technical University, Dehradun, India) and Kamlesh Dutta (Department of Computer Science and Engineering, National Institute of Technology, Hamirpur, India)
DOI: 10.4018/IJSSOE.2015010103

Abstract

Regression testing has been studied by various researchers for developing and testing the quality of software. Regression testing aims at re-execution of evolved software code to ensure that no new errors had been introduced during the process of modification. Since re-execution of all test cases is not feasible, selecting manageable number of test cases to execute modified code with good fault detection rate is a problem. In past few years, various hybrid based regression testing approaches have been proposed and successfully employed for software testing, aiming at reduction in the number of test cases and higher fault detection capabilities. These techniques are based on sequence of selections, prioritizations and minimization of test suite. However, these techniques suffer from major drawbacks like improper consideration of control dependencies, neglection of unaffected fragments of code for testing purpose. Further, these techniques have been employed on hypothetical or simple programs with test suites of smaller size. Present paper proposes hybrid regression testing, a combination of test case selections, test case prioritizations and test suite minimization. The technique works at statement level and is based on finding the paths containing statements that affects or gets affected by the addition/deletion or modification (both control and data dependency) of variables in statements. The modification in the code may cause ripple effect thereby resulting into faulty execution of the code. The hybrid regression testing approach is aimed at detecting such faults with lesser number of test cases. Reduction in number of test cases is possible because of the decreased number of paths to be tested. A web based framework to automate and parallelize this testing technique to maximum extend, making it well suited for globally distributed environments is also proposed in the present paper. Framework when implemented as a tool can handle large pool of test cases and will make use of parallel MIMD architectures like multicore systems. Technique is applied on prototype live system and results are compared with recently proposed hybrid regression testing approach against parameters of interest. Obtained optimized results are indicators of effectiveness of approach in terms of reduction in effort, cost as well as testing time in general and increment delivery time in particular.
Article Preview

1. Introduction

Regression testing is aimed at the execution of new versions of software, in order to find errors in newly added or modified parts of software and also to ensure that no new errors have been introduced in previously tested code. Software testers execute software against the test cases and match the output obtained with the expected outcome. The number of test cases could be so large that the testing activity may take very long time and effort, making this task itself infeasible. Also, due to the limited resources available, it is not feasible to execute all the test cases. The tester must select most influential test cases which are representatives of all the errors in the software.

In software industry, various approaches are adopted to conduct regression testing, such as test cases selection, prioritization and minimization. Selections results in reduction in size of test suites by selecting test cases that executes the modified parts of the code (Biswas et al., 2011). Thus, regression testing by test cases selection is a modification aware testing that selects only those test cases that are associated with changed parts (Yoo and Harman, 2007). Regression prioritization creates the order of test cases being arranged in order of decreasing priorities, while minimization deletes non-influential test cases from larger test case array. Research had shown that the test case prioritizations also improves fault detection rate. (Rothermel et al., 1999) had measured efficiency of nine test case prioritization techniques in terms of fault detection rate. As fault detection metric, average of the percentage of faults detected (APFD) was employed. Value of APFD was found high for every prioritization technique although relative APFD for various techniques varied.

In recent years, hybrid approaches (Aggarwal, Singh and Kaur, 2004; Gupta and Chauhan 2011a), with a combination of selection and prioritization methods have been proposed. Selected test cases are prioritized and executed for testing purpose. Aggarwal, Singh and Kaur (2004) presented hybrid regression testing approach which prioritizes test cases on the basis of number of lines of code covered by each test case. Authors have hypothesized that; larger the coverage of test case, greater is its priority. Process of prioritization continues until all lines of code are covered by selected test cases. The work was extended by Malhotra, Kaur and Singh (2010). Proposed technique selected test cases from test suite containing prioritized test cases. Selected test cases were further prioritized. According to the authors, test case of higher priority is used first till resources are available or confidence about correctness is build up to a considerable good extend. Singh, Kaur and Suri (2010) presented hybrid regression testing technique that employs various levels of selections and prioritization. This technique first selects the test cases that execute the changed variables or variables computed from these changed variables. Prioritization is again performed depending on the value of dependency count of variables.

Complete Article List

Search this Journal:
Reset
Open Access Articles: Forthcoming
Volume 9: 4 Issues (2019): Forthcoming, Available for Pre-Order
Volume 8: 4 Issues (2018): 1 Released, 3 Forthcoming
Volume 7: 4 Issues (2017)
Volume 6: 4 Issues (2016)
Volume 5: 4 Issues (2015)
Volume 4: 4 Issues (2014)
Volume 3: 4 Issues (2012)
Volume 2: 4 Issues (2011)
Volume 1: 4 Issues (2010)
View Complete Journal Contents Listing