1.为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。 void DoWork (int x,int y,int z) {
int k=0,j=0;
if ( (x〉3)&&(z<10) ) { k=x*y-1;
j=sqrt(k); //语句块1
} if ( (x==4)||(y>5) ) {
j=x*y+10;
} //语句块2 j=j%3; //语句块3 }
k=0
j=0 a Y c x>3 and z<10
k=x*y-1
j=sqrt(k) N b
x=4 e or Y y>5
j=x*y+10 N d j=j%3
由这个流程图可以看出,该程序模块有4条不同的路径: P1:(a-c—e) P2:(a-c—d) P3:(a-b—e) P4:(a-b—d) 将里面的判定条件和过程记录如下: 判定条件M={x>3 and z〈10} 判定条件N={x=4 or y〉5} 1、 语句覆盖
测试用例输入
2、判定覆盖
p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径. 测试用例输入 输出 判定M的取值 判定N的取值 覆盖路径 输出 判定M的取值 判定N的取值 覆盖路径 也可以让测试用例测试路径P2和P3。相应的两组输入数据如下: 测试用例输入
3、条件覆盖
对于M:x〉3取真时T1,取假时F1; z<10取真时T2,取假时F2; 对于N:x=4取真时T3,取假时F3; y>5取真时T4,取假时F4. 条件:x〉3,z〈10,x=4,y〉5 条件:x<=3,z〉=10,x!=4,y<=5
根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表所示: 测试用例输入 输出 取值条件 具体取值条件 覆盖路径 输出 判定M的取值 判定N的取值 覆盖路径
4、判定/条件覆盖 测试用例输入 输出 取值条件 具体取值条件 覆盖路径 5、组合覆盖
条件组合
1)x>3,z<10 2)x〉3,z>=10 3) x<=3,z〈10 4)x<=3,z〉=10 5)x=4,y〉5 6)x=4,y〈=5 7)x!=4,y〉5 8)x!=4,y〈=5 测试用例输入 6、路径覆盖 测试用例输入
输出 覆盖条件取值 覆盖条件组合 覆盖路径 输出 覆盖条件取值 覆盖条件组合 覆盖路径
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务