Dynamic Integration Test Selection Based on Test Case Dependencies

Prioritization, selection and minimization of test cases are well-known problems in software testing. Test case prioritization deals with the problem of ordering an existing set of test cases, typically with respect to the estimated likelihood of detecting faults. Test case selection addresses the problem of selecting a subset of an existing set of test cases, typically by discarding test cases that do not add any value in improving the quality of the software under test. Most existing approaches for test case prioritization and selection suffer from one or several drawbacks. For example, they to a large extent utilize static analysis of code for that purpose, making them unfit for higher levels of testing such as integration testing. Moreover, they do not exploit the possibility of dynamically changing the prioritization or selection of test cases based on the execution results of prior test cases. Such dynamic analysis allows for discarding test cases that do not need to be executed and are thus redundant. This paper proposes a generic method for prioritization and selection of test cases in integration testing that addresses the above issues. We also present the results of an industrial case study where initial evidence suggests the potential usefulness of our approach in testing a safety-critical train control management subsystem.

[1]  Alessandro Orso,et al.  Regression test selection for Java software , 2001, OOPSLA '01.

[2]  Reinhard German,et al.  Dependency-Based Test Case Selection and Prioritization in Embedded Systems , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[3]  Gregg Rothermel,et al.  Selecting tests and identifying test coverage requirements for modified software , 1994, ISSTA '94.

[4]  Alessandro Orso,et al.  Regression testing in the presence of non-code changes , 2011, 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation.

[5]  Ali M. Alakeel Using Fuzzy Logic in Test Case Prioritization for Regression Testing Programs with Assertions , 2014, TheScientificWorldJournal.

[6]  Lionel C. Briand,et al.  An enhanced test case selection approach for model-based testing: an industrial case study , 2010, FSE '10.

[7]  Nasser Jazdi,et al.  Prioritization of Test Cases Using Software Agents and Fuzzy Logic , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[8]  Taghi M. Khoshgoftaar,et al.  System regression test planning with a fuzzy expert system , 2014, Inf. Sci..

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

[10]  D. Chang Applications of the extent analysis method on fuzzy AHP , 1996 .

[11]  Andreas Podelski,et al.  If A Fails, Can B Still Succeed? Inferring Dependencies between Test Results in Automotive System Testing , 2015, 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST).

[12]  Rajesh Kumar,et al.  Fuzzy entropy-based framework for multi-faceted test case classification and selection: an empirical study , 2014, IET Softw..

[13]  Darko Marinov,et al.  An empirical analysis of flaky tests , 2014, SIGSOFT FSE.

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

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

[16]  Hyunsook Do,et al.  A Fuzzy Expert System for Cost-Effective Regression Testing Strategies , 2013, 2013 IEEE International Conference on Software Maintenance.

[17]  Michael D. Ernst,et al.  Empirically revisiting the test independence assumption , 2014, ISSTA 2014.

[18]  Christer Carlsson,et al.  Fuzzy multiple criteria decision making: Recent developments , 1996, Fuzzy Sets Syst..

[19]  T. H. Tse,et al.  Adaptive Random Test Case Prioritization , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[20]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[21]  Tim Miller,et al.  Using Dependency Structures for Prioritization of Functional Test Suites , 2013, IEEE Transactions on Software Engineering.

[22]  Mehrdad Saadatmand,et al.  Multi-Criteria Test Case Prioritization Using Fuzzy Analytic Hierarchy Process , 2015, ICSEA 2015.

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

[24]  Amitabh Srivastava,et al.  Efficient Integration Testing using Dependency Analysis , 2005 .

[25]  Thomas W. Lin,et al.  Application of the fuzzy analytic hierarchy process to the lead-free equipment selection decision , 2011 .

[26]  Byoungju Choi,et al.  Risk-based test case prioritization using a fuzzy expert system , 2016, Inf. Softw. Technol..

[27]  Amitabh Srivastava,et al.  Effectively prioritizing tests in development environment , 2002, ISSTA '02.

[28]  Martin Glinz,et al.  Using Dependency Charts to Improve Scenario-Based Testing , 2000 .

[29]  Susan Horwitz,et al.  Incremental program testing using program dependence graphs , 1993, POPL '93.

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

[31]  Gail E. Kaiser,et al.  Efficient dependency detection for safe Java test acceleration , 2015, ESEC/SIGSOFT FSE.

[32]  Mikael Sjödin,et al.  On Combining Model-Based Analysis and Testing , 2013, 2013 10th International Conference on Information Technology: New Generations.

[33]  Alessandro Orso,et al.  Scaling regression testing to large software systems , 2004, SIGSOFT '04/FSE-12.

[34]  Toshirō Terano,et al.  Fuzzy engineering toward human friendly systems , 1992 .

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