什么是单元测试
概念:单元测试是针对程序的最小单元来进行正确性检验的过程。
单元:一个单元可能是单个程序、类、对象、方法(函数)等。
优点
- 减少BUG
- 快速定位BUG
- 提高代码质量
- 减少调试时间
缺点
- 周期时间长
- 耗费资源
- 能力要求高
单元测试流程
A单元测试-计划
概念:对要测试代码的确定以及这些被测代码的评估标准、优先级等说明
- 确定要测试代码范围
依据:二八原则(20%的代码中隐藏了80%的缺陷)
如何确定20%代码
- 频率:使用频率高的代码段;
- 复用性:(是否已被复用)
1). 全新 2). 部分复用 3). 全部复用- 开发人员: 1). 技术 2). 业务
- 复杂度:业务逻辑复杂度(一般认为圈复杂度在7级以上代码包括在20%的代码中)
测试范围汇总格式:
- 评估标准(确定被测代码的覆盖率)
- 语句覆盖率(非分支非判断的代码)
计算方式:被覆盖语句/总语句 - 分支覆盖率(判断语句的分支;如:if判断有两个分支)
计算方式:覆盖分支/总分支数 - 条件覆盖率(结果为true或false)
计算方式:覆盖条件/总条件数 - 路径覆盖率(从开始到结束的过程)
计算方式:覆盖路径/全部路径 - 分支-条件覆盖率(分支和条件的组合)
计算方式:分支覆盖率+条件覆盖率
B 测试策略-设计
拿到开发代码进行调整(可独立执行)
- 概念:
针对单元测试选择测试的一种方式 - 方式:
- 自上向下(从最上层函数往下开始逐层测试,缺点:成本高)
- 自下向上(从最底层函数往上开始逐层测试,缺点:周期长)
- 孤立策略(选择需要进行测试的函数进行测试,优点:选择重要的代码进行测试)
- 打桩
概念:打桩就是模拟编写一个我们需要引用的函数
提示:一般我们只模拟写个函数名,直接返回相应的结果即可
C 测试策略-实现
1) 根据调整好的代码-画流程图
2) 根据流程图画流图-确定复杂度、路径
3) 根据复杂度和路径确定测试用例(测试数据)
- 概念ÿ