Structural testing, also known as glass box testing or white box testing is an approach where the tests are derived from the knowledge of the software's structure or internal implementation.
The other names of structural testing includes clear box testing, open box testing, logic driven testing or path driven testing.
Statement Coverage - This technique is aimed at exercising all programming statements with minimal tests.
Branch Coverage - This technique is running a series of tests to ensure that all branches are tested at least once.
Path Coverage - This technique corresponds to testing all possible paths which means that each statement and branch are covered.
Statement Testing = (Number of Statements Exercised / Total Number of Statements) x 100 % Branch Testing = (Number of decisions outcomes tested / Total Number of decision Outcomes) x 100 % Path Coverage = (Number paths exercised / Total Number of paths in the program) x 100 %
Forces test developer to reason carefully about implementation
Reveals errors in "hidden" code
Spots the Dead Code or other issues with respect to best programming practices.
Expensive as one has to spend both time and money to perform white box testing.
Every possibility that few lines of code is missed accidentally.
Indepth knowledge about the programming language is necessary to perform white box testing.