Testing the "white box" and "black box"

August 09, 2017

In the terminology of test professionals (software and some hardware), the terms "white box testing" and "black box testing" refer to whether the test developer has access to the source code of the software under test, or whether testing is performed through the user interface or the application programming interface , provided by the module under test.

When testing a white box (English white-box testing, also called a transparent box), the test developer has access to the source code of the programs and can write code that is associated with the libraries of the software under test. This is typical for unit testing, in which only parts of the system are tested. It ensures that the components of the structure are efficient and stable, to a certain extent. When testing a white box, the code coverage metrics are used.

When testing a black box, the tester has access to the software only through the same interfaces as the customer or user, or through external interfaces that allow another computer or another process to connect to the system for testing. For example, the testing module can virtually press keys or mouse buttons in the program under test using a process interaction mechanism, with certainty whether everything is right, that these events cause the same response as real keystrokes and mouse buttons. Typically, the testing of the black box is conducted using specifications or other documents that describe the requirements for the system. Software testing services will help achieve the desired goals. Typically, in this type of testing, the coverage criterion consists of covering the input data structure, covering the requirements and covering the model (in model-based testing).

If "alpha" and "beta testing" refer to stages before the release of the product (and also implicitly to the size of the testing community and restrictions on testing methods), testing the "white box" and the "black box" relates to the ways in which the tester achieves the goal.

Beta testing is generally limited to the technique of the black box (although a constant part of the testers usually continues testing the white box parallel to the beta test). Thus, the term "beta testing" may indicate the status of the program (closer to release than "alpha"), or it may indicate a certain group of testers and the process performed by this group. So, the tester can continue to work on testing the white box, although the software is already "in beta" (stage), but in this case it is not part of the "beta" (group / process).

Press Room