Article Preview
Top1. 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.