第3章白盒测试.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基本路径测试 例1、例2都是很简单的程序函数,只有四条路径。但在实践中,一个不太复杂的程序,其路径都是一个庞大的数字,要在测试中覆盖所有的路径是不现实的。为了解决这一难题,只得把覆盖的路径数压缩到一定限度内,例如,程序中的循环体只执行一次。 下面介绍的基本路径测试就是这样一种测试方法,它在程序控制图的基础上,通过分析控制构造的环行复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每一个可执行语句至少执行一次。 基本路径测试 前提条件 测试进入的前提条件是在测试人员已经对被测试对象有了一定的了解,基本上明确了被测试软件的逻辑结构。 测试过程 过程是通过针对程序逻辑结构设计和加载测试用例,驱动程序执行,以对程序路径进行测试。测试结果是分析实际的测试结果与预期的结果是否一致。 基本路径测试 在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。包括以下4个步骤和一个工具方法: 程序的控制流图:描述程序控制流的一种图示方法。 程序圈复杂度:McCabe复杂性度量。从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。 导出测试用例:根据圈复杂度和程序结构设计用例数据输入和预期结果。 准备测试用例:确保基本路径集中的每一条路径的执行。 工具方法: 图形矩阵:是在基本路径测试中起辅助作用的软件工具,利用它可以实现自动地确定一个基本路径集。 控制流图的符号 在介绍基本路径方法之前,必须先介绍一种简单的控制流表示方法,即流图。流图是对待测试程序过程处理的一种表示。流图使用下面的符号描述逻辑控制流,每一种结构化构成元素有一个相应的流图符号。 顺序结构 if 结构 Case 结构 while 结构 until 结构 控制流图 流图只有二种图形符号 图中的每一个圆称为流图的结点,代表一条或多条语句。 流图中的箭头称为边或连接,代表控制流。 任何过程设计都要被翻译成控制流图。 控制流图 在将程序流程图简化成控制流图时,应注意: 在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。 边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。 如下页图所示 控制流图 1 7 6 2,3 8 9 10 11 4,5 7 6 2 3 1 8 4 5 11 9 10 节点 边 区域 区域:由边和解点封闭起来的区域 计算区域:不要忘记区域外的部分 待测试程序 用流图表示的待测试程序 控制流图 如果判断中的条件表达式是由一个或多个逻辑运算符 (OR, AND, NAND, NOR) 连接的复合条件表达式,则需要改为一系列只有单条件的嵌套的判断。 例如: 1 if a or b 2 x 3 else 4 y 对应的逻辑为: 独立路径 独立路径:至少沿一条新的边移动的路径 1 7 6 2,3 8 9 10 11 4,5 路径1:1-11 路径2:1-2-3-4-5-10-1-11 路径3:1-2-3-6-8-9-10-1-11 路径4:1-2-3-6-7-9-10-1-11 对以上路径的遍历,就是至少一次地执行了程序中的所有语句。 分支/条件覆盖 针对上面的问题引出了另一种覆盖标准——“分支 /条件覆盖” 它的含义是:执行足够的测试用例,使得分支中每个条件取到各种可能的值,并使每个分支取到各种可能的结果。 对例1的程序,前面的两个例子 ① A=2,B=0,X=4 (沿ace路)?????????????????????? ② A=1,B=1,X=1 (沿abd路径)?? 是满足这一标准的。 分支/条件覆盖 对例2,根据定义只需设计以下两个测试用例便可以覆盖8个条件值以及4个判断分支。 测试用例 通过路径 条件取值 覆盖分支 x=4、y=6、z=5 abd T1、T2、T3、T4 bd x=2、y=5、z=11 ace -T1、-T2、-T3、-T4 ce 分支/条件覆盖 分支/条件覆盖从表面来看,它测试了所有条件的取值,但是实际上某些条件掩盖了另一些条件。 例如对于条件表达式(x3)(z10)来说,必须两个条件都满足才能确定表达式为真。如果(x3)为假则一般的编译器不在判断是否z10了。对于第二个表达式(x==4)||(y5)来说,若x==4测试结果为真,就认为表达式的结果为真,这时不再检查(y5)条件了。因此,采用分支/条件覆盖,逻辑表达式中的错误不一定能够查出来了。 条件组合覆盖 针对上述问题又提出了另一种标准——“条件组合覆盖”。 它的含义是:执行足

文档评论(0)

微微 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档