基于逻辑覆盖的测试用例设计

本文介绍了白盒测试中的逻辑覆盖方法,包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。通过三角形判断方法的例子详细解释了各种覆盖方式的实现和目标,旨在确保程序的全面测试。

基于逻辑覆盖的方法

白盒测试中,测试用例可以用基于逻辑覆盖的方法设计,即语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。花了不少时间弄清楚,mark,这里还是以三角形判断方法为例。

关于三角形判断方法的程序流程图

程序流程图

约定:为方便起见,每个语句以编号代替(如图)

编号语句说明
J1a<0 || b<0 || c<0
J2a>100 || b>100|| c>100
J3a+b>c && b+c>a && a+c>b
J4a==b && b==c
J5a==b || b==c || c==a
S0输入三角形三边abc程序开始
S1非法输入三角形类型值为-1
S2非三角形三角形类型值为0
S3等边三角形三角形类型值为3
S4等腰三角形三角形类型值为2
S5普通三角形三角形类型值为1
S6输出三角行类型程序结束

这里只列出有意义的测试用例。


语句覆盖

使每个语句都执行一次,即将三角形的类型值都输出一遍。

编号测试用例期望输出覆盖语句
T1-1 5 5-1非法输入S1
T212 5 50非三角形S2
T35 5 53等边三角形S3
T44 5 52等腰三角形S4
T53 4 51普通三角形S5

判定覆盖

测试用例使每个判定的所有可能结果至少执行一次。

编号测试用例输出J1J2J3J4J5
T15 5 -5-1Y
T25 5 105-1NY
T35 5 150NNN
T45 5 53NNYY
T55 4 52NNYNY
T65 3 41NNYNN

条件覆盖

测试用例使每个判定中的每个条件的所有可能结果都至少出现一次。
如J1有3个条件(a<0、b<0,c<0),对应有6种结果,这六种结果需要分别出现,这里以TTT代替J1分支的3个条件成立,TTF说明J1分支中(a<0、b<0、c>=0)成立,其他亦然。

编号测试用例输出J1分支条件J2分支条件J3分支条件J4分支条件J5分支条件
T1-5 -5 -5-1TTT
T2125 125 125-1FFFTTT
T32 2 50FFFFFFFTT
T42 5 20FFFFFFTFT
T55 2 20FFFFFFTTF
T65 5 53FFFFFFTTTTTTTT
T73 4 51FFFFFFTTTFFFFF

和前两者相比,缺少了输出等要三角形这一类型。


判定/条件覆盖

测试用例使每个判定的所有可能结果至少执行一次,且每个判定中的每个条件的所有可能结果都至少出现一次。

编号测试用例输出J1分支条件J2分支条件J3分支条件J4分支条件J5分支条件判定
T1-5 -5 -5-1TTTY****
T2125 125 125-1FFFTTTNY***
T32 2 50FFFFFFFTTNNN**
T42 5 20FFFFFFTFTNNN**
T55 2 20FFFFFFFTFNNN**
T45 5 53FFFFFFTTTTTTTTNNYYY
T53 4 51FFFFFFTTTFFFFFNNYNN

注:*表示取值无关。
等同判定/条件覆盖。


条件组合覆盖

测试用例使每个判定中的每个条件的所有可能结果组合都至少出现一次。

编号测试用例输出J1分支条件J2分支条件J3分支条件J4分支条件J5分支条件
T1-5 -5 -5-1TTT
T230 -5 -5-1FTT
T3-5 30 -5-1TFT
T4-5 -5 30-1TTF
T530 30 -5-1FFT
T630 -5 30-1FTF
T730 30 -5-1TFF
T8201 201 201-1FFFTTT
T95 201 201-1FFFFTT
T10201 5 201-1FFFTFT
T11201 201 5-1FFFTTF
T125 5 201-1FFFFFT
T135 201 5-1FFFFTF
T14201 5 5-1FFFTFF
T157 7 20-1FFFFFFFTT
T167 20 7-1FFFFFFTFT
T1720 7 7-1FFFFFFTTF
T185 5 53FFFFFFTTTTTTTT
T195 5 22FFFFFFTTTTFTFF
T202 5 52FFFFFFTTTFTFTF
T215 2 52FFFFFFTTTFFFFT
T223 4 51FFFFFFTTTFFFFF

有些组合不可能出现,故舍去。如满足J3(a+b>c&&a+c<=b&&b+c<=a)只能是c<=0的情况下才能成立,在J1判定时就已经决定不会经过J3了。


路径覆盖

上述覆盖可以分为一类,而路径覆盖和前者不同。测试用例需要至少一次经过每条可能执行到的路径。

程序可以细分为控制流程图(如图)

控制流程图

编号测试用例期望输出覆盖路径
T1-10 6 6-1非法输入S0 –> J1_Y –> S1
T26 -10 6-1非法输入S0 –> J1_NY –> S1
T36 6 -10-1非法输入S0 –> J1_NNY –> S1
T4200 6 6-1非法输入S0 –> J1_NNN –> J2_Y –> S1
T56 200 6-1非法输入S0 –> J1_NNN –> J2_NY –> S1
T66 6 200-1非法输入S0 –> J1_NNN –> J2_NNY –> S1
T76 6 200非三角形S0 –> J1_NNN –> J2_NNN –> J3_Y –> S2
T86 20 60非三角形S0 –> J1_NNN –> J2_NNN –> J3_NY –> S2
T920 6 60非三角形S0 –> J1_NNN –> J2_NNN –> J3_NNY –> S2
T105 5 53等边三角形S0 –> J1_NNN –> J2_NNN –> J3_NNN –> J4_YY –> S3
T114 5 52等腰三角形S0 –> J1_NNN –> J2_NNN –> J3 –> J4_YN –> S4
T125 4 42等腰三角形S0 –> J1_NNN –> J2_NNN –> J3 –> J4_NN –> J5_NNY –> S4
T134 5 42等腰三角形S0 –> J1_NNN –> J2_NNN –> J3 –> J4_NY –> J5_NY –> S4
T143 4 51普通三角形S0 –> J1_NNN –> J2_NNN –> J3 –> J4_NN –> J5_NNN –> S4
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值