White box testing involves designing test cases based on examining the internal structure and logic of a program. This includes:
1) Statement testing to execute all statements in a program.
2) Branch/decision testing to execute all outcomes of logical decisions.
3) Branch condition combination testing to test all combinations of conditions in decisions.
4) Modified condition combination testing to independently test each condition in decisions.
5) Loop testing to execute loops at their boundaries and within operational bounds.
White box testing aims to thoroughly exercise a program's control flow and internal logic to uncover defects, whereas black box testing focuses only on inputs and outputs without examining internal structure. White box testing generally achieves higher coverage