正文

分支程序的覆盖测试2007-04-18 21:55:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/watersky/24999.html

分享到:

(1)语句覆盖法
  语句覆盖是企图用足够多的测试用例,使程序中的每个语句都执行一遍,以尽可能多的发现程序中的错误。这里,言外之意是,即使第个语句都执行一遍,也还不一定能够发现全部的错误。
(2)分支覆盖法
  分支覆盖也称为判定覆盖,它要求通过足够的测试用例使每个判定的每个分支至少通过一次。分支覆盖准则比语句覆盖准则严密了一些,但仍然不够充分。因为一个判定中往往包含多个条件,而用分支覆盖并不一定能将每个条件都测试一次。
(3)条件覆盖法
  条件覆盖是通过执行充足的测试用例,使每个判定中的每个条件都至少使用一次。
例如:
{
if(a > 1 && b == 0) x /= a;
if(a == 2 || x > 1) x += 1;
}
对于上面的语句有以下四个条件:
1、a > 1   2、b == 0  3、a == 0  4、x > 1
如果设计下面两组测试用例,就可将每个条件都使用一次:
A:a = 2, b = 1, x = 1
B:a = 1, b = 0, x = 3
(4)组合条件覆盖法
  条件覆盖似乎比判定覆盖更好,但实际上未必这样。因为它有时候不能满足组合条件,也就是说,条件覆盖有可能连分支覆盖准则也满足不了。为此,人们又提出了一种更强的准则--组合条件覆盖准则:执行充足的测试用例,使判定中条件的各种可能组合至少出现一次。对于上面的例子:
第一个判定有以下4种条件组合:
1、a > 1 && b == 0
2、a > 1 && b <> 0
3、a <= 1 &&b == 0
4、a <= 1 && b <> 0
第二个判定也有以下4种条件组合:
5、a == 2 && x > 1
6、a <> 2 && x > 1
7、a == 2 && x <= 1
8、a <> 2 && x <= 1
下面的4个用例就可以覆盖上述8种可能的组合结果:
A:a = 2, b = 0, x = 4(覆盖1与5)
B:a = 2, b = 1, x = 1(覆盖2与7)
C:a = 1, b = 0, x = 2(覆盖3与6)
D:a = 1, b = 1, x = 1(覆盖4与8)

阅读(4587) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册