2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 软件测试语句覆盖 软件测试中的语句覆盖 分支覆盖 条件覆盖以及路径覆盖...

软件测试语句覆盖 软件测试中的语句覆盖 分支覆盖 条件覆盖以及路径覆盖...

时间:2022-07-13 13:30:06

相关推荐

软件测试语句覆盖 软件测试中的语句覆盖 分支覆盖 条件覆盖以及路径覆盖...

我举一个简单的例子来解释一下语句覆盖,分支覆盖,条件覆盖以及路径覆盖的相关知识,如果有不对的地方,恳请各位同行指正:

举例说明:

if A=true and B=true then Action1

if C=true or D=true then Action2

这是一个很简单的例子,也就是,当A和B都为真的情况下,执行Action1,Action1执行好以后再次判断,只要A或者B有一个为真,那么就执行Action2,当Action2执行完成后,整个程序算是执行完成了:分析见图

(pic 01)

语句覆盖:顾名思义,让程序中的每个语句都cover到。在这个例子中,也就是要符合两个Positive条件:

1. A = true and B = true

2. C = true or B = true

根据上图所示,符合有两个条件的,都可以实现语句覆盖:

比如:A = true, B = true, C = true, D =true就可以实现最大的语句覆盖了

看到图,我们可以知道,实际上A和B有一种情况,C和D有三种情况,1*3=3,所以,语句覆盖的例子除了有上面提示的一个例子外还可以有以下两个,罗列如下:

2. A = true, B = true, C = true, D = false

3. A = true, B = true, C = false, D = true

这个例子中,选择任何一个(比如1),都可以覆盖整个语句,实现最大的语句覆盖率

分支覆盖(判定覆盖):把程序中所有判定的分支尽可能得到体验。这句话说白了,就是两个条件的真真假假都得考虑到,也就是以下四种情况在case中都需要cover到:

1. A = true and B = true 真positive (见图pic 01:1种情况)

2. A = true and B = true 假negative (见图pic 01:3种情况)

3. C = true or B = true 真positive (见图pic 01:3种情况)

4. C = true or B = true 假negative (见图pic 01:1种情况)

典型的两个例子如:

A=true, B=true, C=false, D=true

A=false, B=true, C=false, D=true

当然,我们如果再深入考虑下去,其实不只这一对case可以覆盖所有的条件,还有很多对的case可以覆盖,其实就是符合上述1234的条件就行,很容易就可以看出:13 24组合,14 23组合

完全覆盖到了,算下来(1×3)*(3*1)+(1*1)*(3*3)=18:

13 24组合

1. A=true, B=true, C=false, D=trueA=false, B=true, C=false, D=true2. A=true, B=true, C=true, D=falseA=false, B=true, C=false, D=true3. A=true, B=true, C=true, D=trueA=false, B=true, C=false, D=true4. A=true, B=true, C=false, D=trueA=true, B=false, C=false, D=true5. A=true, B=true, C=true, D=falseA=true, B=false, C=false, D=true6. A=true, B=true, C=true, D=trueA=true, B=false, C=false, D=true7. A=true, B=true, C=false, D=trueA=false, B=false, C=false, D=true8. A=true, B=true, C=true, D=falseA=false, B=false, C=false, D=true9. A=true, B=true, C=true, D=trueA=false, B=false, C=false, D=true

14 23组合

10. A=false, B=true, C=false, D=trueA=true, B=true, C=false, D=false11. A=true, B=false, C=false, D=trueA=true, B=true, C=false, D=false12. A=false, B=false, C=false, D=trueA=true, B=true, C=false, D=false13. A=false, B=true, C=true, D=falseA=true, B=true, C=false, D=false14. A=true, B=false, C=true, D=falseA=true, B=true, C=false, D=false15. A=false, B=false, C=true, D=falseA=true, B=true, C=false, D=false16. A=false, B=true, C=true, D=trueA=true, B=true, C=false, D=false17. A=true, B=false, C=true, D=trueA=true, B=true, C=false, D=false18. A=false, B=false, C=true, D=trueA=true, B=true, C=false, D=false

条件覆盖:每个判断中的每个条件的可能取值至少满足一次. 说条件覆盖的时候不要看上面的两幅图了。这里的条件参数有四个A,B,C,D,也就是说A,B,C,D可能的条件至少要满足一次:

1. A = false, B = false, C = false, D = false

2. A = true, B = true, C =true, D = true

这两个用例已经覆盖了条件测试的所有的条件,当然,你同样可以展开来:2*2*2*2 = 16,可以设计出16对上面所列的测试用例

这里就不一一列出来了

1. A = true, B = false, C = false, D = false

A = false, B = true, C =true, D = true

2. A = false, B = true, C = false, D = false

A = true, B = false, C =true, D = true

3. A = false, B = false, C = true, D = false

A = true, B = true, C =false, D = true

……………………

路径覆盖:要求覆盖程序中的所有可能路径,见如下图:

(Pic 02)

如上图所示,所有的路径包括:13,14,23,24

示例1:

A=false, B=true, C=false, D=false (1,3)

A=false, B=true, C=false, D=true (1,4)

A=true, B=true, C=false, D=false (2,3)

A=true, B=true, C=false, D=true (2,4)

和前面的条件覆盖,分支覆盖一样,这仅仅是其中一组cover全面覆盖率例子,如果有兴趣的朋友可以继续写下去。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。