决策覆盖率技术受白盒测试的约束, 该测试为布尔值提供了决策覆盖率。此技术报告布尔表达式的正确和错误结果。只要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= 50Decision 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) <
br>
=100/2 = 50Decision Coverage = 50%
决策覆盖率结果表
测试用例 | A值 | Output | 决策范围 |
---|---|---|---|
1 | 3 | 3 | 50% |
2 | 7 | 21 | 50% |
推荐阅读
- 软件开发质量保证与质量控制介绍
- 黑匣子测试中的决策表技术
- SpringBoot加载运行时监听器(SpringApplicationRunListeners)
- 白盒测试中的数据流测试
- 白盒测试中的控制流测试
- 分支覆盖率测试是什么()
- 黑匣子测试(边值分析)
- 黑盒测试vs.白盒测试vs.灰盒测试
- 什么是黑匣子测试()