标签:逻辑 覆盖 这一 覆盖率 输入 p2c str ace 获得
常用的软件测试方法有两大类:静态测试方法和动态测试方法。其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。在动态分析技术中,最主要的测试有白盒和黑盒。
其中,白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。白盒要考虑测试用例对程序内部的覆盖程度,最好的白盒测试是能覆盖到每一条路径,但是由于路径数目极大,要执行每一条路径是不可能。但我们能做到就是让覆盖率变高一点,下面要介绍的六种覆盖测试方法,看看他们的覆盖程度。
图1是一个被测试的程序,它的源程序是:
PROCEDURE M(VAR A,B,X:REAL);
BEGIN
IF(A>1) AND (B=0) THENX:=X/A;
IF(A=2)OR (X>1) THENX:=X+1;
END.
为使程序中每个语句至少执行一次,只需设计一个能通过路径ace的例子就可以了,例如选择输入数据为:
A=2,B=0,X=3
这样该程序段的4个语句均得到执行,从而作到了语句覆 盖。
但如果选用的测试用例是:
A=2 B=0 X=-3 程序按路径abe执行,便未能达到语句覆盖。
从本例可看出,语句覆盖实际上是很弱的,程序中每个语句都得到执行这一点来看,语句覆盖的方法似乎能够比较全面地 检验每一个语句。但它也绝不是完美无缺的。假如这一程序段中两个判断的逻辑运算 有问题,如果第一个条件语句中的AND错误地编写成OR,上面的测试用例是不能发现这个错误的;又如第三个条件语句中X>1误写成X>0,这个测试用例也不能暴露它,此外,沿着路径abd执行时,X的值应该保持不变,以为每个语句都经历过,似乎可以放心了。其实这种测试不十分可靠。语句覆盖在测试被测程序中,除去对检查不可执行语句有一定作用外,并没有排除被测程序包含错误的风险。
6
1语句覆盖
使所有的判断语句都能执行一次的条件案例,例如当判断语句事组合语句的时候,并且用or连接,只满足一个案例即可
2判定覆盖(分支覆盖)
针对判断语句,在设定案例的时候,要设定True和False的两种案例;与语句覆盖不同的是增加了False的情况
3条件覆盖
针对判断语句里面案例的取值都要去一次,不考虑条件的取值
4判定/条件覆盖
判定覆盖各条件覆盖交叉,针对于判定中的条件取值
5组合覆盖
判定-条件覆盖的加强版
6路径覆盖
参考:
https://www.baidu.com/link?url=EQQ6Qc-zy1Xup2cLtHvs_3z1df9eirKEI6gmSqYaIEUGMgFus_mdGWspGYRUWncYTlUI4Q5vdJ7lMrCqBTvwxvjnrzd1MyRdPFr29yeWjQ_&wd=&eqid=dea7fa6600000e5a0000000456418b0c
http://www.cnblogs.com/jerry19880126/articles/2623433.html
http://blog.sina.com.cn/s/blog_69fe22cb0100nag2.html
标签:逻辑 覆盖 这一 覆盖率 输入 p2c str ace 获得
原文地址:https://www.cnblogs.com/ITniu/p/11111729.html