用基本路径测试法为下列程序设计测试用例。
1 Void sort(int iRecordNum, int itype)
2
3 int x=0; y=0;
4 while(iRecordNtum>0)
5
6 if(itype==0)
7 x=y+2; break; )
8 else
9 if (itype==1)
10 x=y+10;
11 else
12 x=y+20;
13
14
15
参考答案:
根据上面源程序画出对应的程序流程图及控制流图,如下图1和图2所示。
图1
图2
2.计算得到的控制流图G的环路复杂性V(G):
V(G)=P+1=3(判定结点数)+1=4
V(G)=E-N+2=10-8+2=4
V(G)=4(区域数)
这里的环路复杂性“4”也代表了构成基本路径集的独立路径,V(G)=4恰好为程序中的独立路径条数。
3.确定线性无关的路径的基本集。由该程序的环路复杂性为4,可确定该图有4条线性无关的基本路径集,分别是:
Path1:4—15
Path2:4—6—7—15
Path3:4—6—9—10—14—4—15
Path4:4—6—9—12—14—4—15
4.生成测试用例,确保基本路径集中每条路径的执行。根据判定结点给出的条件选择适当的数据以保证某一条路径可以被测试到。满足上面基本路径集的测试用例是:
(1)测试用例1——Path1(4—15)
输入数据:iRecordNum=0,或任取iRecordNum<0的某一个值
期望输出结果:x=0
(2)测试用例2——Path2(4—6—7—15)
输入数据:iRecordNum=1,itype=0
期望输出结果:x=2
(3)测试用例3——Path3(4—6—9—10—14—4—15)
输入数据:iRecordNum=1,itype=1
期望输出结果:x=10
(4)测试用例4——Path4(4—6—9—12—14—4—15)
输入数据:iRecordNum=1,itype=2
期望输出结果:x=20