These techniques involve checking the software without executing code to identify errors early:
: Ensures that every single executable line of code is executed at least once during testing.
Testing both true and false paths of all decisions (e.g., if-else statements).
Testing all combinations of inputs and preconditions is infeasible. Instead, risk analysis and priorities should guide testing efforts.
These involve examining the internal logic and code structure.
: Structured evaluations of documentation by peers or stakeholders.