📖 WIPIVERSE

🔍 Currently registered entries: 115,555건

White box (software engineering)

White box testing (also known as clear box testing, glass box testing, structural testing, open box testing, or transparent box testing) is a testing methodology in software engineering that examines the internal structure, design, and implementation of the code being tested. Unlike black box testing, which focuses solely on the inputs and outputs without knowledge of the internal workings, white box testing requires testers to have a detailed understanding of the source code and the internal logic.

The primary goal of white box testing is to verify that the internal operations of a system perform according to specifications, that all independent paths through the code have been exercised, and that internal code structures are sound. Testers utilize their knowledge of the code to create test cases that cover specific code paths, branches, statements, and conditions.

Common techniques used in white box testing include:

  • Statement Coverage: Ensuring that each statement in the code is executed at least once.
  • Branch Coverage: Ensuring that each branch of a decision point (e.g., if-else statement) is executed.
  • Path Coverage: Ensuring that all possible execution paths through a piece of code are tested.
  • Condition Coverage: Ensuring that all logical conditions in a piece of code are tested for true and false outcomes.
  • Data Flow Testing: Examines the data flow within a program to identify potential issues like undefined variables or incorrect data transformations.
  • Mutation Testing: Introducing small changes (mutations) into the code and verifying that the tests detect these mutations.

White box testing is typically performed by developers or experienced testers who have access to the source code. It is often used in conjunction with other testing methods, such as black box testing, to provide a more comprehensive assessment of software quality. While effective in identifying errors related to internal logic and code structure, white box testing can be time-consuming and may not uncover issues related to usability or external system interactions. It also requires continuous maintenance of test cases as the codebase evolves.