单元测试
一、单元测试主要内容
1、测试对象:函数,函数是实现一个功能的独立的执行语句之和
2、测试时间:开发完成一个函数。
3、依据:LLD
4、测试人员:开发
二、支撑条件
1、桩单元:用来调用被测函数所调用的函数,此子单元称为桩 单元,一般功能简单
2、驱动单元:用来调用被测函数、并且接受其返回值的单元
三、测试策略
完成单元测试的顺序
1、孤立的测试策略
a、将每个函数单独执行测试
b、每个函数的测试,都需要准备驱动和桩
c、可以同时进行多个函数的单元测试,属于纯粹的单元测试
2、自顶向下
a、需要为该函数准备桩,在进行第二层函数测试时,可以利用顶层函数作为驱动
b、需要大量的桩单元编写
c、越向下测试越复杂
3、自底向上
a、需要为该函数准备驱动,在进行上一层函数测试时,可以利用底层函数(已经测试通过的)作为桩
b、只需要准备驱动
c、但是不是纯粹的单元测试,类似集成测试
四、单元测试活动
1、测试计划
2、测试设计
3、测试实现
用例——脚本——数据——规程
4、测试执行
执行用例——回归测试——测试报告
五、测试原则
1、流程化:根据计划和方案设计
2、计划、方案要参加评审
3、回归测试:如果代码有改动,无论大小都要回归测试,必要时需要重新编写用例和脚本
4、当发现问题,需要记录,进一步分析问题所在
5、时间、测试轮次、覆盖率、bug的修复率,只有达到测试结束的标准,才能结束
6、比较完备的单元测试要达到指定的覆盖率
六、覆盖率
覆盖率是用例度量测试的完备性的指标
1、覆盖率=(至少执行一次的item数)/总的item数
item:用来统计的测试项
重复的item,只统计一次
2、黑盒覆盖率:一般用功能点来做统计
3、灰盒覆盖率:一般用函数覆盖率、接口覆盖率来统计
4、白盒覆盖率:也叫逻辑覆盖率、代码覆盖率、结构覆盖率
a、语句覆盖
b、判定覆盖:每个判定均取真和假,真和假各统计一次item
item总数:若判定数为n,则总数为2*n
c、条件覆盖:每个判定中的条件均取真和假一次,判定中用逻辑运算符分割条件表达式,即为一个条件
item总数:条件数*2
d、判定条件覆盖:每个判定均取真和假,以及判定中的条件均取真和假
item总数:条件覆盖item总数+判定覆盖item总数
e、条件组合:每个判定中的条件取值要做全排列
分母=判定1的条件取值的全排列组合+判定2的条件取值的全排列组合+......
f、路径覆盖:每个路径均执行一次,即判定组合
item总数=判定的n次方(n为判定的个数)