概述
目录
5.1 单元测试目标与任务
一、为什么要进行单元测试
二、单元测试的目标和内容
三、单元测试的基本活动
四、单元测试关注内容
五、单元测试判断准则
六、单元测试的任务
1、单元程序的路径测试
2、局部数据结构测试
3、单元接口测试
4、单元边界条件的测试
5.单元容错性测试
6.内存分析
5.2 单元静态测试
一、编码标准与规范
二、Java编程规范示例
三、代码审查
1、简述
2、代码走查
3、正式会议审查
5.3 单元动态测试
一、动态测试实现原理
二、单元测试实例
三、类测试
5.4 单元测试工具
一、典型单元测试工具列表
二、JUnit工具介绍
三、JUnit的核心类结构
(1)单元测试是一种对构成软件的最小功能组件代码进行的功能测试
如C语言中一个函数单元,Java程序中一个类,图形化的软件中一个窗口或一个菜单功能等
(2)集成测试是指将多个相关功能模块组装构成的子系统或系统所进行的集成接口测试
5.1 单元测试目标与任务
一、为什么要进行单元测试
软件系统是由许多基本单元构成,这些单元可能是一个类程序or更大的单元(组件或模块)
要保证软件系统的质量,首先需要确保构成系统的单元程序质量
只有通过充分的单元测试,发现并修改单元程序中的缺陷,从而为系统质量打下基础
·单元测试发现问题比较容易
·修正问题更容易
二、单元测试的目标和内容
1、目标:确保单元程序的规范性、正确性、安全性、可靠性
2、内容:
(1)数据能否正确地流入、流出单元程序
(2)在单元程序运行过程中,其内部数据能否保持其完整性,包括内部数据的形式、内容及相互关系不发生
错误,全局变量在单元中的处理和影响符合预期
(3)数据边界处理能否正确工作
(4)单元程序的运行流程能否做到满足特定的逻辑分支覆盖
(5)单元程序中发生异常,是否有出错处理
(6)单元程序中指针是否正确引用、资源是否及时被释放
(7)单元程序是否有安全隐患
三、单元测试的基本活动
(1)建立单元测试环境
(2)测试脚本开发和调试
(3)测试执行及其结果分析
四、单元测试关注内容
(1)测试目标 :确保单元程序被正确地编码
(2)测试依据 :单元程序详细设计描述
(3)测试过程 :单元测试用例设计、单元测试脚本开发、单元测试脚本执行和结果分析
(4)测试执行者 :编程人员和测试人员
(5)测试方法 :黑盒测试与白盒测试
(6)测试脚本管理 :代码配置管理
(7)测试结果分析评估:代码覆盖率、分支或条件覆盖率
五、单元测试判断准则
(1)软件单元功能与设计需求一致
(2)软件单元接口与设计需求一致
(3)能够正确处理输入和运行的错误
(4)在单元测试中发现的错误得到修改并且通过回归测试
(5)达到相关的测试覆盖率
(6)完成软件单元测试报告
六、单元测试的任务
1、单元程序的路径测试
测试单元程序每一条执行路径的代码,并保证每条语句被正确执行,检查如下问题:
(1)误解或用错了运算符优先级 (2)混合类型运算 (3)变量初值错
(4)精度不够 (5)表达式符号错 (6)逻辑判断错误
(7)路径是否被覆盖 (8)循环终止条件错误 (9)其它
2、局部数据结构测试
检查局部数据结构完整性。
(1)不适合或不相容的类型说明 (2)变量无初值 (3)变量初始化或默认值有错
(4)不正确的变量名或从来未被使用过 (5)出现上溢或下溢和地址异常 (6)其它
3、单元接口测试
检查单元接口是否正确
(1)输入的实际参数与形式参数是否一致(个数、属性、量纲)
(2)调用其他模块的实际参数与被调模块的形参是否一致
(3)全局变量的定义在各模块是否一致
(4)外部输入、输出是否正确
(5)其它
4、单元边界条件的测试
检查单元边界数据处理的正确性
(1)普通合法数据的处理
(2)普通非法数据的处理
(3)边界值内合法边界数据的处理
(4)边界值外非法边界数据的处理
(5)其它
5.单元容错性测试
预设的各种出错处理是否正确有效
(1)输出的出错信息是否难以理解
(2)记录的错误与实际是否相符
(3)异常处理是否恰当
(4)是否提供足够的出错定位信息
(5)其它
6.内存分析
检查内存资源的使用情况
(1)是否发生内存泄露 (2)是否发生内存分配错误 (3)其它
5.2 单元静态测试
含义:不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性
主要采用互查、走查、评审方法进行测试,也可通过扫描工具进行分析处理
一、编码标准与规范
(1)编码标准:建立起来必须遵守的编码规则
(2)编码规范:建议最佳做法、推荐更好的编码方式
二、Java编程规范示例
三、代码审查
1、简述
代码审查是一种重要的静态测试方法,它不仅可以有效地发现程序缺陷,
而且为缺陷预防获取各种经验,为改善代码质量打下坚实基础
(1 )一次检查少于200~400行代码
(2)努力达到一个合适的检查速度:300~500行/hour
(3)在审查前,代码作者应该对代码进行注释
(4)使用检查表引导代码审查
2、代码走查
采用讲解、讨论、模拟运行方式进行的程序代码审查活动
(1)部分小组成员解读程序代码
(2)其他成员对代码的风格、是否可能有缺陷、是否违背开发规范进行评述
(3)发现问题即时记录,会后进行缺陷修改
(4)检查要点是代码是否符合标准和规范,是否有逻辑错误
3、正式会议审查
采用正式会议方式进行的程序代码审查活动
(1)以会议形式,制定目标、流程和规则
(2)按缺陷检查表逐项检查
(3)发现问题即时记录,会后进行缺陷修改
(4)发现重大缺陷,修改缺陷后还需要重新审查
4、案例分析
| |
| |
5.3 单元动态测试
为了确保代码在结构上可靠、功能正确并且能够有良好的性能响应,仅仅进行静态测试是不够的,
必须将该单元代码运行起来,验证代码业务逻辑合理性,并了解单元代码的实际表现,即进行动态测试
一、动态测试实现原理
二、单元测试实例
三、类测试
1、简述:面向对象编程的基本构成要素就是类程序
对类程序代码的单元测试可以看成是对类的成员函数进行测试
需针对类中重要的方法函数进行全面的单元测试
2、类测试的主要内容
(1)类的功能测试 (2)类的代码测试 (3)类的接口测试
3、类测试的方法:
(1)基于输入域的测试 (2)基于组合及优化的测试 (3)基于逻辑覆盖的测试
☺面向对象的类测试 vs 传统软件模块单元测试
(1)都是针对程序的最小功能单元进行的动态测试
(2)类测试侧重在类中封装的操作和类的状态行为
(3)传统软件的单元模块测试侧重于模块中算法逻辑和接口调用
5.4 单元测试工具
单元测试工具是针对不同编程语言而存在的
多数集成开发环境(如Eclipse、Visual Studio)均提供了单元测试工具
一、典型单元测试工具列表
二、JUnit工具介绍
三、JUnit的核心类结构
四、JUnit的主要注解
五、JUnit的单元测试编程
最后
以上就是生动大碗为你收集整理的软件测试 第五章 - 单元测试&集成测试5.1 单元测试目标与任务5.2 单元静态测试5.3 单元动态测试5.4 单元测试工具的全部内容,希望文章能够帮你解决软件测试 第五章 - 单元测试&集成测试5.1 单元测试目标与任务5.2 单元静态测试5.3 单元动态测试5.4 单元测试工具所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复