逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它属白盒测试。
L1 ( a à c à e )
= {(A>1) and (B=0)} and
{(A=2) or (X/A>1)}
= (A>1) and (B=0) and (A=2) or
(A>1) and (B=0) and (X/A>1)
= (A=2) and (B=0) or
(A>1) and (B=0) and (X/A>1)
L2 ( aà b à d )
= not{(A>1) and (B=0)} and
not{(A=2) or (X>1)}
= { not (A>1) or not (B=0) } and
{ not (A=2) and not (X>1) }
= not (A>1) and not (A=2) and not (X>1)
or
not (B=0) and not (A=2) and not (X>1)
L3 ( aà bà e)
= not {(A>1) and (B=0)} and
{(A=2) or (X>1)}
= { not (A>1) or not (B=0)} and
{(A=2) or (X>1)}
= not (A>1) and (A=2) or
not (A>1) and (X>1) or
not (B=0) and (A=2) or
not (B=0) and (X>1)
L4 ( aà c à d )
= {(A>1) and (B=0)} and
not {(A=2) or (X/A>1)}
= (A>1) and (B=0) and not (A=2) and
not (X/A>1)
语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。
在图例中,正好所有的可执行语句都在路径L1上,所以选择路径 L1设计测试用例,就可以覆盖所有的可执行语句。
测试用例的设计格式如下
【输入的(A, B, X),输出的(A, B, X)】
为图例设计满足语句覆盖的测试用例是:
【(2, 0, 4),(2, 0, 3)】 覆盖 ace【L1】
判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。判定覆盖又称为分支覆盖。
对于图例,如果选择路径L1和L2,就可得满足要求的测试用例:如果选择路径L3和L4,还可得另一组可用的测试用例
条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。
判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,每个判断中的每个条件的可能取值至少执行一次。
条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。
路径测试就是设计足够的测试用例,覆盖程序中所有可能的路径。