Black box testing is also referred to as specification-based testing. It involves performing testing based on the specification of the system under test. Unlike white-box testing, the knowledge of the internal architecture and the application code 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 for 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 the coding/design/internal architecture of the software is not required.
- Testers can work independently from developers thus ensuring unbiased and end-user centric testing.
Black Box Testing Techniques
The different types of black-box testing techniques-
- Equivalence class partitioning – Equivalence class partitioning involves partitioning the input data into logical groups or equivalence classes. All the data items lying in an equivalence class are assumed to be processed in the same way by the application when passed as input.
E.g. for software that finds the square of a number, we can have different equivalence classes like – all positive numbers, negative numbers, decimal numbers, negative decimal numbers, etc.
Its advantage is – the overall test execution time reduces as the number of test data greatly reduces.
- Boundary value analysis – Boundary value analysis, is a black-box testing technique, closely associated with equivalence class partitioning. In this technique, we analyze the behavior of the application with test data residing at the boundaries of the equivalence classes.
E.g. for equivalence classes with an input between 0 to 100, the test data using boundary value analysis would be 0 and 100.
Its advantage is – it is easier and faster to find defects as the density of defects at boundaries is more.
- Decision tables – Decision tables testing is used to test the application’s behavior based on a different combination of input values. A decision table has a different set of input combinations and their corresponding expected outcomes on each row.
- Cause-effect graph – A cause-effect graph testing is carried out using a 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 a 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.
With this, we have come to the end of this part of the tutorial. If you have any questions, please ask in the comment section. Also, check out the complete software testing tutorial below.
Kuldeep is the founder and lead author of ArtOfTesting. He is skilled in test automation, performance testing, big data, and CI-CD. He brings his decade of experience to his current role where he is dedicated to educating the QA professionals. You can find him on LinkedIn.