好的测试要追求对代码的“覆盖率”,以下___对代码的覆盖率最高。
白盒测试根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量。
白盒测试有静态和动态。
静态的白盒测试方法有桌面检查、代码审查、代码走查和代码扫描工具。
动态的白盒测试方法有逻辑覆盖法和基本路径测试法。
逻辑覆盖法有语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖。
测试覆盖强度:语句覆盖<判定覆盖<条件覆盖<判定条件覆盖<条件组合覆盖<路径覆盖
语句覆盖:可执行语句至少被执行一次。
判定覆盖:每个判断的取真分支和取假分支至少经历一次
条件覆盖:每个条件的取值至少满足一次
判定条件覆盖:使得判定中的每个条件取到各种可能的值,并使每个判定取到各种可能的结果
条件组合覆盖:可能的组合都至少出现一次。
例如:
语句if(a>5 && b<0)满足条件组合覆盖需要设计测试用例的个数为4
真真,假假,真假,假真
路径覆盖:选取足够多的测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)。
综上:
路径覆盖一定包含判定覆盖,与条件并没有直接关系。
判定条件覆盖一定包含判定覆盖和条件覆盖。
条件覆盖与判定覆盖并不等同并且没有直接的关系,只是关注点不同,条件覆盖关注条件的真假,判定覆盖关注判定分支。