software module or system has an input domain from which test input data is
selected. If a tester randomly selects inputs from the domain, this is called
random testing. For example, if the valid input domain for a module is all
positive integers between 1 and 100, the tester using this approach would
randomly, or unsystematically, select values from within that domain; for
example, the values 55, 24, 3 might be chosen. Given this approach, some of the
issues that remain open are the following:
three values adequate to show that the module meets its specification when the
tests are run? Should additional or fewer values be used to make the most
effective use of resources?
any input values, other than those selected, more likely to reveal defects? For
example, should positive integers at the beginning or end of the domain be
specifically selected as inputs?
any values outside the valid domain be used as test inputs? For example, should
test data include floating point values, negative values, or integer values
greater than 100?
structured approaches to black box test design address these issues.
Use of random test inputs may save some of the time
and effort that more thoughtful test input selection methods require. However,
the reader should keep in mind that according to many testing experts,
selecting test inputs randomly has very little chance of producing an effective
set of test data . There has been much discussion in the testing world about
whether such a statement is accurate. The relative effectiveness of random
versus a more structured approach to generating test inputs has been the
subject of many research papers. Readers should refer to references [2-4] for
some of these discussions. The remainder of this chapter and the next will
illustrate more structured approaches to test case design and selection of
inputs. As a final note there are tools that generate random test data for
stress tests. This type of testing can be very useful especially at the system
level. Usually the tester specifies a range for the random value generator, or
the test inputs are generated according to a statistical distribution
associated with a pattern of usage.