白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
(一)逻辑覆盖法白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:
语句覆盖:每条语句至少执行一次。在代码中只包含if而没有对应的else时测试用例可能只考虑执行if的情况。
判断覆盖:每个判定的每个分支至少执行一次。只考虑了判断语句的最终结果,而忽略了条件本身在执行过程中的变化。
条件覆盖:每个判定的每个条件应取到各种可能的值。只要求每个条件的真假都出现而对判断语句的真假没有做出要求,不能保证判断覆盖。
判定/条件覆盖:同时满足判定覆盖条件覆盖。判断中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。
条件组合覆盖:每个判定中各条件的每种组合至少出现一次。线性的增加了用例的数量。
路径覆盖: 程序中每一条可能的路径至少执行一次。使工作量呈指数级增长,在一定情况下执行路径使不可能被执行的。