[软件测试]Assignment5
| 课程名称 | 软件测试 | 任课老师 | 蔡国扬 |
|---|---|---|---|
| 年级 | 大三 | 专业(方向) | 计应 |
| 学号 | 16340015 | 姓名 | 陈彬彬 |
| 专业(方向) | 软件工程(计应) | [email protected] |
0.问题描述
根据下面的程序流程图,完成:
(1) 画出相应的程序控制流图;
(2) 给出控制流图的邻接矩阵;
(3) 计算 McCabe 环形复杂度;
(4) 找出程序的一个独立路径集合。
(1) 程序控制流图
由于两个条件判断语句都有复合条件表达式,因此要拆分成两个结点:
- 结点1: A<5?
- 结点2: B=5?
- 结点4: A=2?
- 结点5: X>2?
其中每个往左走代表条件判断为True,往右走代表条件判断为False。
(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