判定覆盖(Decision coverage)

比“语句覆盖”稍强的覆盖标准是“判定覆盖”(或称分支覆盖)标准含义:执行足够的测试用例,使得程序中的每一个分支至少都通过一次。

对图6.4的程序,如果设计两个例子,使它们能通过路径aceabd,或者通过路径acdabe,就可达到“判定覆盖”标准,为此,可以选择输入数据为:

A=3B=0X=1(沿路径acd执行);       A=2B=1X=3(沿路径abe执行)

判定覆盖(Decision coverage)_第1张图片

判定覆盖(Decision coverage)_第2张图片

程序中含有判定的语句包括IF-THEN-ELSEDO-WHILEREPEAT-UNTIL等,除了双值的判定语句外,还有多值的判定语句,如PASCAL中的CASE语句、FORTRAN中带有三个分支的IF语句等。所以“判定覆盖”更一般的含义是:使得每一个判定获得每一种可能的结果。

“判定覆盖”比“语句覆盖”严格,因为如果每个分支都执行过了,则每个语句也就执行过了。但是,“判定覆盖”还是很不够的,例如上面两个测试用例未能检查沿着路径abd执行时,X的值是否保持不变。



你可能感兴趣的:(软件测试技术)