Using binary decision diagrams for constraint handling in combinatorial interaction testing
Constraints among test parameters often have substantial effects on the performance of test case generation for combinatorial interaction testing. This paper investigates the effectiveness of the use of Binary Decision Diagrams (BDDs) for constraint handling. BDDs are a data structure used to represent and manipulate Boolean functions. The core role of a constraint handler is to perform a check to determine if a partial test case with unspecified parameter values satisfies the constraints. In the course of generating a test suite, this check is executed a number of times; thus the efficiency of the check significantly affects the overall time required for test case generation. In the paper, we study two different approaches. The first approach performs this check by computing the logical AND of Boolean functions that represent all constraint-satisfying full test cases and a given partial test case. The second approach uses a new technique to construct a BDD that represents all constraint-satisfying partial test cases. With this BDD, the check can be performed by simply traversing the BDD from the root to a sink. We developed a program that incorporates both approaches into IPOG, a well-known test case generation algorithm. Using this program, we empirically evaluate the performance of these BDD-based constraint handling approaches using a total of 62 problem instances. In the evaluation, the two approaches are compared with three different constraint handling approaches, namely, those based on Boolean satisfiability (SAT) solving, Minimum Forbidden Tuples (MFTs), and Constraint Satisfiction Problem (CSP) solving. The results of the evaluation show that the two BDD-based approaches usually outperform the other constraint handling techniques and that the BDD-based approach using the new technique exhibits best performance.
READ FULL TEXT