CUFMH2Blog

ST5 - 程序控制流图

Word count: 455 Reading time: 1 min
2020-07-03 calculating Share

白盒测试按照程序内部逻辑结构和编码结构来设计测试数据并完成测试,是一种典型的动态测试方法,又称为结构测试或逻辑驱动测试。白盒测试直接分析源代码,确定测试内容和测试方法,应该覆盖全部代码、分支、路径和条件。

作业内容

根据上面的程序流程图,完成:

  1. 转换单条件判定结构;
  2. 画出相应的程序控制流图;
  3. 给出控制流图的邻接矩阵;

  4. 计算 McCabe 环形复杂度;

  5. 找出程序的一个独立路径集合。

image-20200703172357647

解答

转换单条件判定结构

image-20200703180344243

画出相应的程序控制流图

image-20200703181752693

给出控制流图的邻接矩阵

image-20200703183749255

计算 McCabe 环形复杂度

McCabe 环路复杂度为程序逻辑复杂性提供定量测度。该度量用于计算程序的基本独立路径数目,也即是确保所有语句至少执行一次的起码测试数量。

有以下三种方法计算环路复杂度:

  1. 给定流图 G 的环路复杂度 V(G),定义为 V(G) = m – n + 2;m 是流图中边的数量,n 是流图中结点的数量

    V(G) = 12-9+2 = 5

  2. 平面流图中区域的数量对应于环路复杂度

    image-20200703191303994

    V(G) = 5

  3. 给定流图 G 的环路复杂度 V(G),定义为 V(G) = d +1;d 是流图 G 中单判定结点的数量

    V(G) = 4+1 = 5

找出程序的一个独立路径集合

一个独立路径集合如下:

  1. 路径1:1→2→4→5→8→9
  2. 路径2:1→2→4→5→6→8→9
  3. 路径3:1→2→4→5→6→7→8→9
  4. 路径4:1→2→3→4→5→8→9
  5. 路径5:1→3→4→5→8→9
CATALOG
  1. 1. 作业内容
  2. 2. 解答
    1. 2.1. 转换单条件判定结构
    2. 2.2. 画出相应的程序控制流图
    3. 2.3. 给出控制流图的邻接矩阵
    4. 2.4. 计算 McCabe 环形复杂度
    5. 2.5. 找出程序的一个独立路径集合