() 下面是一趟插入排序的程序 把R[i+1]插入到R[1..i]的适当位置 R[0] = R[i + 1]; j = i; wh
位置,程序,路径
已帮助 人
() 下面是一趟插入排序的程序, 把R[i+1]插入到R[1..i]的适当位置 R[0] = R[i + 1]; j = i; while (R[j] >R[0] ) { R[j + 1] = R[j]; j = j - 1; } R[j + 1] = R[0];问题:(15分) 请用路径覆盖方法为它设计足够的测试用例(while循环次数为0次、1次、2次)。
-
参考答案:() 答案请参见试题分析 要进行路径覆盖首先要画出程序的流程图,这样我们才能清楚的看到程序的执行路径,对原题程序画流程图得: 为了方便设计测试用例,我们把原条分支标上编号。即图中的①,②,③。 题目要求设计while循环次数为0次、1次、2次的时候的测试用例。 我们先来看while循环次数为0次的情况,while次数为0时,②执行不到,所以只要一条路径①③。按路径测试的要求只需要设计一个测试用例覆盖路径①③即可。我们令数组中元素R[i]=1,R[i+1]=2,这样,R[0]= R[i+1]=2,当第一次进行循环判断R[j]>R[0]时,条件不成立,因为R[i]<R[0],所以while循环体不会执行,所以覆盖路径①③。或者设计测试用例:R[i]=1,R[i+1]=1,这样,R[0]= R[i+1]=1,当第一次进行循环判断R[j]>R[0]时,条件不成立,因为R[i]=R[0],所以while循环体也不会执行,所以覆盖路径①③。这两个用例都行。后面的while循环次数为1次,2次,可用同样的方法设计。
