当前位置:
文档之家› 第02章_基本路径法 - 练习
第02章_基本路径法 - 练习
4 ) 路 径 4(1-2-3-4-5-82…) 的 测 试 用 例 : 满 足 条件2,满足条件3,不 满足条件5
score[1]=-0.5
;
score[2]=60
,
score[3]=-1 ;
期望结果:根据输入的有 效分数算出正确的分数 个 数 n1=1 、 总 分 sum=60 和平均分average=,sum=sum+score[i]
8 i = i +1
F 11 average= – 1
9 n1>0
T 10
average=sum/n1
12 返回
步骤1:导出程序的流图。
开始 1
i =1,n1=n2=0,sum=0
F
2和3 Score[ i ]<>-1 AND n2<50
4
T
n2=n2+1
开始 1
i =1,n1=n2=0,sum=0
F
2和3 Score[ i ]<>-1 AND n2<50
4
T
n2=n2+1
F
5和6
Score[ i ]>0 AND score[i]<100
7
T
n1=n1+1,sum=sum+score[i]
8 i = i +1
F 11
average= – 1
9 n1>0
开始 1
i =1,n1=n2=0,sum=0
F
2和3 Score[ i ]<>-1 AND n2<50
4
T
n2=n2+1
F
5和6
Score[ i ]>0 AND score[i]<100
7
T
n1=n1+1,sum=sum+score[i]
8 i = i +1
F 11
average= – 1
9 n1>0
11 R5 10 12 R6
4 5 R3
R1 6 R2 7
注: “…”表示后面剩下的路径是可
8
以选择的。原因在于存在循环结构
步骤4:为每一条独立路径 各设计一组测试用例, 以便强迫程序沿着该路 径至少执行一次。
1 ) 路 径 1(1-2-9-10-12) 的 测试用例:不满足条件2 ,满足条件9
score[1]=60; score[2]=–1
T 10
average=sum/n1
12 返回
6 ) 路 径 6(1-2-3-4-5-67-8-2…)的测试用例: 满足条件2,满足条件3 ,满足条件5,满足条 件6
score[1]=60
,
score[2]=60
;
score[3]=-1 ;
期望结果:根据输入的有 效分数算出正确的分数 个 数 n1=2 、 总 分 sum=120 和 平 均 分 average=60。
期望结果:根据输入的有 效分数算出正确的分数 个 数 n1=1 、 总 分 sum=60 和平均分average=60。
开始 1
i =1,n1=n2=0,sum=0
F
2和3 Score[ i ]<>-1 AND n2<50
4
T
n2=n2+1
F
5和6
Score[ i ]>0 AND score[i]<100
F
2和3 Score[ i ]<>-1 AND n2<50
4
T
n2=n2+1
F
5和6
Score[ i ]>0 AND score[i]<100
7
T
n1=n1+1,sum=sum+score[i]
8 i = i +1
F 11
average= – 1
9 n1>0
T 10
average=sum/n1
12 返回
F
5和6
Score[ i ]>0 AND score[i]<100
7
T
n1=n1+1,sum=sum+score[i]
8 i = i +1
F 11
average= – 1
9 n1>0
T 10
average=sum/n1
12 返回
1
2
9
R4 3
11 R5 10 12 R6
4 5 R3
R1 6 R2 7
开始 1
i =1,n1=n2=0,sum=0
F
2和3 Score[ i ]<>-1 AND n2<50
4
T
n2=n2+1
F
5和6
Score[ i ]>0 AND score[i]<100
7
T
n1=n1+1,sum=sum+score[i]
8 i = i +1
F 11
average= – 1
9 n1>0
词结点。
8
步骤3:确定基本路径集合(即
1
独立路径集合)。于是可确定6
条独立的路径:
2
路径1:1-2-9-10-12
9
R4 3
路径2:1-2-9-11-12
路径3:1-2-3-9-10-12 路径4:1-2-3-4-5-8-2… 路径5:1-2-3-4-5-6-8-2… 路径6:1-2-3-4-5-6-7-8-2…
T 10
average=sum/n1
12 返回
5 ) 路 径 5(1-2-3-4-5-68-2…)的测试用例:满 足条件2,满足条件3, 满足条件5,不满足条 件6
score[1]=101
score[2]=60,
score[3]=-1 ;
期望结果:根据输入的有 效分数算出正确的分数 个数n1=1、总分sum=60 和平均分average=60。
7
T
n1=n1+1,sum=sum+score[i]
8 i = i +1
F 11
average= – 1
9 n1>0
T 10
average=sum/n1
12 返回
2 ) 路 径 2(1-2-9-1112)的测试用例:不 满足条件2,不满足 条件9
score[ 1 ]=– 1 ;
期望的结果:average = – 1 ,其他量保 持初值。
8
步骤2:确定环形复杂性度量V(G):
1
1)V(G)= 6 (个区域)
2
2)V(G)=E–N+2=16–12+2=6 其中E为流图中的边数,N为结点数
9
R4 3
; 3)V(G)=P+1=5+1=6
11 R5 10 12
4 5 R3
其中P为谓词结点的个数。在流 图中,结点2、3、5、6、9是谓
R6
R1 6 R2 7
基本路径法
案例2
下例程序流程图描述了最多输入50个值(以–1作为 输入结束标志),计算其中有效的学生分数的个数、总 分数和平均值。
开始 1
i =1,n1=n2=0,sum=0
F
2和3 Score[ i ]<>-1 AND n2<50
4
T
n2=n2+1
F
5和6 Score[ i ]>0 AND score[i]<100
T 10
average=sum/n1
12 返回
3)路径3(1-2-3-9-10-12) 的测试用例:满足条件2 ,不满足条件3,满足条 件9
输 入 多 于 50 个 有 效 分 数 , 即试图处理51个分数
期望结果:n1=50、且算出 正确的总分和平均分。
开始 1
i =1,n1=n2=0,sum=0