📜  软件测试中的基础路径测试

📅  最后修改于: 2021-08-25 17:42:00             🧑  作者: Mango

先决条件–路径测试
基础路径测试是一种基于程序或模块的控制结构的白盒测试技术。使用这种结构,可以准备控制流程图,并在测试中执行图中显示的各种可能路径。因此,根据定义,

基本路径测试是一种在控制流程图中选择路径的技术,该路径提供了通过程序或模块的执行路径的基础集。

由于此测试基于程序的控制结构,因此需要完全了解程序的结构。要使用此技术设计测试用例,请遵循以下四个步骤:

  1. 构造控制流程图
  2. 计算图的圈复杂度
  3. 确定独立路径
  4. 从独立路径设计测试案例

让我们一步一步地了解每个步骤。

1.控制流程图–
控制流程图(或简单地说,流程图)是表示程序或模块的控制结构的有向图。控制流程图(V,E)中有V个节点/顶点和E个边。控制图还可以具有:

  • 交接节点–节点中有多个箭头输入的节点。
  • 决策节点–一个节点,其中有多个箭头离开。
  • 区域–由边和节点界定的区域(图形外部的区域也计为一个区域。)。

以下是构建流程图时使用的符号

  • 顺序语句–

  • 如果–则–其他–

  • 做–当–

  • 虽然–做–

  • 开关–机箱–

圈复杂度–
据说循环复杂度V(G)是程序逻辑复杂度的量度。可以使用三个不同的公式来计算:

  1. 基于边和节点的公式:
    V(G) = e - n + 2*P

    在哪里,
    e是边数,
    n是顶点数,
    P是连接的组件数。

    例如,考虑上面给出的第一个图,

    where, e = 4, n = 4 and p = 1 
    
    So,
    Cyclomatic complexity V(G) 
    = 4 - 4 + 2 * 1 
    = 2 
  2. 基于决策节点的公式:
    V(G) = d + P 

    在哪里,
    d是决策节点的数量,
    P是连接的节点数。

    例如,考虑上面给出的第一个图,

    where, d = 1 and p = 1
    
    So, 
    Cyclomatic Complexity V(G) 
    = 1 + 1 
    = 2 
  3. 基于地区的公式:
    V(G) = number of regions in the graph

    例如,考虑上面给出的第一个图,

    Cyclomatic complexity V(G) 
    = 1 (for Region 1) + 1 (for Region 2)
    = 2 

因此,使用上述所有三个公式,获得的环复杂性保持不变。所有这三个公式可用于计算和验证流程图的圈复杂度。

笔记 –

  1. 对于一个函数[例如Main()或Factorial()],仅构造一个流程图。如果在程序中有多个功能,则将为每个功能构建一个单独的流程图。另外,在圈复杂度公式中,根据总共存在的图的数量来设置“ p”的值。
  2. 如果一个决策节点正好有两个箭头离开,则将其计为一个决策节点。但是,如果有两个以上的箭头离开决策节点,则使用以下公式进行计算:
    d = k - 1

    在此,k是离开决策节点的箭头数。

独立路径:
控制流程图中的一条独立路径是引入至少一条在定义路径之前尚未遍历的新边的路径。圈复杂度给出了流程图中存在的独立路径的数量。这是因为循环复杂度用作应执行的测试数量的上限,以确保程序中的所有语句至少已执行一次。

考虑上面给出的第一张图,这里的独立路径为2,因为独立路径的数量等于圈复杂度。
因此,上面第一个给定图中的独立路径:

  • 路径1:
    A -> B 
  • 路径2:
    C -> D 

笔记 –
独立路径不是唯一的。换句话说,如果对于一个图,圈复杂度为N,则有可能获得本质上独立的两组不同的路径。

设计测试用例:
最后,在获得独立路径之后,可以设计测试用例,其中每个测试用例代表一个或多个独立路径。

好处 :
基础路径测试可在以下情况下适用:

  1. 覆盖范围更大–
    基本路径测试提供了最佳的代码覆盖范围,因为它旨在实现最大的逻辑覆盖范围而不是最大的路径覆盖范围。这样可以对代码进行全面的测试。
  2. 维护测试–
    修改软件后,仍然需要测试软件中所做的更改,因此需要进行路径测试。
  3. 单元测试–
    当开发人员编写代码时,他或她会首先测试程序或模块的结构。这就是为什么基本路径测试需要有关代码结构的足够知识。
  4. 集成测试–
    当一个模块调用其他模块时,发生接口错误的可能性很高。为了避免发生此类错误,将执行路径测试以测试模块接口上的所有路径。
  5. 测试努力–
    由于基本路径测试技术在计算循环复杂度时会考虑软件(即程序或模块)的复杂性,因此直观地注意到,在基本路径测试的情况下,测试工作量与软件复杂度成正比。软件或程序。