问题
问答题
以下程序的作用是从i到n个元素的序列A[i..n]中选取具有最小值的元素,通过下标k得到该元素的位置。现对程序执行简单循环,限定循环次数为0次、1次和2次,请设计该程序的简单循环测试用例。
int minValue(int A[], int n, int i)
int k=I;
for(int j=i+1;j<=n;j++)
if(A[j]<A[k])k=j;
return k;
答案
参考答案:首先根据程序绘制程序流程图并标记路径编号,如下图所示。
按照简单循环的测试要求设计的测试用例如下表所示。
测试用例表 | |||||||
循环次数 | 输入数据 | 对应的输出 | |||||
i | n | A[i] | A[i+1] | A[i+2] | k | 执行路径 | |
0 | 1 | 1 | / | / | / | i | a,c |
1 | 1 | 2 | 1 | 2 | / | i | abefc |
2 | 1 | / | i+1 | abdfc | |||
2 | 1 | 3 | 1 | 2 | 3 | i | abefbefc |
2 | 3 | 1 | i+2 | abefbdfc | |||
2 | 1 | 3 | i+1 | abdfbefc | |||
3 | 2 | 1 | i+2 | abdfbdfc |