本文是软件测试课程课堂笔记总结
大纲
白盒测试
定义:白盒测试也称为结构测试、逻辑驱动测试,是从程序的控制结构、内部逻辑出发导出测试用例的测试
基本要求:
1.模块中所有独立路径至少被执行一次
2.对所有逻辑值测试真假两个分支
3.在上下边界、可操作范围内运行所有循环
4.确保内部数据结构的有效性
逻辑分支覆盖法
测试覆盖标准:
由于白盒测试中存在循环,所以路径数目较大,要执行每一条路径是不可能的,因此存在测试覆盖标准规定测试覆盖的程度
测试覆盖标准由低到高分别是:
1.语句覆盖:选择足够的测试用例,使程序中每个语句至少能被执行一次
如程序
如果要执行语句覆盖,那么只需要选择一个通过路径ace的例子,如A=2,B=0,X=3
2.判定/分支覆盖:执行足够的测试用例,使程序中每个分支至少通过一次
如果执行判定/分支覆盖,则需要覆盖所有路径,可以选择路径ace+abd或者acd(A=3,B=0,X=1)+abe(A=2,B=1,X=3)
3.条件覆盖:执行足够测试用例,使程序中每个判断中的每个条件中的每个取值至少可以执行一次
如果执行条件覆盖,首先了解程序的条件,程序的条件有4个A>1,B=0,A=2,X>1则针对每个条件都需要有相应的测试数据满足A>1,A<=1,B=0,B!=0,A=2,A!=2,X>1,X<=1所有满足条件
则可以使用A=2,B=0,X=4 满足 A>1,B=0,A=2,X>1和A=1,B=1,X=1 满足 A<=1,B!=0,A!=2,X<=1
值得一提的是,条件覆盖并不包含分支覆盖,即条件覆盖只需要满足所有判定条件均执行但不一定保证所有分支均执行
4.判定/条件覆盖:执行足够测试用例,使得条件覆盖和分支覆盖均满足
可以使用A=2,B=0,X=4 满足 A>1,B=0,A=2,X>1和A=1,B=1,X=1 满足 A<=1,B!=0,A!=2,X<=1同时这两种条件覆盖满足了分支覆盖 ace+abd路径
5.条件组合覆盖:执行足够的测试用例,使每个判定中条件的各种可能组合至少出现一次
基本路径测试法
设计足够多的测试用例,覆盖程序中所有可能的路径,若全部覆盖困难需要将覆盖路径数目压缩到一定限度
步骤:
- 绘画程序框图
- 绘画控制流图(Control Flow Graph):描述程序控制流的一种图示
- 计算流图的环路复杂度:从环路复杂度可以计算出程序的独立路径条数
- 确定只包含独立路径的基本路径集
- 设计测试用例:确保基本路径集中每一条路径的执行
控制流图:
注意一下要点:
1.若节点只有一条边,需将这个节点合并到上个节点中
2.计算区域时需要加上程序外部区域
计算环路复杂度:有三种方法
1.流图中区域数量等于环路复杂度
2.环路复杂度=流图边数-流图节点数+2
3.环路复杂度=流图判定节点数+1
计算独立路径:独立路径数等于环路复杂度,独立路径指程序运行从开始节点到结束节点,至少经历一个从未走过的边
如下图流图
独立路径为4个,分别为
设计测试用例:设计的测试用例根据判定条件可以覆盖所有包含独立路径的集合