Black Box Testing: Also
known as functional testing.
software testing technique whereby the internal workings of the item being
tested are not known by the tester. For example, in a black box test on software
design the tester only knows the inputs and what the expected outcomes should be
and not how the program arrives at those outputs. The tester does not ever
examine the programming code and does not need any further knowledge of the
program other than its specifications.
The advantages of this type
of testing include:
The test is unbiased because the designer and
the tester are independent of each other.
The tester does not need knowledge of any
specific programming languages.
The test is done from the point of view of the
user, not the designer.
Test cases can be designed as soon as the
specifications are complete.
The disadvantages of
this type of testing include:
The test can be redundant if the software
designer has already run a test case.
The test cases are difficult to design.
Testing every possible input stream is
unrealistic because it would take an inordinate amount of time; therefore,
many program paths will go untested.
Black Box Testing
1) Boundary Value
Analysis 2) Equivalence Partitioning
Boundary Value Analysis: Boundary Value Analysis is a technique of black box
testing in which input values at the boundaries of the input domain are tested.
It has been widely recognized that the input values at the extreme ends of, and
just outside of, input domains tend to cause errors in system functionality.
In Boundary value
Analysis values at, and just beyond, the boundaries of the input domain are used
to generate test cases to ensure proper functionality of the system. Boundary
Value Analysis is an excellent way to catch common user input errors which can
disrupt proper program functionality.
good at exposing potential user interface/user input problems
clear guide lines on determining test cases
small set of test cases generated
not test all possible inputs
not test dependencies between combinations of inputs
Partitioning: Equivalence Partitioning is designed to minimize the number
of test cases by dividing tests in such away that the system is expected to act
the same way for all tests of each equivalence portion. Test inputs would be
selected from each partition.
Equivalence partitions are designed so that every possible input belongs to one
and only one equivalence partition.
Doesn�t test every input
guide lines for choosing inputs.