白盒测试-逻辑覆盖法:
1. 逻辑覆盖法与基本路径测试法的区别:
逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖,它是一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖,以及修正条件/判定覆盖等都是从不同要求出发,为了设计测试用例提供依据的度量标准。
基本路径测试法是在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。
逻辑覆盖主要针对程序中的由于判定条件所产生的分支结构进行测试;
路径覆盖只要从由于各种逻辑判定条件所形成的复杂的程序执行路径这个角度入手;
即便是逻辑覆盖程度最高的条件组合覆盖,也不能保证覆盖了所有的分支组合(条件组合覆盖度量标准只考虑了每个判定内部的条件组合情况),而符合路径覆盖的一组用例,也不能完全保证它一定符合了条件组合覆盖的度量标准。
2. 5种逻辑覆盖之间的关系:
| / | sc | dc | cc | cdc | mcc |
| sc | / | V | X | V | V |
| dc | V | / | X | V | V |
| cc | X | X | / | V | V |
| cdc | V | V | V | / | V |
| mcc | V | V | V | V | / |
A. 满足判定覆盖的度量标准的测试用例也一定满足语句覆盖的度量标准;(至少三种情况例外:
 程序中不存在判断;
 程序或子程序/方法有着多重入口点。只有从程序的特定入口点进入时,某条特定的语句才能执行;
 在on单元(on-unit)?里的语句。遍历每条分支路径并不一定能确保所有的on单元都能执行到)
B. 覆盖了条件的测试用例并不一定覆盖分支;
C. 条件组合覆盖是对每个判定分别考虑它们的组合而不是对整个程序中的所有判定的所有条件的组合。
3. 修正条件判定覆盖:
为了既实现怕判定/条件覆盖中尚未考虑到的各种条件组合情况的覆盖,又减少像条件组合覆盖中可能产生的大量数目的测试用例。修正条件判定覆盖要求满足两个条件:
A. 首先,每一个程序模块的入口和出口点都要考虑至少要被调用一次,每个程序的判定到所有的可能的结果值要至少转换一次;
B. 程序的判定被分解为通过逻辑操作符连接的bool条件,每个条件对于判定的结果值是独立的。









TAG:
评分(