Cost and coverage metrics for measuring the effectiveness of test case prioritization techniques

Regression testing is an important and also a very expensive activity in the software life cycle. To reduce the cost of regression testing, test cases are prioritized. One goal of test case prioritization technique is to increase a test suite's rate of fault detection and to reduce the cost of regression testing. In his paper G. Rothermel (9) has provided a metric, Average Percentage of Fault Detected (APFD), for measuring rate of fault detection during prioritization. This metric assumes that all test cases and fault costs are uniform. In practice, test case and fault costs may vary, and in such cases the previous APFD metric can be unsatisfactory. This paper presents a metric for assessing the rate of fault detection of prioritized test cases, APFDc, that incorporates varying test cases and fault costs. We have also cal- culated other new metrics like Average Percentage of Statement Coverage (APSC), Average Percentage of Branch Coverage (APBC),Average Percentage of Loop Coverage (APLC) and Average Percentage of Condition Coverage (APCC) based on the coverage criterion for the various prioritization techniques performed. Test cases are executed using JUnit tool. Code cover tool is used to find code coverage information. Test case prioritization is performed based on coverage and cost information. By injecting mutation faults effectiveness of prioritization is measured. Finally, we have implemented all the metrics considering a few standard java programs.

[1]  Gregg Rothermel,et al.  Prioritizing test cases for regression testing , 2000, ISSTA '00.

[2]  Gregg Rothermel,et al.  Prioritizing test cases for regression testing , 2000, ISSTA '00.

[3]  Gregg Rothermel,et al.  An empirical study of regression test application frequency , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[4]  Gregg Rothermel,et al.  Incorporating varying test costs and fault severities into test case prioritization , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[5]  Gregg Rothermel,et al.  On the Use of Mutation Faults in Empirical Assessments of Test Case Prioritization Techniques , 2006, IEEE Transactions on Software Engineering.

[6]  Mark Harman,et al.  Search Algorithms for Regression Test Case Prioritization , 2007, IEEE Transactions on Software Engineering.

[7]  Wei-Tek Tsai,et al.  Regression testing in an industrial environment , 1998, CACM.

[8]  Gregg Rothermel,et al.  Empirical studies of test case prioritization in a JUnit testing environment , 2004, 15th International Symposium on Software Reliability Engineering.

[9]  Adam A. Porter,et al.  A history-based test prioritization technique for regression testing in resource constrained environments , 2002, ICSE '02.

[10]  Gregg Rothermel,et al.  Test Case Prioritization: A Family of Empirical Studies , 2002, IEEE Trans. Software Eng..

[11]  David W. Binkley,et al.  Semantics Guided Regression Test Cost Reduction , 1997, IEEE Trans. Software Eng..