Improving Requirements Coverage in Test Case Prioritization for Regression Testing

Regression testing is performed whenever software undergoes modifications, which may be due to bug fixes or feature enhancements. The purpose of regression testing is to ensure that modifications to the code do not affect the existing functionality. Regression testing is costly because the test suite might be too large to execute in full. To reduce this cost, regression testing has three main approaches, i.e., test suite minimization, test case selection and test case prioritization. Test case prioritization does not eliminate any test case rather it finds an ordered list of test cases to maximize the fault detection rate. Black box prioritization prioritizes test cases based on requirements coverage, while white box approaches prioritize test cases based on code coverage. The focus of this paper is on the black box test case prioritization using requirements coverage for regression testing. Black box prioritization is independent of the code modifications, therefore, it can be started early. The proposed approach prioritizes test cases based on the complexity of requirements covered. The existing requirements based prioritization techniques assign equal importance to each requirement when prioritizing test cases based on requirements coverage, which may not maximize fault detection rate because complex requirements may need to be tested with multiple test cases. Our proposed approach assigns weights to the requirements based on their complexity, and test cases are prioritized using these weights. Comparison with existing approach shows that the proposed approach results in better prioritization of test cases because of higher average percentage of fault detection (APFD).

[1]  Laurie A. Williams,et al.  Towards the prioritization of system test cases , 2014, Softw. Test. Verification Reliab..

[2]  Xiaolin Wang,et al.  Test case prioritization based on requirement correlations , 2016, 2016 17th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD).

[3]  Daniel Sundmark,et al.  Towards Earlier Fault Detection by Value-Driven Prioritization of Test Cases Using Fuzzy TOPSIS , 2016, ITNG 2016.

[4]  Gregg Rothermel,et al.  A framework for evaluating regression test selection techniques , 1994, Proceedings of 16th International Conference on Software Engineering.

[5]  Joseph Robert Horgan,et al.  A study of effective regression testing in practice , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

[6]  Luciano Baresi,et al.  An Introduction to Software Testing , 2006, FoVMT.

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

[8]  Yves Le Traon,et al.  Comparing White-Box and Black-Box Test Prioritization , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[9]  Byoungju Choi,et al.  A Test Case Prioritization through Correlation of Requirement and Risk , 2012 .

[10]  Tsong Yueh Chen,et al.  Dividing Strategies for the Optimization of a Test Suite , 1996, Inf. Process. Lett..

[11]  Hyunsook Do,et al.  Test Case Prioritization Using Requirements-Based Clustering , 2013, 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation.

[12]  Rajiv Gupta,et al.  A methodology for controlling the size of a test suite , 1990, Proceedings. Conference on Software Maintenance 1990.

[13]  Byoungju Choi,et al.  Effective Regression Testing Using Requirements and Risks , 2014, 2014 Eighth International Conference on Software Security and Reliability.

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

[15]  George Mason,et al.  Procedures for Reducing the Size of Coverage-based Test Sets , 1995 .

[16]  Gregg Rothermel,et al.  A controlled experiment assessing test case prioritization techniques via mutation faults , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[17]  Gregg Rothermel,et al.  Test case prioritization: an empirical study , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[19]  S. A. Sahaaya Arul Mary,et al.  Factor oriented requirement coverage based system test case prioritization of new and regression test cases , 2009, Inf. Softw. Technol..