Black box testing is also referred to as specification based testing. It involves performing testing based on the specification of the system under test. The knowledge of the internal architecture and coding is not required in black box testing.
Black box testing definition
Black box testing is the type of testing in which an application is tested based on its requirements specifications without the need of knowledge of its internal architecture.
Features of black box testing
- It tests both functional as well as non-functional requirements of the application.
- Knowledge/access to coding/design/internal architecture of the software is not required.
- Testers can work independently from developers thus ensuring unbiased and end-user centric view point.
Black box testing techniques
The different types of black box testing techniques-
- Equivalence class partitioning - It involves partitioning the input data into logical groups or equivalence classes. Set input data lying in an equivalence class is assumed to have similar behavior on the application when passed. E.g. for a software that finds square of a number, we can have different equivalence classes like - all positive numbers, negative numbers, decimal numbers, negative decimal numbers etc.
- Boundary value analysis - In boundary value analysis, the boundary values of the equivalence partitioning classes are taken as input to the application. E.g. for equivalence classes limiting input between 0 and 100, the boundary values would be 0 and 100.
- Decision tables - Decision tables testing is used to test application's behavior based on different combination of input values. A decision table has different set of input combination and their corresponding expected outcome on each row.
- Cause-effect graph - A cause-effect graph testing is carried out using graphical representation of input i.e. cause and output i.e. effect. We can find the coverage of cause effect graphs based on the percentage of combinations of inputs tested out of the total possible combinations.
- State transition testing - The state transition testing is based on state machine model. In this technique, we test the application by graphically representing the transition between the different states of the application based on the different events and actions.
- Use case testing - Use case testing is a type of testing that is carried out using use cases. In this technique, we test the application using use-cases, representing the interaction of the application with the different actors.