White box testing

White Box Testing (also known as Clear Box Testing, Open Box Testing, Glass Box Testing, Transparent Box Testing, Code-Based Testing, or Structural Testing) is a software testing method in which the internal structure/design/implementation of the item being tested is known to the tester. The tester chooses inputs to exercise paths through the code and determines the appropriate outputs. Programming know-how and the implementation of knowledge are essential. White box testing is testing beyond the user interface and into the nitty-gritty of a system.

This method is named so because the software program, according to the tester, is like a white/transparent box; inside which one clearly sees.

White Box Testing – Example
A tester, usually a developer as well, studies the implementation code of a certain field on a web page, determines all legal (valid and invalid) AND illegal inputs, and verifies the outputs against the expected outcomes, which is also determined by studying the implementation code.
White Box Testing – Levels applicable

White Box Testing method is applicable to the following levels of software testing:

  • Unit Testing: For testing paths within a unit
  • Integration Testing: For testing paths between units
  • System Testing: For testing paths between subsystems

However, it is mainly applied to Unit Testing.

White Box Testing – Advantages
Testing can be commenced at an earlier stage. One need not wait for the GUI to be available.
Testing is more thorough, with the possibility of covering most paths.
White Box Testing – Disadvantages

Since tests may involve high complexity, they demand highly skilled resources who possess in-depth knowledge of programming and implementation. Test script maintenance can be a burden if the implementation changes too frequently. This method of testing is closely tied to the application being tested, tools to cater to every kind of implementation/platform may not be readily available.

White Box Testing is like the work of a mechanic who examines the engine to see why the car is not moving.

ISTQB definition:
Testing based on an analysis of the internal structure of the component or system.
White-box test design technique: Procedure to derive and/or select test cases based on an analysis of the internal structure of a component or system.