What's in the Black Box?
Black box is a closed opaque box through and inside which we can't see anything or element. You can only visualize and examine the external appearance and structure of the black box, with no access to anything inside the box. Similar concept may be seen in the testing of a software application; white box testing and black box testing.
What is Black Box Testing?
Many a times, a software product is required to be examined, with the tester groping in the dark for any clues to the internal structure's code, when there are none. The testing technique deployed, for such a handicapped scenario is called Black Box Testing.
In simple words, black box testing is used to verify and validate the correct and smooth functioning of the intended functionalities without digging and evaluating the internal structure of the system. Contrary to white box testing, black-box is used to test system externally.
In the given diagram of a software application, it may be seen that only external structure needs to be tested comprising of intended functionalities: A, B, C, J,K,L, X,Y, Z, P, Q and R, and internal structure & framework of the system need not to be considered for black box testing. If the intended functionalities are functioning expectedly without any issues, the application overall is considered to be acceptable for further process.
What are the black box test cases like?
Building of test cases revolves around all important specifications and the main parameters involved in design. Although a majority of the tests are functional in nature, there's no history of non functional tests being completely redundant. Depending on what working facet of the software is required to be evaluated, Black Box Testing is classified according to the following set of variants:
- Functional: The most favoured mode of Black Box Testing, functional testing focuses on the specifications of the software under test, namely, the core application functions, menu operations, or the Installation/set-up package . From a customer's point of view, it's the most crucial test to ensure that he gets a good bang for his buck.
- Non Functional: Other than seeing to it, that the software works true to its marked specifications, it's equally important to gauge behavioural aspects like reliability and scalability. That's where non-functional testing does a fine job.
- Regression testing: In the aftermath of an upgrade/patch, a software may inevitably suffer a glitch called regression. Regression testing is just the right medicine to avoid such an eventuality.
You may like to read more detailed features of these testing types in our articles: functional testing, non-functional testing and regression testing.
Generally, Recording and Play-back tools are preferred with Java, Visual Basic and Perl, being the usual suspects in the Scripts department.
What are the test design techniques in Black Box Testing?
There is no dearth of options, when it comes to Black box testing. Here's listing a few of them.
- Error Guessing:
Here the tester depends on his past experience and Sixth Sense, as they say, to devise test cases based on what he feels, is likely to cause system failure or bugs. Read complete details in our related article error guessing.
- Graphical approach to testing:
The software being tested constitutes a range of different objects. A test case can then be formed through relationships between these objects, derived from the graphical data.
Alternatively, a cause and effect graph can be arrived at, with the help of feeding inputs and subsequent monitoring of the response.
- Equivalence partitioning:
The test case is built from the different smaller classes of data, obtained by the division of entire input data. Plus point of equivalence partitioning approach is the reduced number of test cases, resulting in overall reduction of testing time.
- Analysis of Boundary Values:
After the division of input data into equivalence partitions, a range is selected having minimum & maximum values. The boundaries of these partitions are favoured, due to the fact that, most of the bugs encountered are located here. The test case is then built on these extreme values. Gain more insight to this technique in our article boundary value analysis.
- Comparison testing:
Test case borne out of the comparison of application's individual parts. Visit to our article comparison testing to gain better understanding of this technique.
- Testing in Pairs:
Test case deploying all possible computed combinations of input parameters, after divided them in the form of pairs. The input parameter being talked here can be a software algorithm.
- Decision table testing:
A decision table usually relates conditions to actions. Test cases which render embedded if-then- else statements from programming languages into decision tables can come handy while De-bugging. Learn this approach with the help of an example in our related article decision table testing.
What doesn't sit well with BBT?
- Working with a huge Sample space of test inputs can be exhaustive and put a drain on time.
- Besides, the probability of meeting dead ends in an unspecified path during testing is pretty high.
What's going in favour of Black Box Testing?
- Black Box testing enables smooth implementation of an application in its original system environment.
- Fits perfectly with functional testing.
- A full knowledge of functional specifications enables a fairly quick designing of test cases.
- As BBT employs a methodology, in which there is no prior knowledge of internal structure/code, it is well suited to simulate a cyber warfare attack, while devising security applications.
Black Box Testing is a productive approach of testing the application which not only ensures the qualities of the intended functionalities from user's perspective but also avoids and save the time and efforts, required in exploring and gaining insights to the system for the purpose of testing.