单元测试概述

一、单元测试目的

1.跟踪需求和设计实现是否一致
2.发现设计和需求中存在的错误
3.验证代码是否与设计相符合
4.发现在编码过程中引入的错误。

二、单元测试内容

2.1 模块接口测试

  1. 调用所测模块时的输入参数于模块的形式参数在个数、属性、顺序是否匹配
  2. 所测模块调用子模块时,它输入子模块的参数与子模块的形式参数个数、属性、顺序上是否匹配。
  3. 输出给标准函数的参数在个数、属性、顺序上是否匹配。
  4. 全局变量的定义在各模块是否一致

2.2 局部数据结构测试

  1. 检查不正确或者不一致的数据类型说明
  2. 使用尚未赋值或尚未初始化的变量
  3. 错误的初始化或者默认值
  4. 变量名拼写错误书写错误
  5. 不一致的数据类型

2.3 路径测试

  1. 运算的有限次序不正确或者误解了运算的有限次序
  2. 运算的方式错误(运算的对象彼此在类型不相容
  3. 算法错误
  4. 初始化不正确
  5. 运算精度不够
  6. 表达式的符号表示不正确
  7. 不同数据类型的比较
  8. 不正确的逻辑运算优先次序
  9. 因浮点运算精度问题而造成的两值比较不等
  10. “差1错”即不能正确地多循环或者少循环一次
  11. 错误的或不能的循环终止条件
  12. 当遇到发散的迭代时不能终止循环
  13. 不适当地修改了循环变量

4 错误处理测试

  1. 出错的描述难以理解
  2. 出错的描述不足以对错误定位和确定出错原因
  3. 显示的错误与实际错误不符合
  4. 对错误条件的处理不正确
  5. 在对错误进行处理之前,错误条件已经引起系统的干预
  6. 如果出错情况不予考虑,那么检查恢复正常后的模块可否正常工作

5 边界测试
单元测试的类型:
在这里插入图片描述
逻辑单元测试
集成单元测试
功能单元测试
边界值分析方法设计测试用例,在边界值测试模块能否正常工作
6 单元测试的作用
编写单元测试可以帮助开发人员书写更高质量的代码
编写单元测试可使开发人员更有信心重构应用程序,去拥抱变化

三、测试覆盖率

对测试方法的所有情况、分支都测试完整并进行度量的指标就叫做“代码覆盖率”,包含四个方面:

  1. 语句覆盖率(statement coverage):是否每个语句都执行了?
  2. 分支覆盖率(branch coverage):是否每个if代码块都执行了?
  3. 函数覆盖率(function coverage):是否每个函数都调用了?
  4. 覆盖率(line coverage):是否每一行都执行了?

四、单元测试原则

  1. 根据详细设计编写单元测试用例,(而不是根据代码编写)
  2. 单元测试前要检查单元测试入口条件是否完全满足
  3. 单元测试必须满足一定的覆盖率,重点接口函数要做单元测试。
  4. 单元测试发现问题后,修改代码之后还要进行测试
  5. 单元测试必须满足预定的出口条件才能结束。
  6. 记录单元测试报告,分析问题种类和原因
  7. 单元测试始终在配置管理控制下进行,软件问题的修改须符合变动规程的要求
  8. 单元测试文档、测试用例、测试记录和被测程序等齐全,符合规范

五、单元测试策略

  1. 驱动(Drive)模块:用于模拟被测试模块的上一级模块,相当于被测模块的主程序,用于接收测试数据,并把这些数据传送给被测模块,启动被测模块,最后输出实测结果。
  2. (Stub)模块:用于模拟被测模块工作过程中所调用的模块
    在这里插入图片描述在这里插入图片描述

六、单元测试停止条件

1.单元测试用例设计已经通过评审
2.按照单元测试计划完成了所有规定单元的测试
3.达到了测试计划中关于单元测试所规定的覆盖率的要求
4.被测试的单元每千行代码必须发现至少3个错误
5.软件单元功能与设计相一致
6.单元测试中发现的错误已经得到修改,各级缺陷修复率达到标准。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值