例题: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 |
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句