<P> White - box testing (also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of testing software that tests internal structures or workings of an application, as opposed to its functionality (i.e. black - box testing). In white - box testing an internal perspective of the system, as well as programming skills, are used to design test cases . The tester chooses inputs to exercise paths through the code and determine the expected outputs . This is analogous to testing nodes in a circuit, e.g. in - circuit testing (ICT). White - box testing can be applied at the unit, integration and system levels of the software testing process . 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 . It can test paths within a unit, paths between units during integration, and between subsystems during a system--level test . Though this method of test design can uncover many errors or problems, it has the potential to miss unimplemented parts of the specification or missing requirements . </P> <P> White - box test design techniques include the following code coverage criteria: </P> <Ul> <Li> Control flow testing </Li> <Li> Data flow testing </Li> <Li> Branch testing </Li> <Li> Statement coverage </Li> <Li> Decision coverage </Li> <Li> Modified condition / decision coverage </Li> <Li> Prime path testing </Li> <Li> Path testing </Li> </Ul> <Li> Control flow testing </Li>

While using white-box testing methods the software engineer can derive test cases that