Black-box testing is a kind of software testing which determines the functionality of the application.
The testing team is not concerned with the internal working of the application. The name is given as black box because the software is like a black-box in the eyes of the testing team which is not concerned with the internal working of the application.
Black-box testing is also known as behavioral testing as the testers are only concerned with the external behavior/working of application.
A tester, without knowledge of the internal structures of a website, tests the web pages by using a browser, providing inputs (clicks, keystrokes) and verifying the outputs against the expected outcome.
Black-box testing can be defined as functional or non-functional testing without the reference of the internal structure of the system.
Black-box testing can attempt to find the errors like:
- Interface error.
- Performance/Behavior error.
- Any missing functionality.
Black-box testing can be applied to any type of testing levels such as unit testing, integration testing, acceptance testing, system testing.
Black-box testing is known as the specification-based testing in which the testing team examines the black-box as the input and output.
There are some black-box techniques as follows:
1. Equivalence partitioning.
2.Boundary value analysis.
3. Cause-effect graph.
1. Equivalence partitioning:
In this technique the input values are divided into valid and invalid partitions and from each partition some value is taken to test the data.
2. Boundary value analysis:
Boundary value analysis is the functional type of testing in which the extreme boundaries are chosen. Extreme boundaries includes the minimum, maximum, just inside/outside the boundary. The values from inside/outside boundaries are chosen to test the data.
3. Cause-effect graph:
Cause-effect graph technique includes identifying the input conditions and its respective output conditions and determine the test cases based on the cause-effect graph.
Tools used for Black box testing largely depends on the type of black box testing your are doing.
For Functional/ Regression Tests you can use – QTP
For Non-Functional Tests you can use – Loadrunner
Advantages of black-box testing:
- Testers can be non-technical.
- There is no need of having the more functional knowledge to the testers.
- Testing is done according to the end user point of view.
- Useful when it is related to large amount of data.
- As soon as the functional specifications are known testing can be done.
Disadvantages of Black-box testing:
- As the testers are not aware of the functionality of the application, the reason of failure of the system will not be known.
- As clear functionality of the system is not known the test cases are tough to design.
- Small number of inputs can be tested.
- If the specifications are not clear then the test cases are difficult to design.