[软件测试]Assignment5

课程名称 软件测试 任课老师 蔡国扬
年级 大三 专业(方向) 计应
学号 16340015 姓名 陈彬彬
专业(方向) 软件工程(计应) Email [email protected]

0.问题描述

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

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

[软件测试] Assignment5


(1) 程序控制流图

由于两个条件判断语句都有复合条件表达式,因此要拆分成两个结点:

  • 结点1: A<5?
  • 结点2: B=5?
  • 结点4: A=2?
  • 结点5: X>2?

其中每个往左走代表条件判断为True,往右走代表条件判断为False。

[软件测试] Assignment5


(2) 控制流图的邻接矩阵

竖排是x值,横排是y值,(x,y)=1 代表 x 有一条到 y 的有向路径。

(x,y) 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环形复杂度

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

有三种方法测量McCabe环形复杂度 V(g)

方法1:

流图的边数 m=10,流图的结点数 n=7,故McCabe环形复杂度为:

V(g)=m-n+2=10-7+2=5

方法2:

流图一共化分了5个区域,因此V(g)==5

方法3:

流图一共有4个单判定结点,因此 V(g)=4+1=5


(4) 独立路径集合

一条独立路径是指,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。V(g) 的值正好等于该程序独立路径的条数。

因此图中一个独立路径集合为:

  • 1->3->4->7
  • 1->2->4->7
  • 1->2->3->4->7
  • 1->2->4->5->7
  • 1->2->4->5->6->7

相关文章:

  • 2021-05-20
  • 2021-10-15
  • 2021-12-31
  • 2021-12-17
  • 2022-12-23
  • 2021-11-18
  • 2021-10-23
  • 2022-01-16
猜你喜欢
  • 2021-05-12
  • 2022-12-23
  • 2022-12-23
  • 2021-10-05
  • 2021-10-25
  • 2021-04-12
  • 2021-08-20
相关资源
相似解决方案