逻辑驱动覆盖测试
1、逻辑驱动覆盖测试分为六种,如图所示

1、Public void foo(int a, int b, int x) {
if (A > 1 && B = = 0 ) {
X = X/A ;
}
if (A = = 2 || X > 1 ) {
X = X + 1;
}
}
图中存在4条路径
L1:s->a-> c -> b ->e->d
L2:s -> a -> b-> d
L3: s -> a -> b-> e->d
L4: s-> a -> c -> b -> d

2、语句覆盖:
语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。
语句覆盖率也被称为行为覆盖率、段覆盖率或基本块覆盖率。
语句覆盖率 = 至少被执行一次的语句数量/可执行的语句总数

3、判定覆盖:
设计若干个测试用例,运行被测程序,使得程序中每个判断的真、假分支至少执行一次。判定覆盖又称为分支覆盖。
以上面的程序为例,如果设计两组测试用例,使它们能通过路径L1和L2, 或通过路径L3和L4,即可达到判定覆盖标准。
判定覆盖率 = 判定结果被评价的次数 / 判定结果结果的总数

4、条件覆盖:
设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的真假取值至少执行一次。
条件覆盖率 = 条件操作数值至少被求值一次的数量 / 条件操作数值的总数

5、判定-条件覆盖:
判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判定的所有可能取值至少执行一次。

6、条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。

7、路径覆盖:
路径覆盖就是设计足够的测试用例,覆盖程序中所有可能的路径。
路径覆盖率 =至少被执行到一次的路径数/总的路径数

1、上述6种测试方法,每一种方法都有优缺点和局限性。
从实际应用来看,语句覆盖、判定覆盖和路径覆盖应用最多,往往对测试人员设计的测试用例有如下要求:
语句覆盖率100%
判定覆盖率85%以上
路径覆盖率80%以上
至于其他覆盖测试则用得不多。