Black Box Testing

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 viewpoint.

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 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.

  • 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 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.

Software Testing Tutorial

Leave a Comment