Provided is a system and method for black-box testing of software using
positive and negative test cases with N-way combinations of parameter values. An
original model comprising valid and invalid values is modified in a first phase,
by generating exclusions (constraints) for pairs of invalid values. A first suite
of test cases is generated from the modified model, and positive test cases eliminated,
creating a first test suite with only negative tests. In a second phase, the original
model is modified by eliminating invalid values, from which a second test suite
having only positive test cases for all valid N-way combinations is generated.
Merging the two test suites provides a suite of positive and negative test cases
that test software with N-way combinations of values, in which each negative test
case has only one invalid value.