决策覆盖测试

17 Mar 2025 | 阅读 2 分钟

决策覆盖技术属于白盒测试,它为布尔值提供决策覆盖。 该技术报告布尔表达式的真和假结果。 只要语句(如do while 语句、if 语句和 case 语句 (控制流语句))可能产生两个或更多结果,它就被认为是决策点,因为有两个结果:真或假。

决策覆盖通过使用控制流图或图表来覆盖代码中每个布尔条件的所有可能结果。

一般来说,一个决策点有两个决策值,一个是真,另一个是假,这就是为什么大多数时候结果的总数是两个。 决策覆盖率的百分比可以通过将已执行结果的数量除以结果的总数并乘以 100 来找到。

Decision Coverage technique in whitebox testing link

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

我们可以按如下方式找到决策覆盖率的数量。

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

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

场景 1
a 的值为 7 (a=7)

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

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

Decision Coverage technique in whitebox testing link

决策覆盖率的计算

Decision Coverage technique in whitebox testing link

场景 2
a 的值为 3 (a=3)

黄色突出显示的代码将被执行。 如果检查 if 条件 (a>4),则此代码的结果为?False?。

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

Decision Coverage technique in whitebox testing link

决策覆盖率的计算

Decision Coverage technique in whitebox testing link

决策覆盖的结果表

测试用例A 的值输出决策覆盖率
13350%
272150%

下一主题决策表技术