白盒测试中几种逻辑覆盖法及其优缺点

语句覆盖法:

详述:

https://blog.csdn.net/hanhanwanghaha/article/details/105633019

定义:设计若干个测试用例,使被测试程序中的每条可执行语句至少执行一次。比如说我们测试用例里面有10个语句,那么这10个语句都要被测试到。
优点:可以很直观地从源代码得到测试用例,无须细分每条判定表达式 ;
缺点:种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。例如在判断中把&&错误的写成了||,测试用例仍可以覆盖所有的执行语句。 一般认为“语句覆盖”是很不充分的一种标准,是最弱的逻辑覆盖准则。

判定覆盖法:

详述:

https://blog.csdn.net/hanhanwanghaha/article/details/105641120

定义:判定覆盖是设计足够多的测试用例,使得程序中的每一个条件判断至少获得一次“真”和一次“假”,即使得程序流程图中的每一个真假分支至少被执行一次。
优点:判定覆盖具有比语句覆盖更强的测试能力,同样也无须细分每条判定表达式。
缺点:判定覆盖能够满足条件的要求,但是不能对判断条件进行检查。

条件覆盖法:

详述:

https://blog.csdn.net/hanhanwanghaha/article/details/105653347

定义:设计测试用例,使得判定中的每个条件至少有一次取得真值,一次取得假值。所以,不仅程序中的每个语句至少被执行一次,而且使每个判定表达式中的每个条件都取到各种可能的结果。
优点:条件覆盖比判定覆盖增加了对判定中所有条件的测试,对于条件来说更加全面
缺点:但条件覆盖并不能完全保证判定覆盖。要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。

判定/条件覆盖法:

详述:

https://blog.csdn.net/hanhanwanghaha/article/details/105656204

定义:设计足够多的测试用例,使被测程序中每个判定的每个条件的所有可能取值(真假)至少执行一次,并且每个判定的所有可能(真假)分支也至少执行一次 。通俗来讲,就是条件和判定覆盖的升华!
优点:判定/条件覆盖满足判定覆盖准则和条件覆盖准则,弥补了二者的不足。
缺点:判定/条件覆盖准则的缺点是未考虑条件的逻辑情况,对条件的依赖性很大,如果条件错了,也无法判定出来。

条件组合覆盖法:

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)

详述:

https://blog.csdn.net/hanhanwanghaha/article/details/105679336

定义:设计足够多的测试用例,使被测程序中每个判定的所有可能的条件取值组合至少执行一次。
优点:多重条件覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。
缺点:
1.线性地增加了测试用例的数量。
2 可能不会覆盖所有的路径,例如上图的abdf路径就没有执行。

路径覆盖法:

详述:

https://blog.csdn.net/hanhanwanghaha/article/details/105680025

定义:运行所测程序,要覆盖程序中所有可能的路径。
优点:这种测试方法可以对程序进行彻底的测试路径覆盖面比前面五种都广。
缺点:由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。而在有些情况下,一些执行路径是不可能被执行的。

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)

你可能感兴趣的:(测试开发,软件测试,白箱测试,测试工程师)