- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章单元测试
单元测试概述
什么是单元
传统软件对“单元”一词有着不同的定义
单元是可以编译和执行的最小软件组件
单元是决不会指派给多个设计人员开发的软件组件
“单元”与被测软件系统所采用的分析设计方法以及在其开发过程中采用的实现技术有关
函数、子程序、紧密相关的一组函数、类、复杂类中的单个方法、紧密相关的一组类……
基本单元
必须具备一定的基本属性,有明确的规格定义,以及包含与其他部分接口的明确定义等
从软件工程的角度来说,具有功能的独立性、符合高内聚和低耦合的特性
能够清晰地与同一程序中的其他单元划分开来
什么是单元测试?
通常而言,单元测试是在软件开发过程中要进行的最低级别的测试活动
或者说是针对软件设计的最小单位即程序模块、函数、类或方法所进行的正确性检验的测试工作
其目的在于发现每个单元内部可能存在的错误或缺陷
单元测试的主要工作分两个步骤:
人工静态检查(静态测试)
保证代码算法的逻辑正确性(尽量通过人工检查发现代码的逻辑错误)、清晰性、规范性、一致性、算法高效性
尽可能地发现程序中可能存在的错误或缺陷
动态执行跟踪(动态测试)
通过设计测试用例,执行待测程序来跟踪比较实际结果与预期结果来发现错误或缺陷
什么时候进行单元测试
单元测试越早越好
在测试驱动开发(TDD, Test Driven Development)中,先编写测试代码,再进行开发
在实际过程中,先写函数的框架,再针对函数的功能编写测试用例,然后编写函数的实现代码。一边编写代码,一边测试,往往会有比较好的效果。
单元测试由谁来执行
一般情况下由程序员完成单元测试工作
单元测试也可以看作是编码工作的一部分,在编码的过程中考虑测试问题,得到的将是更优质的代码
所以,单元测试有时也称自测试
许多集成开发环境(IDE)可以集成各种单元测试工具帮助编码人员进行单元测试,如Eclipse环境中集成Junit
必要时可以由测试团队专门进行单元测试
单元测试的一般流程
开发小组承担单元测试
在开发负责人(Leader)的监督下进行
根据单元测试计划和测试说明文档,设计测试用例,执行充分的测试,达到覆盖要求
建议专人负责监控测试过程
单元测试具有回归性
单元测试的实质
主要是证明代码的行为和我们的期望是否一致
在进行单元测试时常常并不关心整个产品或系统的确认、验证及其正确性等方面
主要侧重于功能
有时也关注性能方面的问题
只有所有单元的行为都通过了验证,确保它和我们的期望一致,才能开始进行集成测试
所以,足够的单元测试的好处在于:
使开发工作变得更轻松
对设计工作也能提供帮助
大大减少了花费在调试上面的时间
单元测试的目标
验证开发人员所编写的代码是否产生预期结果、是否符合设计的要求,最终确保单元符合需求
代码的质量、可复用性、代码的可维护性及代码的可扩展性的检查也是单元测试的目标
符合需求的单元代码通常具备以下性质
正确性:代码逻辑正确,能实现预期功能
清晰性:代码简明、易懂,注释准确
规范性:代码符合规范
一致性:代码在命名上、风格上保持统一
高效性:尽可能减少执行时间
可复用性:代码尽量标准化,便于复用
为什么要进行单元测试
未经测试覆盖的单元代码可能会存在大量的错误或缺陷
这些错误或缺陷可能是严重的,可能是微小的或表面的
但是,这些错误或缺陷可能会相互影响
尤其在开发后期,错误或缺陷可能会扩展
这些暴露的错误或缺陷难于定位,结果会大幅度提高后期测试和维护成本,降低了开发商的市场竞争力
单元测试在软件测试中的作用和地位
单元测试被认为是集成测试的基础:只有通过了单元测试,才能将各个单元集成在一起进行集成测试
单元测试通常在项目的详细设计阶段已经开始了,贯穿于项目开发的生命周期中
单元测试已经不仅仅是只有编码完成以后才能进行的工作了
单元测试的环境及过程
驱动模块(Driver)
扮演被测模块的主程序
接收测试数据,将数据传递给被测模块,最后输出实际测试结果
作用
接受测试输入
对输入进行判断
将输入传给被测单元,驱动被测单元执行
接受被测单元执行结果,并对结果进行判断
将判断结果作为用例执行结果并输出测试报告
桩模块(Stub)
代替被测模块需要调用的子模块
可以进行少量的数据操作,不需要实现子模块的所有功能
根据需要实现或代替子模块的一部分功能
桩模块是一次性模块,主要是为了配合调用它的父模块
被测模块和与它相关的驱动模块和(或)桩模块共同构成了一个“测试环境”
单元测试的过程
单元测试的策略
单元测试分析
单元测试分析是单元测试用例设计的基础,全面地分析才能设计出合理的测试用例
涉及详细设计、代码、功能业务需求、非功能业务需求、组件内部数据结构、组件接口等方面
单元测试分析的9
您可能关注的文档
- 车辆电工高级题库车电工高级题库.doc
- 车间班组安全学习车班组安全学习.doc
- 车间管理竞赛活动方案.doc
- 车间风险分析要求车风险分析要求.doc
- 车队的规章制度车队规章制度.doc
- 轨道交通-车辆段轨交通-车辆段.doc
- 轨道交通运营管理轨交通运营管理.doc
- 轨道车中级工试题库.doc
- 身边的循环经济身边循环经济.doc
- 转动机械考试题库2.doc
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)