刚刚结束web自动化测试的课程,,Jmeter接口测试接踵而至,温故而知新,在这里先总结下单元测试.一、 什么是单元测试?
概念:单元测试是针对程序的最小单元来进行正确性检验的过程。
单元:一个单元可能是单个程序、类、对象、方法(函数)等。
优点:
1. 减少BUG
2. 快速定位BUG
3. 提高代码质量
4. 减少调试时间
二、 单元测试流程
1. 单元测试-计划
1) 确定要测试代码范围
依据:二八原则(20%的代码中隐藏了80%的缺陷)
1. 频率:使用频率高的代码段;
2. 复用性:(是否已被复用)
1). 全新
2). 部分复用
3). 全部复用
3. 开发人员:
1). 技术
2). 业务
4. 复杂度:业务逻辑复杂度(一般认为圈复杂度在7级以上代码包括在20%的代码中)
2) 评估标准(确定被测代码的覆盖率)
评估标准:
如何确定逻辑覆盖率?
1. 语句覆盖率
说明:非分支非判断
2. 分支覆盖率
说明:判断语句的分支;如:if判断有两个分支
3. 条件覆盖率【容易混乱】
说明:结果为true或false;
注意事项:a>b and b>c 为两个条件,每个条件有true和false 也就是说1个条件的分母为2;
4. 路径覆盖率
说明:路径分子永远为1;
5. 分支-条件覆盖率
3) 流程图
说明:使用统一规定标准图形,描述程序运行的具体步骤
目的:
1) 确定覆盖率
2) 根据流程图画流图 (流图-->测试策略实现时学习)
2. 测试策略-设计
1) 拿到开发代码进行调整(可独立执行)
方式:推荐:孤立策略
打桩:概念:打桩就是模拟编写一个我们需要引用的函数
提示:一般我们只模拟写个函数名,直接返回相应的结果即可
3. 测试策略-实现
1) 根据调整好的代码-画流程图
什么是流图?
概念:表达程序业务逻辑的复杂度一种示意图
构成:
1) 圈:判断条件、语句块(一条或多条语句)两者都圈
2) 线:箭头指向的线,用来连接圈和圈的指向
流图的目的?
1) 确定单元的复杂度级别
2) 确定测试用例
备注:
1. 路径的个数为复杂度的级别(一条路径为1个复杂度级别)
2. 路径的复杂度(1. 最少为条件的个数;2.最多为条件的个数+1)
2) 根据流程图画流图-确定复杂度、路径
3) 根据复杂度和路径确定测试用例(测试数据)
4. 单元测试-执行
1) 使用测试框架(UnitTest)编写单元测试用例
2) 测试用例(代码)和测试数据分离
3) 生成测试报告
|