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.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call