White box (software engineering)
In software engineering white box[citation needed], in contrast to a black box, is a subsystem whose internals can be viewed, but usually cannot be altered. This is useful during white box testing, where a system is examined to make sure that it fulfills its requirements.
Having access to the subsystem internals in general makes the subsystem easier to understand, but also easier to hack; if a programmer, for example, can examine source code, weaknesses in an algorithm are much easier to discover. This makes white box testing much more effective than black box testing, but considerably more difficult due to the sophistication needed on the part of the tester to understand the subsystem.
Also known as glass box, clear box, or open box.
White box also refers to a system that is visible, but which is so complex that it might as well be a Black box.