So let me use a slightly expanded version of this
grid. Although we're indeed looking at a needle in a haystack.
And failing inputs are generally sparse, very sparse, in the input
domain. However, they tend to be dense in some parts of
the domain. Like here or here. So how can we leverage
this? The fact that the failures are dense in some subdomains?
As it turns out, the domain is naturally split into partitions.
Where partitions are areas of the domain that are treated homogeneously
by the software. And this is what happens, that normally,
failures tend to be dense in this partitions. So the way
to leverage this characteristic of failures, is that we don't know
want to pick inputs randomly, in the input domain. Just here
and there. Rather we want to do two things. First we
want to identify partitions of our domain. And second we want
to select inputs from each partition. And by doing so, we
can dramatically increase our chances to reveal faults in the code.
So the name that is normally used for this process, is partition testing.