Applying Combinatorial Testing in Industrial Settings

Combinatorial testing (CT) is a black-box-based technique to generate a small number of test cases with a focus on covering various interactions among input parameters of a software system. How effective is CT in practice? What are the challenges and issues presented by the process of applying CT? How can these challenges and issues be overcome to improve the application of CT? Although CT has attracted attention from both academia and industry, these questions have not been addressed or researched in depth based on an empirical study in industrial settings. From January 2016 to February 2016, we have worked with CEPREI, an authoritative software testing company in China, on testing three real-life software systems using CT. Throughout the process, we have generated 601 test cases and found 33 bugs in total. The results demonstrate that CT not only detects more bugs but also requires less time in designing test cases for a specific system comparing to traditional function coverage-based testing. This paper will present our empirical study thoroughly and give an insightful analysis to investigate the advantages as well as the possible challenges of applying CT.

[1]  D. Richard Kuhn,et al.  Software fault interactions and implications for software testing , 2004, IEEE Transactions on Software Engineering.

[2]  Raghu Kacker,et al.  Introducing Combinatorial Testing in a Large Organization , 2015, Computer.

[3]  Neelu Kumari,et al.  Combinatorial Testing for an Automotive Hybrid Electric Vehicle Control System: A Case Study , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation Workshops.

[4]  Jeff Yu Lei,et al.  An Empirical Comparison of Combinatorial and Random Testing , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation Workshops.

[5]  George Spanoudakis,et al.  Automatic test case generation for WS-Agreements using combinatorial testing , 2015, Comput. Stand. Interfaces.

[6]  Feng Duan,et al.  Combinatorial Test Generation for Software Product Lines Using Minimum Invalid Tuples , 2014, 2014 IEEE 15th International Symposium on High-Assurance Systems Engineering.

[7]  Raghu Kacker,et al.  Practical combinatorial (t-way) methods for detecting complex faults in regression testing , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[8]  Feng Duan,et al.  Combinatorial Testing: Theory and Practice , 2015, Adv. Comput..

[9]  Franz Wotawa,et al.  Attack Pattern-Based Combinatorial Testing with Constraints for Web Security Testing , 2015, 2015 IEEE International Conference on Software Quality, Reliability and Security.

[10]  Douglas Hillmer Introducing combinatorial testing in the organization a report on a first attempt , 2015, 2015 IEEE Eighth International Conference on Software Testing, Verification and Validation Workshops (ICSTW).

[11]  Raghu Kacker,et al.  Introducing Combinatorial Testing in a Large Organization: Pilot Project Experience Report , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation Workshops.

[12]  K. Burr,et al.  Combinatorial Test Techniques : Table-based Automation , Test Generation and Code Coverage , 1998 .

[13]  Yu Lei,et al.  IPOG-IPOG-D: efficient test generation for multi-way combinatorial testing , 2008 .

[14]  Jeff Yu Lei,et al.  Combinatorial Software Testing , 2009, Computer.

[15]  Jeff Yu Lei,et al.  Combinatorial Coverage Measurement Concepts and Applications , 2013, 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation Workshops.

[16]  Yu Lei,et al.  Refining the In-Parameter-Order Strategy for Constructing Covering Arrays , 2008, Journal of research of the National Institute of Standards and Technology.

[17]  Jeff Yu Lei,et al.  Equivalence class verification and oracle-free testing using two-layer covering arrays , 2015, 2015 IEEE Eighth International Conference on Software Testing, Verification and Validation Workshops (ICSTW).