Abstract
When testing a Boolean expression, one should consider also the constraints among the variables contained in it. Constraints
model interdependence among the conditions in the expressions. Only tests that satisfy the constraints. i.e.valid tests, are
really useful and can be applied to test the expression. We present three ways to deal with such constraints: (1) ignoring
them during test generation and removing invalid tests later, (2) including them in the expression as conjoint and again removing
invalid tests later, and (3) considering them during the test generation process in order to generate only valid tests from
the start. We introduce a general framework in which the three policies are implemented and compared over a set of Boolean
expressions commonly used as benchmarks. Although the third policy requires a constraints solving technique for actual test
generation, it presents several benefits: it generates smaller test suites and it may require less time for tests generation.
Moreover, ignoring the constraints during test generation can reduce the fault detection capability of the tests.
[download the pdf file] [DOI]