例题:void Sort ( int iRecordNum, int iType)
1 {
2 int x=0;
3 int y=0;
4 while ( iRecordNum > 0 )
5 {
6 If( iType==0 )
7 x=y+2;
8 else
9 If ( iType==1 )
10 x=y+10;
11 else
12 x=y+20;
13 }
14 }
(1)画出控制流图
(2) 计算圈度复杂度
10(条边)- 8(个节点)+ 2 = 4
(3) 导出独立路径(用语句编号表示)
路径1:4→14
路径2:4→6→7→14
路径3:4→6→9→10→13→4→14
路径4:4→6→9→12→13→4→14
(4) 设计测试用例
输入数据 | 预期输出 | |
---|---|---|
测试用例1 | iRecordnum = 0 iType = 0 | x = 0 y = 0 |
测试用例2 | iRecordnum = 1 iType = 0 | x = 0 y = 0 |
测试用例3 | iRecordnum = 1 iType = 1 | x = 10 y = 0 |
测试用例4 | iRecordnum = 1 iType = 2 | x = 0 y = 20 |
2.练习
void Do (int X,intA,int B)
{
1 if ( (A>1)&&(B=0) )
2 X = X/A;
3 if ( (A=2)||(X>1) )
4 X = X+1;
5 }
(1) 要求画出程序流程图和控制流图
(2) 计算圈度复杂度
2+1=3
(3)写出相应的测试用例
路径1:1->3->5
路径2:1->2->3->5
路径3:1->2->3->4->5
输入数据 | 预期输出 | |
---|---|---|
测试用例1 | A=3 B=1 X=1 | x = 1 |
测试用例2 | A=3 B=0 X=3 | x = 1 |
测试用例3 | A=3 B=0 X=6 | x = 3 |