前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >软件测试——程序控制流图、McCabe 环形复杂度与独立路径

软件测试——程序控制流图、McCabe 环形复杂度与独立路径

作者头像
梦飞
发布2022-06-23 12:56:10
发布2022-06-23 12:56:10
9.8K0
举报
文章被收录于专栏:csdn文章同步csdn文章同步

题目

根据程序流程图,完成: (1) 画出相应的程序控制流图; (2) 给出控制流图的邻接矩阵; (3) 计算 McCabe 环形复杂度; (4) 找出程序的一个独立路径集合。

1. 画出相应的程序控制流图

2. 给出控制流图的邻接矩阵

1

2

3

4

5

6

7

1

1

1

1

0

0

0

0

2

0

1

1

1

0

0

0

3

0

0

1

1

0

0

0

4

0

0

0

1

1

0

1

5

0

0

0

0

1

1

1

6

0

0

0

0

0

1

1

7

0

0

0

0

0

0

1

3. 计算 McCabe 环形复杂度

一个程序模块的环路复杂度用来衡量模块中判定结构的复杂程度,数量上可以表现为程序控制流图中从开始点到终结点的独立路径条数,相当于合理预防错误所 需测试的最少路径条数。

计算方法:

  • 单入单出程序控制流图 G 的 McCabe 环路复杂度计算公式: V(G) = m - n + 2p ◌ m 是 G 的边数目 ◌ n 是 G 的顶点数目 ◌ p 是 G 的连通分支数
  • 简单程序控制流图是连通图,p = 1,此时: V(G) = m - n + 2
  • G 是平面图时,由欧拉公式,V(G) = R。其中 R 是平面被控制流图划分成的区域数目 (包括外部面)。
  • 对于简单的单入单出结构化模块,V(G) 值等于程序控制流图中的单条件判断节点的个数 +1。多条件判断条件可以先转化为单条件复合结构再应用本结论。

计算:

  • 解1:图中 m = 10,n = 7,故 V(G) = m - n + 2 = 10 – 7 + 2 = 5
  • 解2:图是平面的且有5个面,故 V(G) = 5
  • 解3:图中有4个单条件判定节点1, 2, 4, 5, 故 V(G) = 4 + 1 = 5

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

独立路径:至少沿一条新的边移动的路径。对所有独立路径的遍历使得程序 中的所有语句至少被执行一次。

5条独立的基本路径:

  • 1-2-3-4-5-6-7
  • 1-3-4-5-6-7
  • 1-2-4-5-6-7
  • 1-2-3-4-7
  • 1-2-3-4-5-7
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
    • 1. 画出相应的程序控制流图
    • 2. 给出控制流图的邻接矩阵
    • 3. 计算 McCabe 环形复杂度
    • 4. 找出程序的一个独立路径集合
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档