NIST Logo and ITL Banner Link to the NIST Homepage Link to the ITL Homepage Link to the NIST Homepage
Search CSRC:

Automated Combinatorial Testing for Software - beyond pairwise testing

Software developers frequently encounter failures that occur only as the result of an interaction between two components. Failure triggering fault interactionsTesters often use pairwise testing – all pairs of parameter values – to detect such interactions. Combinatorial testing beyond pairwise is rarely used because good algorithms for higher strength combinations (e.g., 4-way or more) have not been available, but empirical evidence shows that some errors are triggered only by the interaction of three, four, or more parameters (see graph).  These results have important implications for testing. If all faults in a system can be triggered by a combination of n or fewer parameters, then testing all n-way combinations of parameters can provide high confidence that nearly all faults have been discovered. We are producing methods and tools to generate tests for all n-way combinations of parameter values, using improved combinatorial testing algorithms for constructing covering arrays, and automated generation of test oracles using model checking. This work will have applications in high assurance software, safety and security, and combinatorial testing. Our focus is on empirical results and real-world problems.  For an easy to read intro to combinatorial and pairwise testing, see this article.   

Our research program currently includes:
  - improved covering array algorithms
  - fault localization
  - distribution of interaction faults
  - integration into the development process
  - application to modeling and simulation.

Contact: Rick Kuhn, kuhn@nist.gov or Raghu Kacker, raghu.kacker@nist.gov                         (updated 30 July 09)

>>> free beta release of combinatorial testing tool available to testers.  The tool, named Advanced Combinatorial Testing Suite (ACTS), can compute tests for 2-way through 6-way interactions.  An easy-to-use GUI is included.  More here.   A comparison of ACTS with similar tools shows that ACTS produces smaller test sets (with the same degree of coverage) and is faster than others.  To request a copy, send email to Rick Kuhn - kuhn@nist.gov.  This software is provided free of charge and will remain free in the future.  NIST is an agency of the US Government.
Please Note:  Prior to Feb 09, the name "FireEye" was used for the ACTS tool. In the papers and articles listed below, FireEye is discussed; this is the same tool now called ACTS.

Who uses our combinatorial testing tool?  We have approximately 200 users as of July 2009, in IT, defense, finance, telecom, and many other industries.  Here is a breakdown of our user base.  

News

Rick Kuhn and Raghu Kacker will give invited talks on combinatorial methods for cyber security testing at the DHS Software Assurance working group forum, June 16 - 18, 2009; and the  Military Test and Evaluation Summit, June 24-25, McLean, VA.

Oct. 2008: Testing expert Elfriede Dustin talked about ACTS at the Google Test Automation Conference Oct 24, 2008.  Video here.

Oct. 2008:  ACTS covering array tool is being used by W3C DOM Level 3 Events working group to test conformance.   Using 4-way covering arrays, strong testing is being provided with 1,833 tests, as compared with over 36,000 before.

We have established a database of covering arrays here.

Software Development Times article: Automatically Automate your Automation, Apr. 29, 2008.

We made Network World's list of 25 Radical Network Research Projects You Should Know About.  Apr. 17, 2008.

Rick Kuhn gave an invited talk on combinatorial testing and our project at George Washington University, Mar. 10, 2008.

Jeff Lei was interviewed in Dr. Dobb's Journal -  Conversations:  Pairwise and Combinatorial Testing.   Feb. 28, 2008. 

Open-source tool 'will boost software quality' - Computerworld UK, Dec. 14, 2007.

NIST Working on New Method for Finding Software Bugs - Government Computer News, Dec 13, 2007.

Proof-of-concept demonstration of integrating combinatorial testing with automated generation of test oracles using model checking.  Tutorial on this method here

Briefings

Combinatorial Testing for software

Combinatorial Methods for modeling and simulation

Empirical Results

Empirical data showing all faults triggered by relatively low level of interactions between variables (less than 6-way) across a variety of application domains.

Automated Test Generation Using Model Checking

  • V. Okun, P. E. Black, “Issues in Software Testing with Model Checkers”, Proceedings of the International Conference on Dependable Systems and Networks (DSN-2003), June 2003 - explains effective use of model checking to generate complete test cases. 
  • V. Okun, "Specification Mutation for Test Generation and Analysis", PhD Dissertation, U of Maryland Baltimore Co., 2004 - both theoretical and experimental methods for selecting the most effective mutation operators for test generation.
  • P. E. Black, V. Okun, Y. Yesha, "Testing with Model Checkers: Insuring Fault Visibility", WSEAS Trans. Sys., 2 (1): 77-82, Jan. 2003 - describes specification mutation methods using a model checker to guarantee propagation of faults to visible outputs.
  • P. E. Black, V. Okun, Y. Yesha, "Mutation Operators for Specfications", Automated Software Engineering, 2000 - sets of mutation operators that yield good test coverage at reduced cost compared with other operators.
Disclaimer: Certain software products are identified inthis document. Such identification does not implyrecommendation by NIST, nor does it imply that theproducts identified are necessarily the best available for thepurpose.