软件测试技术-chap4new.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文档。上传文档
查看更多
软件测试技术-chap4new.ppt

第4章 白盒测试方法 把程序看成装在一个透明的白盒子里,程序的结构和处理呈现过程完全可见,按照程序的内部逻辑测试程序,以检查程序中的每条通路是否都能按照预先要求正确工作。 白盒测试的基本概念 什么是白盒测试 把程序看成装在一个透明的白盒子里,程序的结构和处理过程完全可见,按照程序的内部逻辑测试程序,以检查程序中的每条通路是否都能按照预先要求正确工作。 逻辑覆盖 逻辑覆盖是以程序的内部逻辑结构为基础的测试用例设计技术,属于白盒测试。它要求测试人员十分清楚程序的逻辑结构,考虑的是测试用例对程序内部逻辑覆盖的程度。 白盒测试逻辑覆盖符号使用说明 表示某个条件的真假使用Ti和Fi(i为该条件的序号),表示某个判定的真假使用TDi 和 FDi (i为该条件的序号)。 条件: A 1 记为T1, A 1 记为F1 B 0 记为T2, B! 0 记为F2 判定: A 5 and B 0 记为TD1,判定为假,记为FD1 A 2 or X 1 记为TD2,判定为假,记为FD2 1 语句覆盖 程序路径 L1: a ? c ? e L2: a ? b ? d L3 : a ? b ? e L4: a ? c ? d 设计满足语句覆盖的测试用例是: 【 2, 0, 4 , 2, 0, 3 】 语句覆盖 语句覆盖率:已执行的可执行语句占程序中可执行语句总数的百分比 语句覆盖率越高越好 语句覆盖的优点 容易实现自动测试 代码覆盖率高 如果是程序块覆盖,则不涉及程序块中的源代码 语句覆盖率的问题 语句覆盖率看似很高,却有严重缺陷: if x! 1 statements; ……; //99句 else statement; //1句 语句覆盖不能检查出的错误 逻辑运算(、||)错误 判定的第一个运算符“”错写成“||”,或第二个运算符“||”错写成“”,这时使用上述的测试用例仍然可以达到100%的语句覆盖。 循环语句错误 循环次数错误 跳出循环条件错误 2判定覆盖(分支覆盖) 为图例设计满足判定覆盖的测试用例是:【 2, 0, 3 , 1, 1, 1 】 2判定覆盖 请选择其它路径,设计另一组可用的测试用例 思考:满足判定覆盖就满足语句覆盖吗? 3.条件覆盖 在设计程序中,一个判定语句是由多个条件组合而成的。 例如:判定a b||c 包含了三个条件:a,b和c。为了更彻底的实现逻辑覆盖,可以采用条件覆盖。 3.条件覆盖 3.条件覆盖 或 测试用例 覆盖分支 条件取值 【 1,0,3 , 1,0,4 】 L3 b, e F1T2F3T4 【 2,1,1 , 2,1,2 】 L3 b, e T1F2T3F4 思考:满足条件覆盖就满足判定覆盖吗? 4 判定/条件覆盖 判定-条件覆盖实际上是将判定覆盖和条件覆盖结合起来的一种方法。 设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判定的可能结果也至少出现一次。 设计测试用例覆盖4个条件的8种取值以及4个判定分支。 4 判定/条件覆盖 测试用例 覆盖分支 条件取值 【 2,0,4 , 2,0,3 】 L1 ace T1T2T3T4 【 1,1,1 , 1,1,0 】 L2 abd F1F2F3F4 4 判定/条件覆盖 分析:从表面上看,判定-条件覆盖测试了各个判定中的所有条件的取值,但实际上,编译器在检查含有多个条件的逻辑表达式时,某些情况下的某些条件将会被其它条件所掩盖。因此,判定-条件覆盖也不一定能够完全检查出逻辑表达式中的错误。 例如:对于第一个判定 A 1 B 0 来说,必须A 1和B 0这两个条件同时满足才能确定该判定为真。如果A 1为假,则编译器将不再检查B 0这个条件,那么即使这个条件有错也无法被发现。对于第二个判定 A 2 || X 1 来说,若条件A 2满足,就认为该判定为真,这时将不会再检查X 1,那么同样也无法发现这个条件中的错误。 5 条件组合覆盖 条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。 5.条件组合覆盖 测 试 用 例 覆盖条件 【 2, 0, 4 , 2, 0, 3 】 L1 T1T2T3T4 【 2, 1, 1 , 2, 1, 2 】 L3 T1F2T3F4 【 1, 0, 3 , 1, 0, 4 】 L3 F1T2F3T4 【 1, 1, 1 , 1, 1, 1 】 L2 F1F2F3F4 6 路径覆盖 路径覆盖就是设计足够的测试用例,覆盖程序中所有可能的路径。 6 路径覆盖 分析:虽然前面一组测试用例满足了

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档