Reducing Combinatorial Testing Requirements Based on Equivalences with Respect to the Code Under Test

Combinatorial testing (also known as “N-wise testing” or “combinatorial interaction testing”) is a wellstudied approach for black-box testing of software systems [Grindal et al. 2005; Ammann and Offutt 2008; Nie and Leung 2011]. For example, two surveys of combinatorial testing [Grindal et al. 2005; Nie and Leung 2011] cover dozens of techniques and are themselves cited over 430 times each (according to Google Scholar on July 15, 2018). Combinatorial testing requires the user to provide domains of values for each parameter input of the software system under test, and then creates test inputs by different combinations of parameter values. Researchers have defined several coverage criteria for combinatorial testing. The criteria range from the weakest base-choice, to stronger and widely used pairwise criterion (also known as “all-pairs criterion”), to even stronger N-wise (for N > 2), up to the most comprehensive criterion all combinations coverage. As the criterion name implies, all combinations coverage requires the entire cross-product of all parameter values from the input space to be used for testing. While using this criterion gives the most assurance in the correctness of the code under test, this criterion can have too many test requirements, which can make it impractical to apply. For example, if there are p parameters, each with only 2 values, then the total number of combinations is 2. This paper introduces a novel, simple approach that provides the same assurance as all combinations coverage but typically with fewer test inputs, thereby reducing the overall cost of combinatorial testing.

[1]  Sarfraz Khurshid,et al.  Korat: automated testing based on Java predicates , 2002, ISSTA '02.

[2]  Miroslav Bures,et al.  Tapir: Automation Support of Exploratory Testing Using Model Reconstruction of the System Under Test , 2018, IEEE Transactions on Reliability.

[3]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[4]  Shih-Kun Huang,et al.  Effective Test Generation for Combinatorial Decision Coverage , 2016, 2016 IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C).

[5]  Myra B. Cohen,et al.  Interaction Coverage Meets Path Coverage by SMT Constraint Solving , 2009, TestCom/FATES.

[6]  Sarfraz Khurshid,et al.  SPLat: lightweight dynamic analysis for reducing combinatorics in testing configurable systems , 2013, ESEC/FSE 2013.

[7]  Sarfraz Khurshid,et al.  The comKorat Tool: Unified Combinatorial and Constraint-Based Generation of Structurally Complex Tests , 2016, NFM.

[8]  Myra B. Cohen,et al.  Interaction testing of highly-configurable systems in the presence of constraints , 2007, ISSTA '07.

[9]  Sarfraz Khurshid,et al.  Combinatorial generation of structurally complex test inputs for commercial software applications , 2016, SIGSOFT FSE.

[10]  James C. King,et al.  Symbolic execution and program testing , 1976, CACM.

[11]  A. Jefferson Offutt,et al.  Introduction to Software Testing , 2008 .

[12]  A. Jefferson Offutt,et al.  Combination testing strategies: a survey , 2005, Softw. Test. Verification Reliab..

[13]  Michael L. Fredman,et al.  The AETG System: An Approach to Testing Based on Combinatiorial Design , 1997, IEEE Trans. Software Eng..

[14]  Hareton K. N. Leung,et al.  A survey of combinatorial testing , 2011, CSUR.

[15]  Nazareno Aguirre,et al.  Field-exhaustive testing , 2016, SIGSOFT FSE.

[16]  Lori A. Clarke,et al.  A System to Generate Test Data and Symbolically Execute Programs , 1976, IEEE Transactions on Software Engineering.