📜  白盒测试中的决策覆盖率测试

📅  最后修改于: 2021-01-08 08:51:54             🧑  作者: Mango

决策覆盖率测试

决策覆盖率技术经过白盒测试,该测试为布尔值提供了决策覆盖率。此技术报告布尔表达式的正确和错误结果。只要do语句,if语句和case语句(控制流语句)这样的语句有两个或多个结果的可能性,就将其视为决策点,因为有两个结果为真或假。

通过使用控制流程图或图表,决策覆盖范围涵盖了代码的每个布尔条件的所有可能结果。

通常,一个决策点具有两个决策值,一个是正确的,另一个是错误的,这就是为什么大多数情况下结果总数为两个的原因。决策覆盖率可以通过将执行结果的数量除以结果的总数再乘以100得出。

在这种技术中,很难获得100%的覆盖率,因为有时表达式会变得复杂。因此,有几种不同的方法来报告决策覆盖率。所有这些方法涵盖了最重要的组合,并且与决策覆盖范围非常相似。这些方法的好处是提高了控制流的灵敏度。

我们可以找到决策覆盖的数量,如下所示。

让我们通过一个例子来理解它。

考虑将代码应用于决策覆盖技术:

Test (int a)  
{ 
If(a>4) 
a=a*3 
Print (a) 
} 

方案1:
a的值为7(a = 7)

Test (int a=7) 
{ if (a>4) 
a=a*3 
print (a) 
} 

以黄色突出显示的代码为已执行代码。如果检查条件(a> 4),则此代码的结果为“ True”。

a的值为7时的控制流程图。

决策覆盖率百分比的计算:

Decision Coverage = ½*100  (Only "True" is exercised)
                    =100/2
                    = 50
Decision Coverage is 50% 

方案2:
a的值为3(a = 3)

Test (int a=3) 
{ if (a>4) 
a=a*3 
print (a) 
}

以黄色突出显示的代码将被执行。该代码的结果为“ False”?如果条件(a> 4)被检查。

a的值为3时的控制流程图

决策覆盖率百分比的计算:

= ½*100  (Only "False" is exercised) 
=100/2 = 50 Decision Coverage = 50%

决策覆盖率结果表:

Test Case Value of A Output Decision Coverage
1 3 3 50%
2 7 21 50%