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.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have