- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单元测试 南通大学杏林学院 主要内容 单元测试概述 单元测试的环境 单元测试的内容 单元测试策略和方法 6.1单元测试概述 起因 早期的测试观点认为,测试是整个开发过程中的最后一块砖,测试是在编码全部完成后的开发活动。软件的质量控制也在此一举。但事实上,未通过测试的代码所遗留的大量错误,大幅度提高后期测试和维护成本,也降低了开发商的竞争力。 解决途径: 单元测试能提高软件质量,降低开发成本的必由之路 XP要求为每个功能单元编写单元测试 什么是单元? 一个单元是指一个功能相对独立的代码段 结构化编程语言 单元测试对象是函数或者子过程。 面向对象语言 单元测试对象是类或者类的方法。 单元测试的概念 单元测试是对软件设计的最小单元进行结构、功能、性能、接口和设计约束等正确性进行检验,主要测试其在语法、格式和逻辑上的错误,并验证程序是否符合规范所要求功能的最具有实践意义的方法。 各个单元测试可以并行、独立地进行 单元测试方法 静态方法 动态方法 单元测试 的时机: 越早越好 现在的新开发模式XP开发理论中,讲究的是TDD(Test Driven Development,测试驱动开发),即要求先编写测试代码,再进行开发。 单元测试的目的 查找错误,提高软件质量 节约成本 单元测试的过程 制定测试计划 单元测试准备 制定单元测试策略 单元测试日程安排 单元测试设计 测试执行 测试评估 单元测试活动需要的文档 单元测试的意义 对软件设计实现的意义: 加强代码的可测试性,促进代码的重构 清晰地揭示出开发中的设计流程 对架构的反思 指导如何使用被测单元 软件的代码更容易维护 单元测试的意义 对软件开发者的意义: 更清晰地认识设计规格书中所要求的功能 锻炼代码静态分析技能 单元测试促进代码编写标准的一致性 代码审阅可以给团队提供一个学习的机会。 6.2 单元测试环境 一个模块或方法本身不是一个独立的程序,一方面需要调用其他的功能单元,另一方面被测单元也会被其他单元调用 主调单元 被调单元 单元测试环境 驱动模块 (Driver) 被测基本单元的主程序,它接收测试数据,并把数据传送给被测单元,最后输出实测结果。 桩模块 (Stub) 用来代替被测基本单元调用的其他基本单元。 单元测试环境 举例: 举例: 6.3 单元测试的内容 一、模块接口测试 对通过被测模块的数据流进行测试,检查进出模块的数据是否正确。 Checklist : 调用本模块的输入参数是否正确; 本模块调用子模块时输入给子模块的参数是否正确; 全局量的定义在各模块中是否一致; 二、模块局部数据结构测试 检查局部数据结构能否保持完整性 Checklist : 不正确或不一致的数据类型说明 变量没有初始化 变量名拼写错或书写错 数组越界 非法指针 全局数据对模块的影响 三、模块边界条件测试 检查临界数据是否正确处理 Checklist: 普通合法数据是否正确处理 普通非法数据是否正确处理 边界内最接近边界的(合法)数据是否正确处理 边界外最接近边界的(非法)数据是否正确处理 四、模块独立执行路径测试 对模块中重要的执行路径进行测试。检查由于计算错误、判定错误、控制流错误导致的程序错误。 Checklist: 死循环 错误的计算优先级 精度错误(比较运算错误、赋值错误) 表达式的不正确符号 循环变量的使用错误 五、模块内部错误处理测试 检查内部错误处理设施是否有效 Checklist: 是否检查错误出现 出现错误,是否进行错误处理 抛出错误、通知用户、进行记录 错误处理是否有效 6.4 单元测试策略 按测试的层次方向 自顶向下的单元测试 自底向上的单元测试 孤立单元测试 按是否运行代码 静态测试 单元结构测试 单元功能测试 自顶向下的单元测试 方法:先对最顶层的基本单元进行测试,把所有调用的单元做成桩模块。然后再对第二层的基本单元进行测试,使用上面已测试的单元做驱动模块。依此类推直到测试完所有基本单元。 自顶向下的单元测试(续) 优点:在集成测试前提供早期的集成途径。不需要开发驱动模块。 缺点:随着测试的进行,测试过程越来越复杂,开发和维护成本增加。底层单元的测试须等上层单元测试结束后方能开始,并行性差 总结:不是单元测试的一个好的选择。 自底向上的单元测试 方法:先对最底层的基本单元进行测试,模拟调用该单元的单元做驱动模块。然后再对上面一层进行测试,用下面已被测试过的单元做桩模块。依此类推,直到测试完所有单元。 自底向上的单元测试(续) 优点:在集成测试前提供系统早期的集成途径。不需要开发桩模块。 缺点:随着测试的进行,测试过程越来越复杂。 总结:比较合理的单元测试策略,但测试周期较长。 孤立单元测试 方法:不考虑每个单元与其它单元之间的关系,为每个单元设计桩
文档评论(0)