判定覆盖测试



软件测试大体上可以分为白盒测试和黑盒测试两种技术。在白盒测试中,会验证软件的数据结构、算法、逻辑、流程和代码。判定覆盖测试是白盒测试下的一个概念。它是一种旨在确认程序中所有判定结果都正常工作的技术。它有助于确认所有判定条件都至少执行了一次。

什么是软件判定覆盖测试?

软件判定覆盖测试是白盒测试的一部分。它由开发人员执行,以验证程序中的所有判定结果。它只处理布尔值,即每个布尔表达式的真或假。在某些情况下,如果存在来自语句(如 do while、if 和 case)的两个或多个结果的可能性,则将其称为判定点,因为有两个结果,即假或真。

软件判定覆盖测试通过借助控制流图或流程图来触及代码中每个布尔条件的所有可能结果。由于判定主要包含两个值,即真或假,因此在大多数情况下,结果的总数为两个。

计算软件判定覆盖率的公式

软件判定覆盖率可以通过将执行的结果总数除以源代码中判定结果的总数,然后乘以 100 来计算。

Decision Coverage = (Total count of decision results executed / 
   Total count of decision results in the source code) * 100

由于在某些情况下判定表达式并不简单,因此很难达到 100% 的覆盖率。因此,有多种方法可以计算判定覆盖率。这些方法涵盖了每种组合,并且具有与判定覆盖率类似的特征。

示例

让我们以以下代码片段为例来确定判定覆盖率的数量。

Input X and Y
   Z = X + Y
   IF Z > 100 
   THEN PRINT “IT IS COMPLETED”
   END IF
   IF X > 50
     THEN PRINT “IT IS NOT COMPLETED”
   END IF
END

现在让我们使用 X = 60 和 Y = 60 的值,使用第一个测试用例来计算判定覆盖率。

上面代码行的流程图,其中 X = 60,Y = 60,如下所示:

Software Decision Coverage

在上图中,共有 4 个判定结果,用绿色表示的 1、2、3 和 4。根据使用 X = 60 和 Y = 60 的值的第一个测试用例,我们将执行 2 个判定结果,用蓝色表示的 5 和 6。因此,根据公式:

Decision Coverage = (Total count of decision results executed / 
   Total count of decision results in the source code) * 100

Decision Coverage = (2 / 4) * 100 = 50 %.

现在让我们使用 X = 40 和 Y = 20 的值,使用第二个测试用例来计算判定覆盖率。

上面代码行的流程图,其中 X = 40,Y = 20,如下所示:

Software Decision Coverage

在上图中,共有 4 个判定结果,用绿色表示的 1、2、3 和 4。根据使用 X = 40 和 Y = 20 的值的第一个测试用例,我们将执行 2 个判定结果,用蓝色表示的 5 和 6。因此,根据公式:

Decision Coverage = (Total count of decision results executed / 
   Total count of decision results in the source code) * 100

Decision Coverage = (2 / 4) * 100 = 50 %.

因此,通过考虑这两个测试用例,我们将有 4 个判定结果的总数,以及 4(2+2)个执行的判定结果的总数。因此,根据公式,总判定覆盖率为:

Decision Coverage = (Total count of decision results executed / 
   Total count of decision results in the source code) * 100

Decision Coverage = (4 / 4) * 100 = 100 %.

通过创建两个测试用例,X = 60 和 Y = 60,以及 X = 40 和 Y = 20,我们实现了 100% 的判定覆盖率。

结论

这总结了我们关于软件判定覆盖测试教程的全面内容。我们从描述什么是软件判定覆盖测试、计算软件判定覆盖率的公式以及获得软件判定覆盖率的示例开始。这使您对软件判定覆盖测试有了深入的了解。明智的做法是不断练习您所学到的知识,并探索与软件测试相关的其他知识,以加深您的理解并扩展您的视野。

广告