<programming> A testing technique that aids in selecting, in a systematic way, a high-yield set of test cases that logically relates causes to effects to produce test cases.
It has a beneficial side effect in pointing out incompleteness and ambiguities in specifications.