白盒测试技术1-代码审查(静态).ppt

白盒测试技术1-代码审查(静态).ppt

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
* 白盒测试技术(Ⅰ) 白盒测试概念 白盒测试 也称结构测试或逻辑驱动测试,通过了解软件系统的内部工作过程,设计测试用例来检测程序内部动作是否按照规格说明书规定的正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作。 白盒测试旨在使测试充分地覆盖软件系统的内部结构,并以软件结构中的某些元素是否都已得到测试为准则来判断测试的充分性。 黑盒测试和白盒测试 黑盒测试 白盒测试 客户需求 事件驱动 输入 输出 白盒测试概念 目前,比较成熟的白盒测试技术方法有 静态白盒法 逻辑覆盖法 基本路径法 侵入式法 数据定义/使用法 程序片法 静态白盒法 静态白盒测试 是在不执行的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程。 好处: 尽早发现软件缺陷。 为黑盒测试员提供思路。 静态白盒测试法分类 静态白盒测试法一般根据审查的严格程度分为三种: 1、同行评审 也称为伙伴审查,这种方法大体类似于“如果你给我看你的,我也给你看我的”类型的讨论。同行评审常常仅在编写代码或设计体系结构的程序员,以及充当审查者的其他一两个程序员和测试员之间进行。 2、走查 走查是比同行评审更正规一些的方法,在走查中,编写代码的程序员向其他程序员和测试员组成的小组作正式陈述。 静态白盒测试法分类(续) 3、评审 评审是最正式的审查类型,具有高度组织化,要求每一个参与者都接受训练。 召开评审会议之后,要准备一份书面报告,明确解决问题所必需重做的工作。然后程序员进行修改,由会议协调员验证修改结果。 评审经证实是从设计文档和代码中发现软件缺陷非常有效的方法。 静态测试和动态测试 主持人 作者 记录员 列席人员 内审员 技术专业人员 用户代表 不正式 正式 互审 走查 审查会议 运行程序 不运行程序,仅通过分析或检查等其他手段达到检测的目的。 通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能 通用代码审查清单 关于静态白盒测试在正式审查中验证软件应该查找的问题: 1. 数据引用错误 数据引用错误是指使用未经正确声明和初始化的变量、常量、 数组、字符串或记录而导致的软件缺陷。 是否引用了未初始化的变量?查找遗漏之处与查找错误同等重要。 数组和字符串的下标是整数值吗? 在检索操作或者引用数组下标时是否包含“丢掉一个”这样的潜在错误? 是否在应该使用常量的地方使用了变量--例如在检查数组边界时? 变量是否被赋予不同类型的值?例如,无意中使代码为整形变量赋予一个浮点数值? 为引用的指针分配内存了吗? 通用代码审查清单(续) 2. 数据声明错误 数据声明缺陷产生的原因是不正确地声明或使用变量和常量。 所有变量都赋予正常的长度、类型和存储类了吗? 例如,本应声明为字符串的变量声明为字符数组了吗? 变量是否在声明的同时进行了初始化?是否正确初始化并与其类型一致? 变量有相似的名称吗?这基本上不算软件缺陷,但有可能是程序中其他地方出现名称混淆的信息。 存在声明过、但从未引用或者只引用过一次的变量吗? 通用代码审查清单(续) 3. 计算错误 计算或者运算错误实质上是糟糕的数学问题,计算无法得到预期结果。 计算中是否使用了不同数据类型的变量,例如将整数与浮点数相加? 计算中是否使用了类型相同但长度不同的变量---例如,将字节与字相加? 计算时是否了解和考虑到编译器对类型或长度不一致的变量的转换规则? 赋值的目的变量是否小于赋值表达式的值? 在数值计算过程中是否可能出现溢出? 对于整型算术运算,处理某些计算(特别是除法)的代码是否会导致精度丢失? 变量的值是否超过有意义的范围?例如,可能性的计算结果是否小于0%或者大于100% 对于包含多个操作数的表达式,求值的次序是否混乱,运算优先级对吗?需要加括号使其清晰吗? 通用代码审查清单(续) 4. 比较错误 小于、大于、等于、不等于、真、假。比较和判断错误很可能是由于边界条件问题。 比较得正确吗?虽然听起来简单,但是比较应该是小于还是小于等于常常发生混淆。 每一个逻辑表达式都正确表达了么?逻辑计算按预计的进行了吗?求值次序有疑问吗? 逻辑表达式的操作数是逻辑值吗?例如,是否包含整数值的整型变量用于逻辑计算中? 通用代码审查清单(续) 5. 控制流程错误 控制流程错误的原因是编程语言中循环等控制结构未按预期方式工作。它们通常由计算或者比较错误直接或者间接造成 如果程序包含begin…end和do…while等语句组,end是否明确给出并

文档评论(0)

揽星河入梦 + 关注
实名认证
内容提供者

开发人员认证持证人

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

认证主体李**
领域认证该用户于2023年07月20日上传了开发人员认证

1亿VIP精品文档

相关文档

相关课程推荐