该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
语句覆盖 程序中每个语句至少都能被执行一次。
判定覆盖 程序中的每一个分支至少都通过一次(每个判定都取过真值假值)==也叫分支覆盖。
条件覆盖 使得判定中的每个条件获得各种可能的结果(真值假值)。
判定/条件覆盖 分支中每个条件取到各种可能的值(真假值),每个分支(判定)取到各种可能的结果(真假值)。
条件组合覆盖 使得每个判定中条件取值的各种可能组合都至少出现一次。
路径覆盖 覆盖程序中所有可能的路径。
覆盖的优缺点:
语句覆盖法:可以很直观地从源代码得到测试用例,无须细分每条判定表达式 ;该测试用例虽然覆盖了可执行语句,但并不能检查判断逻辑是否有问题,例如在第一个判断中把&&错误的写成了||,则上面的测试用例仍可以覆盖所有的执行语句。 一般认为“语句覆盖”是很不充分的一种标准,是最弱的逻辑覆盖准则。
判定覆盖法: 能够满足条件覆盖的要求,但是也不能对判断条件进行检查;
“分支覆盖”比“语句覆盖”严格,因为如果每个分支都执行过了,则每个语句也就执行过了。但是,“分支覆盖”还是很不够的。
条件覆盖法:“条件覆盖”通常比“分支覆盖”强,因为它使一个判定中的每一个条件都取到了两个不同的结果,而判定覆盖则不保证这一点。
要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。
判定/条件覆盖法:分支/条件覆盖从表面来看,它测试了所有条件的取值,但是实际上某些条件掩盖了另一些条件。
条件组合覆盖法:上面的测试用例覆盖了所有条件的可能取值的组合,覆盖了所有判断的可取分支,但是却丢失了一条路径abe
路径覆盖法:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广 ;由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长(而指数级增长通常是设计算法时要尽力避免的)。