You
are here: Freetutes.com
> Systems
Analysis and Design
Black Box Testing
Black box testing test the overall functional requirements of product. Input
are supplied to product and outputs are verified. If the outputs obtained are
same as the expected ones then the product meets the functional requirements.
In this approach internal procedures are not considered. It is conducted at later
stages of testing. Now we will look at black box testing technique.
Black box testing uncovers following types of errors.

Incorrect or missing functions

Interface errors

External database access

Performance errors

Initialization and termination errors.
The following techniques are employed during black box testing
Equivalence Partitioning
In equivalence partitioning, a test case is designed so as to uncover a group
or class of error. This limits the number of test cases that might need to be
developed otherwise.
Here input domain is divided into classes or group of data. These classes are
known as equivalence classes and the process of making equivalence classes is
called equivalence partitioning. Equivalence classes represent a set of valid
or invalid states for input condition.
An input condition can be a range, a specific value, a set of values, or a
boolean value. Then depending upon type of input equivalence classes is defined.
For defining equivalence classes the following guidelines should be used.

If an input condition specifies a range, one valid and two invalid equivalence
classes are defined.

If an input condition requires a specific value, then one valid and two invalid
equivalence classes are defined.

If an input condition specifies a member of a set, then one valid and one invalid
equivalence class are defined.

If an input condition is Boolean, then one valid and one invalid equivalence
class are defined.
For example, the range is say, 0 < count < Max1000. Then form a valid
equivalence class with that range of values and two invalid equivalence classes,
one with values less than the lower bound of range (i.e., count < 0) and other
with values higher than the higher bound( count > 1000).
Boundary Value Analysis
It has been observed that programs that work correctly for a set of values
in an equivalence class fail on some special values. These values often lie on
the boundary of the equivalence class. Test cases that have values on the boundaries
of equivalence classes are therefore likely to be error producing so selecting
such test cases for those boundaries is the aim of boundary value analysis.
In boundary value analysis, we choose input for a test case from an equivalence
class, such that the input lies at the edge of the equivalence classes. Boundary
values for each equivalence class, including the equivalence classes of the output,
should be covered. Boundary value test cases are also called “extreme cases”.
Hence, a boundary value test case is a set of input data that lies on the edge
or boundary of a class of input data or that generates output that lies at the
boundary of a class of output data.
In case of ranges, for boundary value analysis it is useful to select boundary
elements of the range and an invalid value just beyond the two ends (for the two
invalid equivalence classes. For example, if the range is 0.0 <= x <= 1.0,
then the test cases are 0.0,1.0for valid inputs and –0.1 and 1.1 for invalid
inputs.
For boundary value analysis, the following guidelines should be used:
For input ranges bounded by a and b, test cases should include values a and
b and just above and just below a and b respectively.
If an input condition specifies a number of values, test cases should be developed
to exercise the minimum and maximum numbers and values just above and below these
limits.
If internal data structures have prescribed boundaries, a test case should
be designed to exercise the data structure at its boundary.
Now we know how the testing for software product is done. But testing software
is not an easy task since the size of software developed for the various systems
is often too big. Testing needs a specific systematic procedure, which should
guide the tester in performing different tests at correct time. This systematic
procedure is testing strategies, which should be followed in order to test the
system developed thoroughly. Performing testing without some testing strategy
would be very cumbersome and difficult. Testing strategies are discussed the following
pages of this chapter.
<< Previous
Page  Contents
 Next Page >>
