Black Box Testing:-
a)Black-box tests are used to demonstrate that the software functions are operational; that input is properly accepted and output is correctly produced; and that the integrity of external information (e.g., data files) is maintained. It enables the developer to derive sets of input conditions (test cases) that will fully exercise all functional requirements for a program.
b)It is the test method in which the user always test the application functionality he need not to bother about the application structure because of the customer always looks at the screens how it is developed.
c)Usually Test Engineer will do the Black Box Testing.
d)Black-box testing uncovers errors of the following categories:
e)Black-box testing is applied during the later stages of the testing as it purposely disregards control structure and attention is focused on the problem domain. Test cases are to be designed to answer the following questions:
1) How is functional validity tested?
2) What categories of input will make good test case?
3) Is the system particularly sensitive to certain input values?
4) How are the boundaries of data input isolated?
5) What data rates and data volume can the system tolerate?
6) What effect will specific combinations of data have on system operation?
f) The following black-box testing methods are practically feasible and adopted depending on the applicability:
1. Graph-based testing methods
3.Boundary value analysis
g)Black box testing (data driven or input/output driven) is not based on any knowledge of internal design or code. Tests are based on requirements and functionality. Black box testing attempts to derive sets of inputs that will fully exercise all the functional requirements of a system. It is not an alternative to white box testing.
Here is a small presentation given by famous Professor Cem Kaner.
Presentation on Black Box Testing.
This method divides the input domain of a program into classes of data from which test cases can be derived. Equivalence partitioning strives to define a test case that uncovers classes of errors and thereby reduces the number of test cases needed. It is based on an evaluation of equivalence classes for an input condition. An equivalence class represents a set of valid or invalid states for input conditions
Equivalence classes may be defined according to the following guidelines:
Testcase Design for Equivalence partitioning
Boundary Value Analysis
This method leads to a selection of test cases that exercise boundary values. It complements equivalence partitioning since it selects test cases at the edges of a class. Rather than focusing on input conditions solely, BVA derives test cases from the output domain also. BVA guidelines include:
1. 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.
2. 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.
3. Apply guidelines 1 and 2 to the output.
4. If internal data structures have prescribed boundaries, a test case should be designed to exercise the data structure at its boundary.
Test case Design for Boundary value analysis : Situations on, above, or below edges of input, output, and condition classes have high probability of success