Black-box Testing

Go back to Tutorial

Black-box testing is a method of software testing that tests the functionality of an application as opposed to its internal structures or workings. Specific knowledge of the application’s code/internal structure and programming knowledge in general is not required. Test cases are built around specifications and requirements, i.e., what the application is supposed to do. It uses external descriptions of the software, including specifications, requirements, and design to derive test cases. These tests can be functional or non-functional, though usually functional. The test designer selects valid and invalid inputs and determines the correct output. There is no knowledge of the test object’s internal structure.

This method of test can be applied to all levels of software testing: unit, integration, functional, system and acceptance. It typically comprises most if not all testing at higher levels, but can also dominate unit testing as well.

Black box testing treats the software as a “black box”—without any knowledge of internal implementation. Black box testing methods include: equivalence partitioning, boundary value analysis, all-pairs testing, fuzz testing, model-based testing, traceability matrix, exploratory testing and specification-based testing.

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

Go back to Tutorial

Share this post
[social_warfare]
LoadTest Execution
White-box Testing

Get industry recognized certification – Contact us

keyboard_arrow_up