Sunday, November 1, 2009

What is exhaustive testing?

Exhaustive Testing

In those limited cases where the set of valid inputs or the functional domain, is extremely small, we can verify a subprogram by testing it against every possible input element. This approach, known as exhaustive testing, can prove conclusively that the software meets it specifications.

In most cases, however the functional domain is very large, so exhaustive testing is almost always impractical or impossible.

Exhaustive Testing Example

The functional domain of the following function consists of values true and false:

Void PrintBoolean (bool error)
{
if (error)
cout << "true";
else
cout << "false";
cout << endl;
}

It makes sense to apply exhaustive testing to this above function, because there are only two possible input values.

Void PrintInteger(int intValue)
{
cout << intValue;
}

It is not practical to test this above function by running it with every possible data input as the number of elements in the set of int values is clearly too large.
[Source]

Also see:

Black-box Testing
Advantages of Black-box Testing
Limitations or Disadvantages of Black-box Testing