Combinatorial testing of software analyzes interactions among variables using a very small number of tests. This advanced approach has demonstrated success in providing strong, low-cost testing in real-world situations. Introduction to Combinatorial Testing presents a complete self-contained tutorial on advanced combinatorial testing methods for real-world software. The book introduces key concepts and procedures of combinatorial testing, explains how to use software tools for generating combinatorial tests, and shows how this approach can be integrated with existing practice. Detailed explanations and examples clarify how and why to use various techniques. Sections on cost and practical considerations describe tradeoffs and limitations that may impact resources or funding. While the authors introduce some of the theory and mathematics of combinatorial methods, readers can use the methods without in-depth knowledge of the underlying mathematics. Accessible to undergraduate students and researchers in computer science and engineering, this book illustrates the practical application of combinatorial methods in software testing. Giving pointers to freely available tools and offering resources on a supplementary website, the book encourages readers to apply these methods in their own testing projects.
Cited By
- Colbourn C (2024). Efficient Greedy Algorithms with Accuracy Guarantees for Combinatorial Restrictions, SN Computer Science, 5:2, Online publication date: 1-Feb-2024.
- Kacker R, Kuhn D, Lei Y and Simos D (2022). Measuring the Adequacy of a Test Suite With Respect to a Modeled Test Space, IEEE Software, 39:5, (62-67), Online publication date: 1-Sep-2022.
- Lu X and Jimbo M Error-Correcting Locating Arrays for Interaction Fault Location in Combinatorial Testing 2022 IEEE International Symposium on Information Theory (ISIT), (1094-1099)
- Velez M, Jamshidi P, Siegmund N, Apel S and Kästner C White-Box Analysis over Machine Learning Proceedings of the 43rd International Conference on Software Engineering, (1072-1084)
- Luo C, Lin J, Cai S, Chen X, He B, Qiao B, Zhao P, Lin Q, Zhang H, Wu W, Rajmohan S and Zhang D AutoCCAG Proceedings of the 43rd International Conference on Software Engineering, (201-212)
- Damasceno C, Mousavi M and Simao A (2021). Learning by sampling: learning behavioral family models from software product lines, Empirical Software Engineering, 26:1, Online publication date: 1-Jan-2021.
- Jin H, Kitamura T, Choi E and Tsuchiya T A Comparative Study on Combinatorial and Random Testing for Highly Configurable Systems Testing Software and Systems, (302-309)
- Velez M, Jamshidi P, Sattler F, Siegmund N, Apel S and Kästner C (2020). ConfigCrusher: towards white-box performance analysis for configurable systems, Automated Software Engineering, 27:3-4, (265-300), Online publication date: 1-Dec-2020.
- Tzoref R (2020). Comprehension and Evolution of Combinatorial Models and Test Plans, ACM SIGSOFT Software Engineering Notes, 45:3, (23-24), Online publication date: 9-Jul-2020.
- Zhao J, Dong T, Cheng Y and Wang Y CMM: A Combination-Based Mutation Method for SQL Injection Structured Object-Oriented Formal Language and Method, (345-361)
- Barash G, Farchi E, Jayaraman I, Raz O, Tzoref-Brill R and Zalmanovici M Bridging the gap between ML solutions and their business requirements using feature interactions Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, (1048-1058)
- Garn B, Radavelli M, Gargantini A, Leithner M and Simos D A Fault-Driven Combinatorial Process for Model Evolution in XSS Vulnerability Detection Advances and Trends in Artificial Intelligence. From Theory to Practice, (207-215)
- Kampel L, Simos D, Garn B, Kotsireas I and Zhereshchin E Algebraic Models for Arbitrary Strength Covering Arrays over v-ary Alphabets Algebraic Informatics, (177-189)
- Colbourn C and Syrotiuk V Detecting Arrays for Main Effects Algebraic Informatics, (112-123)
- Simos D, Zivanovic J and Leithner M Automated combinatorial testing for detecting SQL vulnerabilities in web applications Proceedings of the 14th International Workshop on Automation of Software Test, (55-61)
- Ha H and Zhang H DeepPerf Proceedings of the 41st International Conference on Software Engineering, (1095-1106)
- Peleska J, Brauer J and Huang W Model-Based Testing for Avionic Systems Proven Benefits and Further Challenges Leveraging Applications of Formal Methods, Verification and Validation. Industrial Practice, (82-103)
- Jamshidi P, Velez M, Kästner C and Siegmund N Learning to sample: exploiting similarities across environments to learn performance models for configurable systems Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, (71-82)
- Tzoref-Brill R and Maoz S Modify, enhance, select: co-evolution of combinatorial models and test plans Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, (235-245)
- Sarkar K, Colbourn C, Bonis A and Vaccaro U (2018). Partial Covering Arrays, Theory of Computing Systems, 62:6, (1470-1489), Online publication date: 1-Aug-2018.
- Tuncali C, Fainekos G, Ito H and Kapinski J Simulation-based Adversarial Test Generation for Autonomous Vehicles with Machine Learning Components 2018 IEEE Intelligent Vehicles Symposium (IV), (1555-1562)
- Blue D, Raz O, Tzoref-Brill R, Wojciak P and Zalmanovici M Proactive and pervasive combinatorial testing Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice, (144-152)
- Simos D, Kuhn R, Lei Y and Kacker R Combinatorial security testing course Proceedings of the 5th Annual Symposium and Bootcamp on Hot Topics in the Science of Security, (1-3)
- Satish P, Nikhil P and Rangarajan K (2018). A Test Prioritization Algorithm That Cares for "Don't Care" Values and Higher Order Combinatorial Coverage, ACM SIGSOFT Software Engineering Notes, 42:4, (1-9), Online publication date: 11-Jan-2018.
- Jamshidi P, Siegmund N, Velez M, Kästner C, Patel A and Agarwal Y Transfer learning for performance modeling of configurable systems: an exploratory analysis Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering, (497-508)
- Hallé S and Khoury R SealTest: a simple library for test sequence generation Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, (392-395)
- Ahmed B, Gambardella L, Afzal W and Zamli K (2017). Handling constraints in combinatorial interaction testing in the presence of multi objective particle swarm and multithreading, Information and Software Technology, 86:C, (20-36), Online publication date: 1-Jun-2017.
- Tzoref-Brill R and Maoz S Syntactic and semantic differencing for combinatorial models of test designs Proceedings of the 39th International Conference on Software Engineering, (621-631)
- Zalmanovici M, Raz O and Tzoref-Brill R Cluster-based test suite functional analysis Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, (962-967)
- Kampel L and Simos D Set-Based Algorithms for Combinatorial Test Set Generation Testing Software and Systems, (231-240)
- Yamada A, Biere A, Artho C, Kitamura T and Choi E Greedy combinatorial test case generation using unsatisfiable cores Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, (614-624)
- Tzoref-Brill R, Wojciak P and Maoz S Visualization of combinatorial models and test plans Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, (144-154)
- Magid Y, Tzoref-Brill R and Zalmanovici M Coverage-based metrics for cloud adaptation Proceedings of the 2nd International Workshop on Quality-Aware DevOps, (1-6)
- Lin J, Luo C, Cai S, Su K, Hao D and Zhang L TCA Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering, (494-505)
- Siegmund N, Grebhahn A, Apel S and Kästner C Performance-influence models for highly configurable systems Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, (284-294)
- Patil A, Goveas N and Rangarajan K (2015). Re-architecture of Contiki and Cooja Regression Test Suites using Combinatorial Testing Approach, ACM SIGSOFT Software Engineering Notes, 40:2, (1-3), Online publication date: 3-Apr-2015.
- Hagar J, Wissink T, Kuhn D and Kacker R (2015). Introducing Combinatorial Testing in a Large Organization, Computer, 48:4, (64-72), Online publication date: 1-Apr-2015.
- Gaff B (2015). Important IP Cases in 2015, Part One, Computer, 48:4, (7-9), Online publication date: 1-Apr-2015.
- Vagoun T and Strawn G (2015). Implementing the Federal Cybersecurity R&D Strategy, Computer, 48:4, (45-55), Online publication date: 1-Apr-2015.
- Hsu D, Marinucci D and Voas J (2015). Cybersecurity: Toward a Secure and Sustainable Cyber Ecosystem, Computer, 48:4, (12-14), Online publication date: 1-Apr-2015.
- Thüm T, Apel S, Kästner C, Schaefer I and Saake G (2014). A Classification and Survey of Analysis Strategies for Software Product Lines, ACM Computing Surveys, 47:1, (1-45), Online publication date: 1-Jul-2014.
- Ramler R, Putschögl W and Winkler D Automated testing of industrial automation software: practical receipts and lessons learned Proceedings of the 1st International Workshop on Modern Software Engineering Methods for Industrial Automation, (7-16)
- Bozic J, Simos D and Wotawa F Attack pattern-based combinatorial testing Proceedings of the 9th International Workshop on Automation of Software Test, (1-7)
Index Terms
- Introduction to Combinatorial Testing
Recommendations
Combinatorial Software Testing
Combinatorial testing can detect hard-to-find software faults more efficiently than manual test case selection methods.