课件白盒测试之理论篇.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课件白盒测试之理论篇

覆盖标准 程序结构举例 测试用例 应满足的条件 语句覆盖 A^B=.T. 分支覆盖 A^B=.T. A^B=.F. A^B T F A^B T F * 条件覆盖 A=.T. A=.F. B=.T. B=.F. 判定/条件 覆盖 A^B=.T. , A^B=.F. A=.T. A=.F. B=.T. B=.F. 条件组合 覆盖 A=.T. ^ B=.T. A=.T. ^ B=.F. A=.F. ^ B=.T A=.F. ^ B=.F. A^B T F A^B T F A^B T F 图示如下: * 8.2.1 语句覆盖 语句覆盖”是一个比较弱的测试标准, 它的含义是:选择足够的测试用例,使得程序 中每个语句至少都能被执行一次。为使程序中 每个语句至少执行一次,只需设计一个能通过 路径ace的例子就可以了,例如选择输入数据为: A=2,B=0,X=3 就可达到“语句覆盖”标准。 从上例可看出,语句覆盖实际上是很弱的, 如果第一个条件语句中的AND错误地编写成OR, 上面的测试用例是不能发现这个错误的; 又如第三个条件语句中X>1误写成X>0,这个测 试用例也不能暴露它,此外,沿着路径abd执行 时,X的值应该保持不变,如果这一方面有错 误,上述测试数据也不能发现它们。 语句覆盖 * 8.2.1 分支覆盖 A=3,B=0,X=1 (沿路径acd执行)?? A=2,B=1,X=3 (沿路径abe执行) 比“语句覆盖”稍强的覆盖标准是“分支覆盖” 含义是:执行足够的测试用例,使得程序中的每一个分支至少都通过一次。 对例1的程序,如果设计两个例子,使它们能通过路径ace和abd,或者通过路径acd和abe,就可达到“判定覆盖”标准,为此,可以选择输入数据为: ① A=3,B=0,X=1 (沿路径acd执行);?? ② A=2,B=1,X=3(沿路径abe执行)? 程序中含有判定的语句包括if-then-else、do-until、case、do-while等,所以“分支覆盖”更一般的含义是:使得每一个分支获得每一种可能的结果。 “分支覆盖”比“语句覆盖”严格,因为如果每个分支都执行过了,则每个语句也就执行过了。但是,“分支覆盖”还是很不够的,例如例1两个测试用例未能检查沿着路径abd执行时,X的值是否保持不变。 * 8.2.1 条件覆盖 A=2,B=0,X=4??(沿路径ace执行) A=1,B=1,X=1? (沿路径abd执行) 一个判定中往往包含了若干个条件, 如例1的程序中,判定(A>1) AND (B=0)包含了两个条件: A>1以及 B=0,所以可引进一个更强的覆盖标准——“条件覆盖”。 “条件覆盖”的含义是:执行足够的测试用例使得判定中的每个条件获得各种可能的结果。 例1的程序有四个条件:A>1、 B=0、A=2、X>1 为了达到“条件覆盖”标准,需要执行足够的测试用例使得在a点有: A>1、A≤1、B=0、B≠0 等各种结果出现, 以及在b点有: A=2、A≠2、X>1、X≤1 等各种结果出现。 现在只需设计以下两个测试用例就可满足这一标准: ① A=2,B=0,X=4??(沿路径ace执行); ② A=1,B=1,X=1?? (沿路径abd执行)。 * 8.2.1 条件覆盖 “条件覆盖”通常比“分支覆盖”强,因为它使一个判定中的每一个条件都取到了两个不同的结果,而判定覆盖则不保证这一点。 “条件覆盖”并不包含“分支覆盖”,如对语句IF(A AND B)THEN S 设计测试用例使其满足条件覆盖,即使A为真并使B为假,以及使A为假而且B为真,但是它们都未能使语句S得以执行。 * 条件覆盖 如对例2设计了下面的测试用例,则虽然满足了条件覆盖,但只覆盖了第一个条件的取假分支和第二个条件的取真分支,不满足分支覆盖的要求。 测试用例 通过路径 条件取值 覆盖分支 x=2、y=6、z=5 acd -T1、T2、-T3、T4 cd x=4、y=5、z=15 acd T1、-T2、T3、-T4 cd * 8.2.1 分支/条件覆盖 针对上面的问题引出了另一种覆盖标准——“分支 /条件覆盖”,它的含义是:执行足够的测试用例,使得分支中每个条件取到各种可能的值,并使每个分支取到各种可能的结果。 对例1的程序,前面的两个例子 ① A=2,B=0,X=4 (沿ace路)?????????????????????? ② A=1,B=1,X=1 (沿abd路径)?? 是满足这一标准的。 * 分支/条件覆盖 对例2,根据定义只需设计以下两个测试用例便可以覆盖8个条件值以及4个判断分支

文档评论(0)

allap + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档