白盒测试实验报告范本Word格式.docx
《白盒测试实验报告范本Word格式.docx》由会员分享,可在线阅读,更多相关《白盒测试实验报告范本Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
![白盒测试实验报告范本Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/24/5b6a00a3-b66d-4a9e-83c1-864c45d3f6de/5b6a00a3-b66d-4a9e-83c1-864c45d3f6de1.gif)
(1)分析各种输入情况,结合程序输出结果,并给出详细测试用例;
(2)根据
(1)所划分的等价类,进行边界值分析,并给出具体的测试用例;
(3)决策表测试法;
①列出输入变量month、day、year的有效等价类;
(条件桩)
②分析程序的规格说明,给出问题规定的可能采取操作;
(动作桩)
③画出决策表(简化);
④根据决策表,给出详细测试用例。
代码:
(被测部分为while循环内部语句)
#include<
iostream>
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<
i++)
9.if((i%4==0)&
(i%100!
=0)||(i%400==0))
10.num++;
}
11.total1=365*(year-num-1)+366*num;
//求得输入年份的总天数
12.if((year%4==0)&
=0)||(year%400==0))
//求得输入月份之前一月末的总天数
13.switch(month)
{
case1:
total2=0;
break;
case2:
total2=31;
case3:
total2=60;
case4:
total2=91;
case5:
total2=121;
case6:
total2=152;
case7:
total2=182;
case8:
total2=213;
case9:
total2=244;
case10:
total2=274;
case11:
total2=305;
case12:
total2=335;
}
else
14.switch(month)
{
total2=59;
total2=90;
total2=120;
total2=151;
total2=181;
total2=212;
total2=243;
total2=273;
total2=304;
total2=334;
//在加上输入的日,求其总和可得到从公元1年1月1日到输入日期当天的总天数
15.total=total1+total2+day;
16.intweek;
17.week=total%7;
18.cout<
您输入的日期是"
19.switch(week)
case0:
cout<
星期天"
endl;
case1:
星期一"
case2:
星期二"
case3:
星期三"
case4:
星期四"
case5:
星期五"
case6:
星期六"
cout<
**********退出程序请输入0,否则任一输入继续**********"
cin>
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、插桩后源程序清单与判定覆盖率分析结果
intm1=0,m2=0,m3=0,m4=0,m=15,n=0,f=0;
n++;
=====请输入测试用例====="
inti,num=0,total,total1,total2,qw;
请输入预期输出结果(星期一到星期天,对应输入1~7):
qw;
程序运行路径:
1->
2->
3->
4->
5->
6->
7->
8"
for(i=1;
if((i%4==0)&
num++;
if(i>
1)
->
9"
if(m1==0){m++;
m1=1;
if(num>
0)
10"
if(m2==0){m++;
m2=1;
total1=365*(year-num-1)+366*num;
11->
12"
if((year%4==0)&
13"
if(m3==0){m++;
m3=1;
switch(month)
14"
if(m4==0){m++;
m4=1;
15->
16->
17->
18->
19"
total=total1+total2+day;
intweek;
week=total%7;
-----该测试用例测试结果-----"
测试用例"
n<
:
输入"
year<
."
month<
day<
预期输出为:
switch(qw%7)
星期天,"
星期一,"
星期二,"
星期三,"
星期四,"
星期五,"
星期六,"
实际输出为:
switch(week)
if(week==qw%7)cout<
成功!
失败!
f++;
}
=====本次测试用例测试已结束,退出测试请输入0,否则任一输入继续测试====="
最终对main函数中while内循环语句单元测试结果统计:
共执行"
个测试用例,总的路径覆盖率:
m*100/19<
%,其中通过"
n-f<
个,失败"
f<
个"
测试截图见附录
三、总结与体会
实验中对于路径测试有了更深的理解,可以更好、更迅速的去划分路径,设计测试用例。
通过实验,我对软件测试有了进一步的认识和学习,对白盒测试流程有了较清楚的了解,收获很多。