分支覆盖测试

分支覆盖测试

分支覆盖技术用于覆盖控制流图的所有分支。它至少涵盖决策点的每个条件的所有可能结果(真和假)。分支覆盖技术是一种白盒测试技术,可确保每个决策点的每个分支都必须执行。

然而,分支覆盖技术和决策覆盖技术非常相似,但两者之间存在关键差异。决策覆盖技术涵盖每个决策点的所有分支,而分支测试涵盖代码的每个决策点的所有分支。

换句话说,分支覆盖遵循决策点和分支覆盖边缘。许多不同的指标可用于查找分支覆盖范围和决策覆盖范围,但一些最基本的指标是:在程序执行期间查找程序的百分比和执行路径。

与决策覆盖一样,它也使用控制流图来计算分支数。

分支覆盖测试

如何计算分支覆盖范围?

有几种方法可以计算分支覆盖率,但寻路是最常用的方法。

在此方法中,执行分支的路径数用于计算分支覆盖范围。分支覆盖技术可用作决策覆盖的替代方案。在某处,它没有被定义为单独的技术,但它不同于决策覆盖,并且是测试控制流图的所有分支所必需的。

让我们用一个例子来理解它:

Read X  
Read Y  
IF X+Y > 100 THEN  
Print "Large"  
ENDIF  
If X + Y<100 THEN  
Print "Small"  
ENDIF

这是采用两个变量X和Y以及两个条件的基本代码结构。如果第一个条件为真,则打印“Large”,如果为假,则转到下一个条件。如果第二个条件为真,则打印“Small”。

控制代码结构的流程图

在上图中,描绘了代码的控制流程图。在第一种情况下,通过“Yes”决定,路径为A1-B2-C4-D6-E8,覆盖边数为1,2,4,5,6和8,但边缘3和7未覆盖 在这条路径上。为了覆盖这些边缘,必须遍历“No”决定。在“No”判定的情况下,路径是A1-B3-5-D7,并且覆盖边缘的数量是3和7。因此,通过穿过这两条路径,所有分支都覆盖。

Path 1 - A1-B2-C4-D6-E8
Path 2 - A1-B3-5-D7
Branch Coverage (BC) = Number of paths
    =2
用例 覆盖的分支 路径 分支覆盖
Yes 1, 2, 4, 5, 6, 8 A1-B2-C4-D6-E8 2
No 3,7 A1-B3-5-D7 2