- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四讲:软件测试覆盖分析 Lian Yu The School of Software and Microelectronics Peking University No.24 Jinyuan RD, Beijing 102600 提纲 软件测试覆盖分析 代码覆盖分析 控制流覆盖 语句覆盖 、判定覆盖 、条件覆盖 、条件判定组合覆盖 、多条件覆盖 、修正条件/判定覆盖 、路径覆盖 数据流覆盖 Rapps和Weyuker的标准 、Ntafos的标准 、Ural的标准 、Laski和Korel的标准 其它覆盖标准 软件测试覆盖分析 我们分别学习了白盒测试与黑盒测试技术。我们可能会提出一个问题,就是“测试执行到何时是足够的?”我们需要一种方式来知道测试已经执行的程度。 测试覆盖是一种可以凭经验确定软件质量的方法。 每种测试覆盖意味着一种针对特定种类的程序缺陷的测试技术。 软件测试覆盖分析(续) 测试覆盖分析可以在测试计划阶段与测试执行阶段进行。 在测试计划阶段,我们须确定用何种测试覆盖分析及相应的覆盖率。覆盖率通常表示为百分比,但是百分比的意义取决于使用了什么测试覆盖分析。 在测试执行阶段,我们将根据既定的覆盖率来检查是否进行了足够的测试。 基于测试覆盖分析的测试过程 本章将主要地介绍面向白盒测试技术的代码覆盖分析,并简要地介绍几种面向黑盒测试技术的覆盖分析。 提纲 软件测试覆盖分析 代码覆盖分析 控制流覆盖 语句覆盖 、判定覆盖 、条件覆盖 、条件判定组合覆盖 、多条件覆盖 、修正条件/判定覆盖 、路径覆盖 数据流覆盖 Rapps和Weyuker的标准 、Ntafos的标准 、Ural的标准 、Laski和Korel的标准 其它覆盖标准 代码覆盖分析 代码覆盖是测试软件的一种量度标准。它描述程序的源代码被测试了的程度。 代码覆盖是一种直接观测代码而进行的测试,因而归于白盒测试。 代码覆盖技术是最早的系统性软件测试技术中的成员。 第一篇参考文献是由Miller and Maloney于1963年发表于“Communications of the ACM”杂志上。 代码覆盖分析(续) 基于代码覆盖测试工具(方法)的输入是一个程序和一个覆盖标准;输出是一组满足该覆盖标准路径有限集,称作测试组(Suite)。 基于代码覆盖测试的两个主要步骤是 识别满足覆盖标准的一组实体, 然后选择一组覆盖该组实体的有限路径。 代码覆盖分析(续) 有很多种不同的代码覆盖标准及量度代码覆盖方法,介绍两种代码覆盖类型:控制流覆盖与数据流覆盖。 控制流覆盖是选择一组实体以满足覆盖标准:语句覆盖、判定覆盖、条件覆盖、多条件覆盖、条件判定组合覆盖、修正条件/判定覆盖及路径覆盖;然后选择一组覆盖该组实体的有限路径。 数据流覆盖是选择一组满足变量的定义与引用间的某种关联关系实体;然后选择一组覆盖该组实体的有限路径。 代码覆盖分析(续) 无论是哪种覆盖类型,它们都遵循如下的测试过程: 由被测程序的源代码,构造程序图。如基本路径法的流图,数据流法的定义使用关联图等。 根据程序图,生成测试用例。如基本路径法中,先算出环形复杂度,再据此找出基本路径集,生成测试用例。 编译被测源程序,生成可执行代码(假设源程序无语法错误)。 生成的可执行代码,用测试用例的输入条件驱动,以执行程序测试。 计算测试结果的实际覆盖率,如果达不到既定覆盖率,则返回第2步,否则结束测试。 对于测试结果,除了进行代码覆盖分析外,还可以进行其他方面的分析,如测试通过率,失败率,可靠性等。 提纲 软件测试覆盖分析 代码覆盖分析 控制流覆盖 语句覆盖 、判定覆盖 、条件覆盖 、条件判定组合覆盖 、多条件覆盖 、修正条件/判定覆盖 、路径覆盖 数据流覆盖 Rapps和Weyuker的标准 、Ntafos的标准 、Ural的标准 、Laski和Korel的标准 其它覆盖标准 控制流覆盖 控制流覆盖是选择一组实体以满足覆盖标准: 语句覆盖、判定覆盖、条件覆盖、多条件覆盖、条件判定组合覆盖、修正条件/判定覆盖及路径覆盖;然后选择一组覆盖该组实体的有限路径。 语句覆盖 语句覆盖(Statement?Coverage?)度量报告每个可执行语句是否被执行,即每行源代码是否都被执行了并且被测试了。 其含义是选择足够多的测试数据,使被测程序中每条语句至少执行一次。 语句覆盖亦称为线覆盖面(line?coverage)或段覆盖面(segment?coverage)。 语句覆盖(续) 要达到100%覆盖可能相当难的。 也许有的代码片断被设计用来处理错误条件,如果这种错误不出现,这段代码无法执行也就无法测试; 或很少发生的事件,例如在代码的一个片断接受某一信号,这种情况也
文档评论(0)