分支覆盖测试


分支覆盖测试(Branch Coverage Testing)

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

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

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

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

分支机构覆盖

如何计算分支机构覆盖率?

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

在该方法中,执行分支的路径数用于计算分支覆盖率。分支覆盖技术可以用作决策覆盖的替代方法。在某些地方,它没有被定义为一种单独的技术,但它不同于决策覆盖,并且对于测试控制流图的所有分支至关重要。

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

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

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

代码结构控制流程图

分支机构覆盖

在上图中,描绘了代码的控制流图。在第一种情况下,通过“是”决策,路径为A1-B2-C4-D6-E8,覆盖边数为 1, 2, 4, 5, 6 和 8 但不覆盖边 3 和 7在这条路上。为了覆盖这些边缘,我们必须遍历“否”决策。在“否”决策的情况下,路径为 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
Case Covered Branches Path Branch coverage
Yes 1, 2, 4, 5, 6, 8 A1-B2-C4-D6-E8 2
No 3,7 A1-B3-5-D7