UT:单元测试 梳理:
测试的方法:
按照是否执行:静态/动态
按照测试手段:手动/自动
按照测试对象分析:
黑盒(系统功能测试):
优点简单,缺点介入时间晚,发现重大bug难以修复
覆盖率100%
灰盒(系统模块间的接口):
优点介入时间相对于黑盒早缺点,需要相应的代码能力
接口覆盖率
白盒(代码函数):
优点介入时间早,缺点需要相应的代码能力
逻辑覆盖率:语句覆盖率/分值覆盖率/条件覆盖率/路径覆盖率/分支-条件覆盖率
UT开展:
1.UT计划
①确定单元测试范围:使用频率高/代码复用性低/开发人员背景(技术能力低/业务不熟悉)/复杂度高的
②逻辑覆盖率---给定用例:执行了多少个/全部语句多少个
语句覆盖率:非分支判断(被测试的语句/全部的语句)
分值覆盖率:if语句的分支(被测试的分支个数/全部的分支个数)
条件覆盖率:一个条件两个结果/短路效应(被测试条件数量/全部条件数目)
路径覆盖率: 从开始到结束的过程(被测试路径数/路径总数)
分支-条件覆盖率:分支和条件组合(被测试分支+被测试条件/全部分支+全部条件)
2.UT设计
①测试策略:自顶向下(打桩函数)/自底向上(打桩函数)/孤立策略
3.UT实现
①将测试的单元转换为流程图
②流程图转换为流图
③流图描述的是程序的复杂程度
④每条路径就是一个测试用例(if条件的个数+1 ,while)
举例:三角形的判断
程序-->流程图-->流图-->测试用例(测试编号|测试目的|用例标题|预置条件|输入|预期输出|覆盖路径)
4.UT执行(unittest)
1.测试函数准备
2.test1.py 导入unittest类
创建test类
def 开始
def 结束
def test_001()
调用测试函数,传递参数测试
设置断言
def test_002()
5.读取xml文件用例实现
6.csv文件的读取(关键词',')
7.测试框架格式:(数据驱动框架)
公共模块
数据模块
被测试函数模块
测试用例模块