Black Box Testing: Also known as functional testing.
A 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 Techniques:
1) Boundary Value Analysis 2) Equivalence Partitioning
1) 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.
Advantages:
a) Very good at exposing potential user interface/user input problems
b) Very clear guide lines on determining test cases
c) Very small set of test cases generated
Disadvantages:
a) Does not test all possible inputs
b) Does not test dependencies between combinations of inputs
2) Equivalence 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.
Advantages:
a) Equivalence partitions are designed so that every possible input belongs to one and only one equivalence partition.
Disadvantages:
a) Doesn’t test every input
b) No guide lines for choosing inputs.

BlackBox Testing