Test Case Prioritization Based on Path Complexity
Tehseen Afzal, Aamer Nadeem, Muddassar Azam Sindhu, Qamar uz Zaman
Abstract
Tehseen Afzal, Aamer Nadeem, Muddassar Azam Sindhu, Qamar uz Zaman
Abstract
Software undergoes many modifications after its release. Regression testing is performed to ensure that the modification has not introduced any errors in the software and the software continues to work correctly. Regression testing is an expensive process. Three types of cost reduction techniques are used in regression testing. These techniques i.e., test case selection, test suite minimization and test case prioritization are used to reduce the cost of regression testing and improve the rate of fault detection. The focus of our research is on test case prioritization. Instead of minimizing test suite or selecting fewer test cases, test case prioritization orders test cases in such a way that the test cases detecting more faults are executed earlier. In case of limited resources, only top priority test cases are executed to ensure the reliability of the software. In this research, we have proposed an approach which uses path complexity and branch coverage to prioritize test cases based on assumption that the complex code is more likely to contain faults. Halstead's metric has been used to calculate the path complexity of the test cases. Proposed approach is compared with branch coverage based prioritization technique using some example programs. The results show that proposed approach outperforms existing branch coverage based approach in terms of APFD (Average Percentage of Faults Detected) up to 18% on average.
OpenAlex reports 6 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Software undergoes many modifications after its release. Regression testing is performed to ensure that the modification has not introduced any errors in the software and the software continues to work correctly. Regression testing is an expensive process. Three types of cost reduction techniques are used in regression testing. These techniques i.e., test case selection, test suite minimization and test case prioritization are used to reduce the cost of regression testing and improve the rate of fault detection. The focus of our research is on test case prioritization. Instead of minimizing test suite or selecting fewer test cases, test case prioritization orders test cases in such a way that the test cases detecting more faults are executed earlier. In case of limited resources, only top priority test cases are executed to ensure the reliability of the software. In this research, we have proposed an approach which uses path complexity and branch coverage to prioritize test cases based on assumption that the complex code is more likely to contain faults. Halstead's metric has been used to calculate the path complexity of the test cases. Proposed approach is compared with branch coverage based prioritization technique using some example programs. The results show that proposed approach outperforms existing branch coverage based approach in terms of APFD (Average Percentage of Faults Detected) up to 18% on average.
Key concepts: Regression testing, Computer science, Test suite, Test Management Approach, Test case, Reliability engineering, Code coverage, Software regression