论述题3:针对以下C语言程序,请按要求回答问题
下面是一个程序段(C语言),试设计基本路径测试的测试用例,设计出的测试用例要保证每一个基本独立路径至少要执行一次。
函数说明:当i flag=0;返回i count+100
当i flag=l;返回i count*10
否则 返回 i count*20
输入参数:int i count int i flag
输出参数:int i retum
程序代码如下:
(1)画出该函数的控制流程图。
(2)采用基本路径测试法设计一组测试用例,保证每个基本独立路径都至少执行一次。
答案说明:本题目答案来自网络整理或转载,最终答案请以官网为准。
答 案:问题1:解答:根据程序的源代码容易画出对应的控制流图如图17-4所示。(其中圈中的数字代表的是语句的行号)问题2:解答:第一步根据上述控制流图计算该程序的环路复杂性。由图可以看出判定节点数为3边数为10节点总数为8故V(G)=10-8+2=4或V(G)=3+1=4第二步根据环路复杂度为4可确定4条基本独立路径。Path1:4—24Path2:4—6—8—24Path3:4—6—13—15—22—4—24Path4:4—6—13—19—22—4—24第三步设计测试用例根据上面4条基本独立路径可以设计测试用例如下:测试用例1输入数据:i_flag=0或者是i_flag0的某个值。预期输出结果:i temp=0。测试用例2输入数据:i_count=1i_flag=0。预期输出结果:i temp=101。测试用例3输入数据:i_count=1i_flag=1。预期输出结果:i temp=10。测试用例4输入数据:i count=1i_flag=2。预期输出结果;i temp=20。但这些测试用例是可以简化的由于路径path1是path4的真子集所以path1是可以不要的。故针对该程序最少的测试用例数为3即上述测试用例2测试用例3测试用例4。
问题1:解答:根据程序的源代码,容易画出对应的控制流图,如图17-4所示。(其中圈中的数字代表的是语句的行号)问题2:解答:第一步,根据上述控制流图计算该程序的环路复杂性。由图可以看出,判定节点数为3,边数为10,节点总数为8,故V(G)=10-8+2=4或V(G)=3+1=4第二步,根据环路复杂度为4,可确定4条基本独立路径。Path1:4—24Path2:4—6—8—24Path3:4—6—13—15—22—4—24Path4:4—6—13—19—22—4—24第三步,设计测试用例根据上面4条基本独立路径,可以设计测试用例如下:测试用例1输入数据:i_flag=0,或者是i_flag0的某个值。预期输出结果:i temp=0。测试用例2输入数据:i_count=1,i_flag=0。预期输出结果:i temp=101。测试用例3输入数据:i_count=1,i_flag=1。预期输出结果:i temp=10。测试用例4输入数据:i count=1,i_flag=2。预期输出结果;i temp=20。但这些测试用例是可以简化的,由于路径path1是path4的真子集,所以path1是可以不要的。故针对该程序最少的测试用例数为3,即上述测试用例2,测试用例3,测试用例4。 解析:首先根据程序的源代码,画出控制流图。然后通过控制流图可以计算出该程序的复杂度,找出所有的独立路径,根据基本路径测试法设计测试用例。