Whitebox testing is the process of testing a software based on an analysis of the internal structure of the component or system, as opposed to blackbox testing. The tester chooses inputs to exercise paths through the code and determines the appropriate outputs. Programming know-how and the implementation knowledge is essential.