
理解白盒测试的基本方法,掌握语句覆盖、分支覆盖、条件覆盖、路径覆盖等代码覆盖测试策略,并能应用白盒测试技术设计测试用例
二、实验内容
被测程序:寻找最大数程序:max.numbers
程序操作说明:从键盘输入3个整数(间隔为空格),找出并输出其中数值最大的那一个。如果其中有一个以上的最大数(相等的情况),也要表示出来。
#include 1 void main() 2 { 3 int i,a,b,c; 4 i = 0; 5 while(i<100) { 6 printf("Enter numbers: "); 7 scanf("%d %d %d",&a,&b,&c); 8 if(a>b) 9 { 10 if(a>c) 11 printf("max. a=%d\\n",a); 12 else if(a==c) 13 printf("max. a=c=%d\\n",c); 14 else 15 printf("max. c=%d\\n",c); 16 } 17 else{ 18 if(a==b) 19 { 20 if(a>c) 21 printf("max. a=b=%d\\n",a); 22 else 23 if(a==c) 24 printf("max. a=b=c=%d\\n",c); 25 else 26 printf("max. c=%d\\n",c); 27 } 28 else{ 29 if(b>c) 30 printf("max. b=%d\\n",b); 31 else 32 if(b==c) 33 printf("max. b=c=%d\\n",b); 34 else 35 printf("max. c=%d\\n",c); 36 } 37 } 38 i++; 39 } 40 } 三、实验步骤 1、流程图: 2、控制流图: 3、测试用例: 语句覆盖: 用例1、(a=3,b=5,c=7)覆盖语句1、2、3、4、5、6、7、8、21、22 用例2、(a=5,b=c=7)覆盖语句1、2、3、4、5、6、7、9、21、22 用例3、(a=5,b=7,c=3)覆盖语句1、2、3、4、5、6、10、21、22 用例4、(a=b=5,c=7)覆盖语句1、2、3、4、5、11、12、13、21、22 用例5、(a=b=c=5)覆盖语句1、2、3、4、5、11、12、14、21、22 用例6、(a=b=5,c=3)覆盖语句1、2、3、4、5、11、15、21、22 用例7、(a=5,b=3,c=7)覆盖语句1、2、3、4、16、17、18、21、22 用例8、(a=c=5,b=3)覆盖语句1、2、3、4、16、17、19、21、22 用例9、(a=5,b=3,c=3)覆盖语句1、2、3、4、16、20、21、22 判断覆盖:此处判断覆盖与语句覆盖等同,用例可同语句覆盖; 条件覆盖:由于这里所有判定都是单条件判定,所有条件覆盖和判定覆盖等效,用例可参上; 判定--条件覆盖:此处等同判定覆盖和条件覆盖; 条件组合测试: 分析有a>b、a=b、ac、a=c、a 四、实验心得 对于语句覆盖、分支覆盖、条件覆盖、路径覆盖有了进一步的认识,可以更好、更更迅速的去划分路径,设计测试用例。通过实验,我对软件测试有了进一步的认识和学习,对白盒测试流程有了较清楚的了解,收获很多。
