问题 问答题

用基本路径测试法说明以下C程序的用例设计过程。
void selectSort(int V[], int n)
for(int i=0; i<n-1; i++)
int k=i;
for(int j=i+1; j<n; j++)
if(V[j]<v[k])k=j;
if(k!=i)
int work=V[i];
V[i]=v[k];
V[k]=work;


答案

参考答案:以详细设计或源代码作为基础,导出程序的控制流图。即将上述程序转换为如下图所示的控制流图,用数字标号标识各个控制流。
[*]
(2)计算得到的控制流图G的环路复杂性V(G)。
对selectSort程序的控制流图11,可以多种算法求V(G):
V(G)=5(区域数)
V(G)=14(边数)-11(结点数)+2=5
V(G)=4(判定结点数)+1=5
(3)确定线性无关的路径的基本集。根据环路复杂性为5,可确定该图有5条线性无关的基本路径集,分别是:
Path1:1—3
Path2:1—1—2—5—8…
Path3:1—2—5—9…
Path4:1—1—2—4—6…
Path5:1—2—4—7…
(4)生成测试用例,确保基本路径集中每条路径的执行。根据判定结点给出的条件选择适当的数据以保证某一条路径可以被测试到。满足上面基本路径集的测试用例是:
Path1:1—3,取n=1
Path2:1—2—5—8—3,取n=2;预期结果:路径5—8—3不可到达
Path3:1—2—5—9—3,取n=2;预期结果:路径5—9—3不可到达
Path4:1—2—4—6—5—8—3,取n=2,V[0]=2,V[1]=1;预期结果:k=1,V[0]=1,V[1]=2
Path4:1—2—4—6—5—9—3,取n=2,V[0]=2,V[1]=1;预期结果:k=1,路径9—3不可到达
Path5:1—2—4—7—5—8—3,取,n=2,V[0]=2,V[1]=1;预期结果:k=0,路径8—3不可到达
Path5:1—2—4—7—5—9—3,取n=2,V[0]=2,V[1]=1;预期结果:k=O,V[0]=1,V[1]=2

单项选择题
问答题 简答题