条件覆盖率和决策覆盖率有什么区别?
我有一个简单的例子:
IF (A && B) THEN
条件覆盖将进行两次测试(结果将是
FALSE
):
决策覆盖率只有一项测试(结果为
TRUE
):
我理解对吗?
在 条件覆盖(也称为谓词覆盖)中,每个布尔表达式必须至少被评估为 true 和 false 一次。例如:
如果((A || B)&& C)那么
为了满足条件覆盖标准,您可以使用以下测试:
1) A = 真 | B = 不评估 | C = 假
2) A = 假 | B = 真 | C = 正确
3) A = 假 | B = 假 | C = 不评估
在决策覆盖率(也称为分支覆盖率)中,您必须测试所有可能的分支。例如:
...
如果(A){
否则如果(B){
}其他{
}
...
为了满足这段代码的决策覆盖标准,您需要运行 3 个测试:
1) A 被评估为 true
2) A 被评估为 false 并且 B 被评估为 true
3) A 和 B 被评估为 false
示例:
print("Zero")
print("Positive")
print("Negative")
这里是声明号。 2、4 和 6 将在条件覆盖下考虑。 (Bcz 这里你要检查它是否等于0、是否大于0等条件)
和声明号。 3、5 和 7 将在 决策范围内考虑。 (因为这些是检查条件后做出的决定)
Imp注意:决策覆盖率和分支覆盖率是不同的。