A software testing technique that involves identifying a small set of representative input values that invoke as many different input conditions as possible.
For example, for binary search the following partitions exist: inputs that do or do not conform to pre-conditions, Inputs where the key element is or is not a member of the array. One can combine these into finer partitions. One can also pick specific conditions of the array, e.g. a single value, even or odd number of elements. One should look at boundary conditions, e.g. inputs where the key element is the first or last element in the array.