Regression testing with GZoltar techniques for test suite minimization, selection, and prioritization

Software testing occurs simultaneously during the software development to detect errors as early as possible and to guarantee that changes made in software did not affect the system negatively. However, during the development phase, the test suite is updated and tends to increase in size. Due to the resource and time constraints for re-executing large test suites, it is important to develop techniques to reduce the effort of regression testing. Several approaches have been studied to reduce the effort of regression testing: test suite minimization, selection, and prioritization. Test suite minimization techniques aims at identifying and eliminating redundant test cases from the suite. Test suite selection techniques identifies a subset of test cases from suite, required to re-test the changes in the software. Test suite prioritization techniques schedule test cases for execution in an order to increase the early fault detection. Although, the approaches present the literature have some limitations (resources, times, etc.). In this manuscript we propose a new approach to the minimization, selection and prioritization problem that try to overcomes these limitation. Our approach allows for (1) easy encoding of the relation between a test case and a component (source code statement) in a coverage matrix, (2) mapping this matrix in a set of constraints, and (3) computing optimal solutions (with the same coverage and fault detection of original set of tests) to minimization and selection problems by leveraging a fast and scalable constraint solver. We implemented our approach in a Eclipse plug-in called GZOLTAR, which is perfectly integrated in the IDE and provides functions to debugging a software program using visualization in OpenGL. Features for regression tests were implemented with the name Regression-Zoltar, RZOLTAR for short. To test our toolset, we conducted experiments to measure the efficiency and the size of regression suite. In particular, we evaluated our tool using real-world and large programs, as well as a user study in order to measure its usability. In our empirical evaluation, we show how RZOLTAR can be used to instantiate large-programs and efficiently find an solution for such problems. Our experiments show that our approach can significantly reduce the size of original test suite, and a corresponding reduction in the cost of regression testing. We also make a user study to find if we are in right way in terms of usability and functionalities.

[1]  Phyllis G. Frankl,et al.  Empirical evaluation of the textual differencing regression testing technique , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[2]  Neelam Gupta,et al.  A concept analysis inspired greedy algorithm for test suite minimization , 2005, PASTE '05.

[3]  David R. Barstow,et al.  Proceedings of the 25th International Conference on Software Engineering , 1978, ICSE.

[4]  Rui Abreu,et al.  Zoltar: A Toolset for Automatic Fault Localization , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[5]  14th International Symposium on Software Reliability Engineering , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

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

[7]  Ian P. Gent,et al.  Data Structures for Generalised Arc Consistency for Extensional Constraints , 2007, AAAI.

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

[9]  Rui Abreu,et al.  Third International Diagnostic Competition – DXC ’ 11 , 2011 .

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

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

[12]  John Watkins,et al.  Testing IT: An Off-the-Shelf Software Testing Process , 2001 .

[13]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[14]  Gerrit C. van der Veer,et al.  Proceedings of the INTERACT '93 and CHI '93 Conference on Human Factors in Computing Systems , 1993 .

[15]  Ian P. Gent,et al.  Tailoring Solver-Independent Constraint Models: A Case Study with Essence' and Minion , 2007, SARA.

[16]  Joseph Robert Horgan,et al.  Incremental regression testing , 1993, 1993 Conference on Software Maintenance.

[17]  Neelam Gupta,et al.  Test suite reduction with selective redundancy , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[18]  William C. Hetzel,et al.  The complete guide to software testing , 1984 .

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

[20]  Richard C. Larson,et al.  Model Building in Mathematical Programming , 1979 .

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

[22]  Nina Narodytska,et al.  Constraint Satisfaction Problems: Convexity Makes AllDifferent Constraints Tractable , 2011, IJCAI.

[23]  Mike McCullough Developing eclipse plugins , 2006 .

[24]  Michael R. Lyu,et al.  Handbook of software reliability engineering , 1996 .

[25]  Gregg Rothermel,et al.  Analyzing Regression Test Selection Techniques , 1996, IEEE Trans. Software Eng..

[26]  Alexander Feldman,et al.  Towards a Framework for Evaluating and Comparing Diagnosis Algorithms , 2009 .

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

[28]  Jakob Nielsen,et al.  A mathematical model of the finding of usability problems , 1993, INTERCHI.

[29]  Edward Fredkin,et al.  Trie memory , 1960, Commun. ACM.

[30]  John A. N. Lee,et al.  A methodology for test selection , 1990, J. Syst. Softw..

[31]  Gerard Meszaros,et al.  xUnit Test Patterns: Refactoring Test Code , 2007 .

[32]  Marc J. Balcer,et al.  The category-partition method for specifying and generating fuctional tests , 1988, CACM.

[33]  Alessandro Orso,et al.  MINTS: A general framework and tool for supporting test-suite minimization , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[34]  Gregg Rothermel,et al.  An empirical study of the effects of minimization on the fault detection capabilities of test suites , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[35]  Rui Abreu,et al.  3rd International Diagnostics Competition– DXC’11 , 2011 .

[36]  Anthony G. Cohn,et al.  Proceedings of the 20th national conference on Artificial intelligence - Volume 1 , 2005, AAAI 2005.

[37]  Xin-She Yang,et al.  Introduction to Algorithms , 2021, Nature-Inspired Optimization Algorithms.

[38]  Judea Pearl,et al.  Probabilistic reasoning in intelligent systems - networks of plausible inference , 1991, Morgan Kaufmann series in representation and reasoning.

[39]  David Geer Eclipse becomes the dominant Java IDE , 2005, Computer.

[40]  David Leon,et al.  A comparison of coverage-based and distribution-based techniques for filtering and prioritizing test cases , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[41]  Yi Zhang,et al.  Classifying Software Changes: Clean or Buggy? , 2008, IEEE Transactions on Software Engineering.

[42]  Walter F. Tichy,et al.  Proceedings 25th International Conference on Software Engineering , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[43]  Gregg Rothermel,et al.  A safe, efficient regression test selection technique , 1997, TSEM.

[44]  Rui Abreu,et al.  The GZoltar Project: A Graphical Debugger Interface , 2010, TAIC PART.

[45]  RothermelGregg,et al.  Analyzing Regression Test Selection Techniques , 1996 .

[46]  Ladan Tahvildari,et al.  An Empirical Study on Bayesian Network-based Approach for Test Case Prioritization , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[47]  原田 秀逸 私の computer 環境 , 1998 .

[48]  Franz Wotawa,et al.  A Constraint Model for Automated Deployment of Automotive Control Software , 2008, SEKE.

[49]  Stephen M. Thebaut,et al.  An approach to software fault localization and revalidation based on incremental data flow analysis , 1989, [1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference.

[50]  RothermelGregg,et al.  A safe, efficient regression test selection technique , 1997 .

[51]  Emanuel Melachrinoudis,et al.  Bi-criteria models for all-uses test suite reduction , 2004, Proceedings. 26th International Conference on Software Engineering.

[52]  Vasek Chvátal,et al.  A Greedy Heuristic for the Set-Covering Problem , 1979, Math. Oper. Res..

[53]  A.J.C. van Gemund,et al.  On the Accuracy of Spectrum-based Fault Localization , 2007, Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION (TAICPART-MUTATION 2007).

[54]  David S. Rosenblum,et al.  TESTTUBE: a system for selective regression testing , 1994, Proceedings of 16th International Conference on Software Engineering.

[55]  J. Davenport Editor , 1960 .

[56]  Ian P. Gent,et al.  Minion: A Fast Scalable Constraint Solver , 2006, ECAI.

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