Test case selection-prioritization approach based on memoization dynamic programming algorithm

Abstract Context In the software industry, selection and prioritization techniques become a necessity in the regression and validation testing phases because a lot of test cases are available for reuse, yet time and project specific constraints must be respected. Objective In this paper we propose a dynamic programming approach in solving test case selection-prioritization problems. We focus on low memory consumption in pseudo-polynomial time complexity applicable in both selection and selection-prioritization problems over sets of test cases or test suites. In dynamic programming optimization solutions, huge amounts of memory are required and unfortunately the memory is limited. Therefore, lower memory consumption leads to a higher number of test cases to be involved in the selection process. Method Our approach is suited for medium to large projects where the required memory space is not higher than the order of tens of GBytes. We employed both objective methods as the dynamic programming algorithm and subjective and empiric human decision as defining the prioritization criteria. Furthermore, we propose a method of employing multiple project specific criteria in evaluating the importance of a test case in the project context. Results To evaluate the proposed solution relative to the classical dynamic programming knapsack solution, we developed a suite of comparative case studies based on 1000 generated scenarios as close as possible to real project scenarios. The results of the comparative study reported the proposed algorithm requires up to 400 times less memory in the best-case scenarios and about 40 times less memory in average. Conclusion The solution delivers optimal results in pseudo-polynomial time complexity, is effective for amounts of test cases up to the order of millions and compared with the classical dynamic programming methods leads to higher number of test cases to be involved in the selection process due to reduced memory consumption.

[1]  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).

[2]  R. Bellman Dynamic programming. , 1957, Science.

[3]  Márcio Eduardo Delamaro,et al.  Test Case Selection: A Systematic Literature Review , 2014, Int. J. Softw. Eng. Knowl. Eng..

[4]  Hermann Ney,et al.  The use of a one-stage dynamic programming algorithm for connected word recognition , 1984 .

[5]  Antonio Ruiz Cortés,et al.  Multi-objective test case prioritization in highly configurable systems: A case study , 2016, J. Syst. Softw..

[6]  GhaniImran,et al.  Effective Regression Test Case Selection , 2017 .

[7]  Dayang N. A. Jawawi,et al.  Test case prioritization approaches in regression testing: A systematic literature review , 2018, Inf. Softw. Technol..

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

[9]  Michael Short,et al.  Agile Foundations: Principles, practices and frameworks , 2015 .

[10]  Stuart Dreyfus,et al.  Richard Bellman on the Birth of Dynamic Programming , 2002, Oper. Res..

[11]  Orit Hazzan,et al.  The Agile Manifesto , 2014 .

[12]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[13]  Ovidiu Banias Dynamic programming optimization algorithm applied in test case selection , 2018, 2018 International Symposium on Electronics and Telecommunications (ISETC).

[14]  Gregg Rothermel,et al.  Understanding the effects of changes on the cost‐effectiveness of regression testing techniques , 2003, Softw. Test. Verification Reliab..

[15]  Mark Harman,et al.  Regression testing minimization, selection and prioritization: a survey , 2012, Softw. Test. Verification Reliab..

[16]  Tao Xie,et al.  To Be Optimal or Not in Test-Case Prioritization , 2016, IEEE Transactions on Software Engineering.

[17]  Jeffrey K. Liker,et al.  The Toyota Production System and art: making highly customized and creative products the Toyota way , 2007 .

[18]  E. L. Lawler,et al.  A dynamic programming algorithm for preemptive scheduling of a single machine to minimize the number of late jobs , 1991 .

[19]  Mary Lou Soffa,et al.  Using coverage effectiveness to evaluate test suite prioritizations , 2007, WEASELTech '07.

[20]  Gregg Rothermel,et al.  Selecting a Cost-Effective Test Case Prioritization Technique , 2004, Software Quality Journal.