- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
0前言 白盒测试
白盒测试方法:C0例子 CO: 语句覆盖(Statement coverage)能发现语句错误 白盒测试方法:C0例子 CO:语句覆盖(Statement coverage)不能发现逻辑错误 白盒测试方法:分支,判定覆盖 C1:分支/判定覆盖(branch coverage/decision coverage) 目标:设计若干测试用例,运行被测程序,使程序中的每个判定的取真分支和取假分支至少执行一次 度量:被执行分支和总分支的比值 100%= De-facto-Standard 缺点: 分支顺序,环路和条件的影响未考虑在内 优点: 有工具支持! 死代码或代码瓶颈也可探测到 */44 白盒测试方法:C1例子 C1:分支/判定覆盖(branch coverage)/(decision coverage) 测试用例: 路径abdefhi和aceji覆盖了所有分支,按照分支覆盖的测试用例原则,可以使用路径abdefhi和aceji来设计测试用例。 对于路径abdefhi选择输入值{a=2,b=1,c=6}和对应的输出值{a=2,b=1,c=5),对于路径aceji选择输入值{a=1,b=0,c=1}和对应的输出值{a=1,b=0,c=1} 分析: 在语句6的判定中的条件c1被错写成了c1,利用上面两组测试用例,仍能得到同样的结果。这表明,只是判定覆盖,还不能保证一定能查出在判定的条件中存在的错误。 白盒测试方法:C1例子 C1:分支/判定覆盖(Branch coverage)能发现逻辑错误 白盒测试方法:C1例子 C1:分支/判定覆盖(Branch coverage)不能发现组合判断的条件中的错误 白盒测试方法:条件覆盖 C2:条件覆盖(condition coverage) 目标:设计若干测试用例,执行被测程序以后要使每个判定中每个条件的可能取值至少满足一次 C2并不一定比C1全面! 实例:判定3:(a0 and b0)和判定6:(al or c1) 原子条件集: (a0;b0;a1;c1) 一个100%=条件覆盖的测试数据,例如: 分析:在这种测试用例设计方法中,可以看出,测试用例不一定能满足前面提到的判定覆盖要求(C1),即每个判定的取真分支和取假分支至少执行一次,同样这样可能会造成程序逻辑错误被遗漏。 白盒测试方法:判定条件覆盖 C1+C2:判定-条件覆盖(branch condition coverage) 目标:设计若干测试用例,使得每个条件中的所有可能取值至少执行一次,同时,每个判定的可能结果至少执行一次。是C2和C1的结合,C1+C2! 实例:判定3:(a0 and b0)和判定6:(al or cl) 原子条件集:(a0;b0;a1;c1) 一个判定-条件覆盖的测试用例,例如: 分析:在表面上看来,判定-条件覆盖测试了所有条件的取值,但实际上并非如此,而是某些条件掩盖了另一些条件(由于多重条件判定)。 白盒测试方法:条件覆盖-多条件 C3:条件组合覆盖(多条件覆盖)(condition combination/multiple condition coverage) 目标:设计若干测试用例,运行所测程序,使得每个判定的所有可能的条件取值组合至少执行一次(包括所有原子条件和条件组合)。 可满足语句和分支的覆盖;C3比C2更全面。 实例:判定3:(a0 and b0)和判定6:(a1 or c1) 原子条件集:(a0;b0;a1;c1) 一个100%-复合条件覆盖的数据,例如: 白盒测试方法:路径覆盖 C4: 路径覆盖(path coverage) 目标:设计所有的测试用例,来覆盖程序中的所有可能的执行路径 度量:被执行的路径数和路径总数的比值,分支顺序、循环和条件等的影响都被考虑在内。 实例: 白盒测试方法:路径覆盖(续) C4: 路径覆盖(path coverage) 分析: 路经覆盖法没有覆盖所有的条件覆盖组合。 这是一种不切实际的方法,因为涉及到相当长和几乎无穷尽的路径数; 任何可能的循环在程序段中都被视为是可能的路径。 白盒测试方法:McCabe覆盖 McCabe的路径覆盖方法: 圈复杂度:V (G) =e-n+2p 其中e是边数, n是节点数, p为无链接部分的数目。 实例:一般p=1 从源节点到汇节点的线性独立路径数是: V(G)=e-n+2p=10-7+2=5 当规模很小时,我们可以直观地标识独立路径。 以下给出的是用节点/边序列表示的路径: p1:A
文档评论(0)