软件测试第二章单元测试146.pptVIP

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
19-Dec-03 Phd Thesis - Haris Baltzakis 第2章: 单元测试 主讲: 林跃进 3.1单元测试概述 定义:单元测试又称程序模块测试,是检验程序的最小的单位测试。 单元测试的主要任务: 单元测试针对每个程序的模块,主要测试5个方面的问题: 模块接口、局部数据结构、边界条件、独立的路径、错误处理 3.1单元测试概述 模块接口 这是对模块接口进行的测试,检查进出程序单元的数据流是否正确。模块接口测试必须在任何其它测试之前进行。 3.1单元测试概述 模块接口测试至少需要如下的测试项目: (1)调用所测模块时的输入参数与模块的形式参数在个数、类型、顺序上是否一致; (2)所测模块调用子模块时,它输入给子模块的参数与子模块中的形式参数在个数、类型、顺序上是否一致; (3)是否会修改只是作为输入值的形式参数 (4)调用标准函数的参数在个数、类型、顺序上是否正确; (5)全局变量的定义在各模块中是否一致。 3.1单元测试概述 局部数据结构 在模块工作过程中,必须测试模块内部的数据能否保持完整性,包括内部数据的内容、形式及相互关系不发生错误。 对于局部数据结构,应该在单元测试中注意发现以下几类错误: (1)变量从来没有被使用,包括可能别的地方使用了外部变量或函数。 (2)变量没有初始化。 (3)错误的类型转换。 (4)数组越界。 (5) 变量或函数名称拼写错误,包括使用了外部变量或者函数。 3.1单元测试概述 边界条件测试: 主要检查临界数据是否正确处理。 (1)普通合法数据是否正确处理; (2)普通非法数据是否正确处理; (3)边界内最接近边界的(合法/非法)数据是否正确处理。 3.1单元测试概述 独立路径测试 在单元测试中,最主要的测试是针对路径的测试。测试用例必须能够发现由于计算错误、不正确的判定或不正常的控制流而产生的错误。 3.1单元测试概述 常见的错误有: 死代码 错误的计算优先级; 精度错误,包括比较运算错误、赋值错误; 表达式的不正确符号,包括,=,=,==,!=; 循环变量的使用错误,包括错误赋值。 3.1单元测试概述 出错处理 测试出错处理的重点是模块在工作中发生了错误,其中的出错处理设施是否有效。 检验程序中的出错处理可能面对的情况有: 3.1单元测试概述 (1)是否检查错误出现,包括资源使用前后、其它模块使用前后; (2)出现错误是否进行处理,包括抛出错误、通知用户、进行记录。 (3)错误处理是否有效,包括在系统干预前处理、报告和记录的错误都应真实详细。 3.2 单元测试的执行过程 单元测试的执行过程 单元测试常常是和代码编写工作同时进行的,在完成了程序编写、复查和语法正确性验证后,就应进行单元测试用例设计。 在单元测试时,如果模块不是独立的程序,需要设置一些辅助测试模块。辅助测试模块有两种: 3.2 单元测试的执行过程 (1)驱动模块(Drive) 用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启动被测模块,并打印出相应的结果。 (2)桩模块(Stub) 用来模拟被测模块工作过程中所调用的模块。它们一般只进行很少的数据处理。 1.单元测试 3.2 单元测试的执行过程 驱动模块和桩模块都是额外的开销,虽然在单元测试中必须编写,但并不需要作为最终的产品提供给用户。 单元测试 #include stdio.h void iszero(int m) { if(m!=0) printf(“%d”,m); else printf(“%d”,1); } 3.3 单元测试的执行过程 在代码编写完成后的单元测试工作主要分为两个步骤:人工静态检查(静态测试)和动态执行跟踪(动态测试)。 3.3 单元测试的执行过程 静态测试是指测试不运行的部分——只是检查和审阅。 动态测试是指通常意义上的测试——运行和使用软件。 单元测试的依据是详细设计和概要设计! 3.3 单元测试的执行过程 静态测试 不运行程序,通过程序员本人或其它人员执行人工检查,主要检查: 代码风格和规则检查 程序设计和结构的检查 业务逻辑检查 同行评审:走读、小组评审、审查。(p.23) 静态测试 (1)走读 一般检查代码,也可以是检查设计文档。 一般是项目内部的其它开发人员,不涉及公司高层或外部专家。 静态测试 (2)小组评审 由一个正式的组织对产品进行评价。确认任何与需求规格、设计规格或标准不一致的地方或者在检查后给出可替换的建议。 参与者主要是公司技术领导或权威公司及外部专家,主要适用于需求规格和概要设计的评审。 静态测试 (3)审查 遵循严格的过程,人员经过培训,检查过程有标准,检查针对实际的产品或半成品,目的是发现存在的错误。 参加人员:公

文档评论(0)

178****9325 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档