David R. Kuhn, Raghu N. Kacker, Yu Lei, Justin Hunter
Developers of large data-intensive software often notice an interesting - though not surprising - phenomenon: when usage of an application jumps dramatically, components that have operated for months without trouble suddenly develop previously undetected errors. For example, newly added customers may have account records with an oddball combination of values that have not been seen before. Some of these rare combinations trigger faults that have escaped previous testing and extensive use. Or, the application may have been installed on a different OS-hardware-DBMS-networking platform. Combinatorial testing, which exercises all t-way combinations up to a pre-specified level of t, can help find problems like this early in the testing life-cycle.