4、判定/条件覆盖
1)主要特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。
2)用例设计:
|
X |
Y |
路径 |
1 |
90 |
90 |
OAE |
2 |
50 |
50 |
OBDE |
3 |
90 |
70 |
OBCE |
4 |
70 |
90 |
OBCE |
3)优点:判定/条件覆盖满足判定覆盖准则和条件覆盖准则,弥补了二者的不足。
4)缺点:判定/条件覆盖准则的缺点是未考虑条件的组合情况。
5、组合覆盖
1)主要特点:要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。
2)用例设计:
|
X |
Y |
路径 |
1 |
90 |
90 |
OAE |
2 |
90 |
70 |
OBCE |
3 |
90 |
30 |
OBDE |
4 |
70 |
90 |
OBCE |
5 |
30 |
90 |
OBDE |
6 |
70 |
70 |
OBDE |
7 |
50 |
50 |
OBDE |
3)优点:多重条件覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。更改的判定/条件覆盖要求设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身的所有可能结果也至少出现一次。并且每个条件都显示能单独影响判定结果。
4)缺点:线性地增加了测试用例的数量。
6、路径覆盖
1)主要特点:设计足够的测试用例,覆盖程序中所有可能的路径。
2)用例设计:
|
X |
Y |
路径 |
1 |
90 |
90 |
OAE |
2 |
50 |
50 |
OBDE |
3 |
90 |
70 |
OBCE |
4 |
70 |
90 |
OBCE |
3)优点:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。
4)缺点:由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。而在有些情况下,一些执行路径是不可能被执行的,如: If (!A)B++; If (!A)D--;
(编辑:aniston)
|