11、白盒测试.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 白盒测试 内容提要 11.1 白盒测试的概述 11.2 控制流测试 11.2.1 语句覆盖 11.2.2 判定覆盖 11.2.3 条件覆盖 11.2.4 判定-条件覆盖测试 11.2.5 路径覆盖 11.2.6 几种常用逻辑覆盖的比较 11.2.7 循环测试 11.3 基本路径测试 11.3.1 程序的控制流图 11.3.2 程序结构的要求 11.3.3 举例分析 内容提要 11.4 程序插装/程序变异测试 11.5 白盒测试工具 11.5.1 C++Test介绍 11.5.2 白盒测试工具JUnit 11.6 软件缺陷分析 11.6.1 简介 11.6.2 软件缺陷的类别 11.6.3 软件缺陷的级别 11.6.4 软件缺陷产生的原因 11.6.5 软件缺陷的构成 11.7小结 为什么要进行静态白盒测试? 尽早发现软件缺陷 为黑盒测试员在接受软件进行测试时设计和应用测试用例提供思路 白盒测试的优点和局限性 1.白盒测试的优点 与黑盒测试相比,白盒测试深入到程序的内部进行测试,更易于定位错误的原因和具体位置,弥补了黑盒测试只能从程序外部进行测试的不足。 2.白盒测试的局限性 但白盒测试也有其局限性,即使白盒测试覆盖了程序中的所有路径,仍不一定能发现程序中的全部错误。这是因为: 白盒测试不能查出程序中的设计缺陷。 白盒测试不能查出程序是否遗漏了功能或路径。 白盒测试可能发现不了一些与数据相关的错误。 白盒测试方法的分类 白盒测试分为静态测试(Static Testing)和动态测试(Dynamic Testing)两大类。 静态测试不实际执行程序,静态测试的主要目的是检查软件的表示和描述是否一致,没有冲突和歧义。静态测试可以由人工执行,也可以借助一些自动化工具完成。 动态测试需要实际运行测试用例,以发现软件中的错误。白盒测试中的动态测试主要包括功能确认与接口测试、覆盖率测试、性能分析、内存分析等。 静态测试技术 1 代码检查 2 静态结构分析 3 代码质量度量 1 代码检查 代码检查包括代码走查、代码审查等 正式审查涉及到4个基本要素: 确定问题 遵守规则 准备 编写报告 正式审查的间接效果 交流 质量 小组同志化 解决方案 同事审查 要求最底的正式审查 同事直接换着审查 常在编写代码或设计体系结构的程序员之间进行 为了提高效率,也必须遵守4个关键要素. 代码走查 有组织的代码走查在编码阶段去除错误的成本是在软件发布阶段去除错误成本的1/92 全部的代码是否都需要走查 最大的问题是劝说开发者要遵循一定的标准 编码标准与规范—三个原因 可靠性 可读性/维护性 移植性 …… 编码规范与风格 代码应该是清楚的和简单的-------具有直截了当的逻辑、自然的表达式、通行的语言使用方式 好的风格对于好的程序设计具有关键性作用 项目要求从严格遵守国家和国际标准到松散的小组内部规范. 获取标准 ANSI IEC ISO NCITS ACM IEEE 代码审查 代码审查和代码走查比较 代码审查是提高代码质量的良药 消除开发员的心理抵触 代码审查要有目标 代码审查和代码走查比较 代码审查清单 数据引用错误 数据声明错误 计算错误 比较错误 控制流程错误 子程序参数错误 输出错误 其他检查 2静态结构分析 静态结构分析主要是以图形的方式表现程序的内部结构,例如函数调用关系图、函数内部控制流图。其中,函数调用关系图以直观的图形方式描述一个应用程序中各个函数的调用和被调用关系;控制流图显示一个函数的逻辑结构,它由许多节点组成,一个节点代表一条语句或数条语句,连接结点的叫边,边表示节点间的控制流向。 3 代码质量度量 ISO/IEC 9126国际标准所定义的软件质量包括六个方面:功能性、可靠性、易用性、效率、可维护性和可移植性。软件的质量是软件属性的各种标准度量的组合。 例子程序: if( (a1) (b=0)) x=x/a; if ((a=2) || (x1)) x=x+1; 程序框图 1.语句覆盖 设计若干条测试用例,使程序中每条可执行语句至少执行一次。 Case1:A=2, B=0, X=3 Case2:A=2, B=1, X=3 Case1:A=2, B=0, X=3 语句覆盖 【优点】 :可以很直观地从源代码得到测试用例,无须细分每条判定表达式。 【缺点】 :由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件是无法测试的。如在多分支的逻辑运算中无法全面的考虑。语句覆盖是最弱的逻辑覆盖。 2. 判定覆盖(分支覆盖) 设计测试用例,使程序中的每个逻辑判断的取真和取假的分支

文档评论(0)

2232文档 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档