Black box testing is a software testing technique that focuses on the analysis of software functionality, versus internal system mechanisms. Black box testing was developed as a method of analyzing client requirements, specifications and high-level design strategies.
Criteria of the Black Box:
- Testing of functions.
- Testing of classes of input data.
- Testing of classes of output data.
- Testing of tolerance range (testing of class boundaries).
- Testing of the length of the data set.
- Testing of the order of the dataset.
Let’s discuss all of them:
Testing of Functions
The criteria for testing functions are relevant for multi-function programs. It demands to pick up a set of tests that were performed at least one test for each of the functions realized by the program.
Testing of Classes of Input Data
Criteria for testing of the classes of input data required to classify the input data, divide them into classes so that all data from one class were equivalent in terms of program accuracy. It is considered that if the program works correctly on one set of input data from this class, then it will work correctly on any other data set from the same class.
Testing of Classes of Output Data
The criterion for testing the class's output looks analogously.
It should be noted that often these three criteria are in good agreement with each other.
Imagine your program is designed to account for the personnel of the enterprise. Most likely it will have the following functions:
- To employ
- Dismiss from work
- Transfer from one post to another
- Issue a personnel summary
Classes of Input Data:
- To employ
- Dismiss from work
- Order for transfer
- An application for a personnel summary
Classes of Output Data:
- Summary of Admission
- Summary of dismissals
- Summary of transfers
- Overall summary
- Testing of the tolerance range
Testing of Tolerance Range
If the range of permissible values of a variable is a simple enumeration (e.g. music, color, sex, etc.) you should verify that the program understands all of these values and will not accept them instead of any other values. For example, how the program will react to the attempt to introduce a numerical range, in this case, stand out:
- Normal conditions (middle class)
- Boundary (extreme) conditions
- Excellent condition (output abroad class)
Testing of the Length of the Data Set
Testing of the length of the data set can be considered a special case of testing of the tolerance range. In this case, we speak about the maximum number of elements in the set. If your program handles the elements of a consistent set of data, it makes sense to check the following situations:
- Empty set (does not contain any element)
- A single set (consisting of one element)
- Too short set (if there is a minimum allowable length)
- Set as short as possible (if this is foreseen)
- Normal set (consisting of multiple items)
- Set of the maximum possible length (if this is foreseen)
- Too long set (longer than the maximum allowable)
Testing of Ordering the Input Data
Testing of ordering the input data is important for the problems of sorting and searching for extremums. In this case, you should check out:
- The data are unordered
- The data are arranged in direct order
- The data are arranged in reverse order
- The set has duplicate items
- Extreme value is in the middle of the set
- Extreme value is at the beginning of the set
- Extreme value is at the end of the set
- The set has several overlap extreme values