logo资料库

软件测试白盒测试.doc

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
实验一:白盒软件测试 一、实验目的 通过简单程序白盒测试,熟悉测试过程,对软件测试行程初步了解,并养成良好的测试 习惯。熟练掌握如何运用基路径测试方法进行测试用例设计,初步熟悉如何利用程序插装技 术进行逻辑覆盖率分析。 二、实验内容 背景: 被测测试程序功能:计算被输入日期是星期几; 程序定义:已知公元 1 年 1 月 1 日是星期一,只要输入年月日,能自动回复 当天是星期几; 测试环境:Windows vista、Dev C++; 说明:本次测试采用插桩测试法,由于程序简单,手动输入测试用例。 程序说明: A 程序思路:计算输入日期与公元 1 年 1 月 1 日所相差的天数,具体如下:总天 数=公元 1 年到输入日期上一年年底天数+输入年份的 1 月到上月月底天数+输入 日期的天数 B 闰年满足条件(year%4==0)&&(year%100!=0)||(year%400==0) (1)分析各种输入情况,结合程序输出结果,并给出详细测试用例; (2)根据(1)所划分的等价类,进行边界值分析,并给出具体的测试用例; (3)决策表测试法; ①列出输入变量 month、 day、 year 的有效等价类;(条件桩) ②分析程序的规格说明,给出问题规定的可能采取操作;(动作桩) ③画出决策表(简化); ④根据决策表,给出详细测试用例。 代码:(被测部分为while循环内部语句) #include usingnamespacestd; intmain() { intx=1,year,month,day; while(x) {1.inti,num=0,total,total1,total2; 2.cout<<"请输入年份:"; 3.cin>>year; 4.cout<<"请输入月份:"; 5.cin>>month;
6.cout<<"请输入日期:"; 7.cin>>day; //求得输入年份之前一年末的总天数 8.for(i=1;i
case6:total2=151;break; case7:total2=181;break; case8:total2=212;break; case9:total2=243;break; case10:total2=273;break; case11:total2=304;break; case12:total2=334;break; } } //在加上输入的日,求其总和可得到从公元1年1月1日到输入日期当天的总天数 15.total=total1+total2+day; 16.intweek; 17.week=total%7; 18.cout<<"您输入的日期是"; 19.switch(week) { case0:cout<<"星期天"<>x; } } 2、测试用例设计 1)控制流图
2)环路复杂度计算 由图可知,图中的环路有六条,故环路复杂度为六。 3)基本路径集设计 基本路径集为: A.1、2、3、4、5、6、7、8、11、12、14、15、16、17、18、19 B.1、2、3、4、5、6、7、8、9、11、12、14、15、16、17、18、19 C.1、2、3、4、5、6、7、8、9、10、11、12、13、15、16、17、18、19 D.1、2、3、4、5、6、7、8、9、10、11、12、14、15、16、17、18、19 注:由源程序代码可知,未走路径10则必定不通过路径13,故省去两条检测路径。 4)测试用例集设计 测试用例集为: A路径:1-2-26 预期输出:星期一 B路径:2-2-2 预期输出:星期六 C路径:2010-11-16 预期输出:星期二
D路径:2008-8-6 预期输出:星期三 3、插桩后源程序清单与判定覆盖率分析结果 #include usingnamespacestd; intmain() { intx=1,year,month,day; intm1=0,m2=0,m3=0,m4=0,m=15,n=0,f=0; while(x) { n++; cout<<"=====请输入测试用例====="<>year; cout<<"请输入月份:"; cin>>month; cout<<"请输入日期:"; cin>>day; cout<<"请输入预期输出结果(星期一到星期天,对应输入1~7):"; cin>>qw;
cout<<"程序运行路径: 1->2->3->4->5->6->7->8"; for(i=1;i9"; if(m1==0){m++;m1=1;} } if(i>1) { } if(num>0) { cout<<"->10"; if(m2==0){m++;m2=1;} } total1=365*(year-num-1)+366*num; cout<<"->11->12"; if((year%4==0)&&(year%100!=0)||(year%400==0)) { cout<<"->13";if(m3==0){m++;m3=1;} switch(month) {
case1:total2=0;break; case2:total2=31;break; case3:total2=60;break; case4:total2=91;break; case5:total2=121;break; case6:total2=152;break; case7:total2=182;break; case8:total2=213;break; case9:total2=244;break; case10:total2=274;break; case11:total2=305;break; case12:total2=335;break; } cout<<"->14";if(m4==0){m++;m4=1;} switch(month) { case1:total2=0;break; case2:total2=31;break; case3:total2=59;break; case4:total2=90;break; } else {
case5:total2=120;break; case6:total2=151;break; case7:total2=181;break; case8:total2=212;break; case9:total2=243;break; case10:total2=273;break; case11:total2=304;break; case12:total2=334;break; } } cout<<"->15->16->17->18->19"<
分享到:
收藏