White Box Testing is a form of penetration testing which tests internal structures of an application, as opposed to the applications functionality (also known as Black Box Testing). Programming skills are typically used to design test cases. The tester chooses inputs to exercise paths through the code and determine the expected outputs. White-box testing can be applied at three points in software testing: unit, integration and system levels.
Although traditional testers tended to think of white-box testing as being done at the unit level, it is used for integration and system testing more frequently today.
Additional Reading: Banks Engage in Self-Hacks to Keep Defenses Sharp