SElecture15 白盒测试方法.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* a b e c j=n k=j j++ 测试用例选择 * (2) 嵌套循环 ① 对最内层循环做简单循环的全部测试。所有其它层的循环变量置为最小值; ② 逐步外推,对其外面一层循环进行测试。测试时保持所有外层循环的循环变量取最小值,所有其它嵌套内层循环的循环变量取“典型”值。。 ③ 反复进行,直到所有各层循环测试完毕。 * * ④ 对全部各层循环同时取最小循环次 数,或者同时取最大循环次数 (3) 连锁循环 如果各个循环互相独立,则可以用与简单循环相同的方法进行测试。但如果几个循环不是互相独立的,则需要使用测试嵌套循环的办法来处理。 (4) 非结构循环 这一类循环应该使用结构化程序设计方法重新设计测试用例。 * 小结 静态黑盒测试是指检查产品描述,并在投入软件编写之前查找问题。 动态黑盒测试是指在不了解软件如何工作的前提下进行测试。 静态白盒测试是指通过正式审查和检验检查代码的细节。 动态白盒测试是指在看到软件的工作方式时,根据获得的信息对软件进行测试。 * * * * * * * * * * * * * * * * * * * * * 2. 程序环形复杂性 程序的环形(圈)复杂性给出了程序基本路径集中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。 从控制流图来看,一条独立路径是从入口到出口至少包含有一条在其它独立路径中从未有过的边的路径。 * 例如,在图示的控制流图中,一组独立的路径是 path1:1 - 11 path2:1 - 2 , 3 - 4 , 5 - 10 - 1 - 11 path3:1 - 2 , 3 - 6 - 8 - 9 - 10 - 1 - 11 path4:1 - 2 , 3 - 6 - 7 - 9 - 10 - 1 - 11 路径 path1,path2,path3,path4组成了控制流图的一个基本路径集。 * 环形复杂性的三种计算方法 1)、流图G的环形复杂性V(G)=流图中区域的数量 2)、流图G的环形复杂性V(G)=E-N+2,E是流图中边的数量,N是流图中节点的数量 3)、流图G的复杂性V(G)=P+1,P是流图中判定节点的数量 * 3. 图矩阵 为便于在机器上表示和处理控制流图,开发辅助基本路径测试的软件工具,可把流图转化为矩阵形式,即图矩阵。 图矩阵是一个正方形矩阵,其大小等于流图的节点数。 * 1 2 4 5 3 a c b d f e 节点 1 2 3 4 5 1 a 2 c b 3 d 4 e 5 f 三、逻辑覆盖 * 逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它属白盒测试。 语句覆盖 判定覆盖 条件覆盖 判定-条件覆盖 条件组合覆盖 路径覆盖 * * L1 * * * e * 语句覆盖  语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。 在图例中,正好所有的可执行语句都在路径L1上,所以选择路径 L1设计测试用例,就可以覆盖所有的可执行语句。 * * 测试用例的设计格式如下 【输入的(A, B, X),输出的(A, B, X)】 为图例设计满足语句覆盖的测试用例是: 【(2, 0, 4),(2, 0, 3)】  覆盖 ace【L1】 如果将第一个条件中的and改为or,或将第二个条件中的or改为and,该测试用例测试不出错误。 判定覆盖 判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。 判定覆盖又称为分支覆盖。 对于图例,如果选择路径L1和L2,就可得满足要求的测试用例: * * 【(2, 0, 4),(2, 0, 3)】覆盖 ace【L1】 【(1, 1, 1),(1, 1, 1)】覆盖 abd【L2】 如果选择路径L3和L4,还可得另一组可用的测试用例: 【(2, 1, 1),(2, 1, 2)】覆盖 abe【L3】 【(3, 0, 3),(3, 0, 1)】覆盖 acd【L4】 * * 【(2, 1, 1),(2, 1, 2)】覆盖 abe【L3】 【(3, 0, 3),(3, 0, 1)】覆盖 acd【L4】 上述两组测试用例不仅满足了“判定覆盖”,同时还做到了“语句覆盖”.但如果第二个判定条件X1,错写成X1,使用上述测试用例(2,1,1),照样能沿原路径(abe)执行,而不影响结果。 * 条件覆盖 条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。 在图例中,我们事先可对所有条件的取值加以标记。例如, 对于第一个判断: 条件 A>1 取真为 ,取假为 条件 B=0 取真为 ,取假为 * 对于第

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档