白盒测试实验报告.docx
- 文档编号:6250450
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:10
- 大小:93.68KB
白盒测试实验报告.docx
《白盒测试实验报告.docx》由会员分享,可在线阅读,更多相关《白盒测试实验报告.docx(10页珍藏版)》请在冰点文库上搜索。
白盒测试实验报告
白盒测试
00300033王尘堃
什么是白盒测试?
白盒测试也称结构测试或逻辑驱动测试,它是根据程序内部结构测试程序,经过测试来检测产品内部动作是否根据设计规格说明书要求正常进行,检验程序中每条通路是否都能按预定要求正确工作。
这一方法是把测试对象看作一个打开盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序全部逻辑路径进行测试,经过在不一样点检验程序状态,确定实际状态是否与预期状态一致。
一、试验目
经过简单程序白盒测试,熟悉测试过程,对软件测试行程初步了解,并养成良好测试习惯。
熟练掌握怎样利用基路径测试方法进行测试用例设计,初步熟悉怎样利用程序插装技术进行逻辑覆盖率分析。
二、试验内容
被测测试程序功效:
计算被输入日期是星期几;
程序定义:
已知公元1年1月1日是星期一,只要输入年月日,能自动回复当日是星期几;
测试环境:
Windowsvista、DevC++;
说明:
此次测试采取插装测试法,因为程序简单,手动输入测试用例。
程序说明:
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 { 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)&&(year%100! =0)||(year%400==0)) { //求得输入月份之前一月末总天数 13.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; } } else { 14.switch(month) { case1: total2=0;break; case2: total2=31;break; case3: total2=59;break; case4: total2=90;break; 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; } } //在加上输入日,求其总和可得到从公元1年1月1日到输入日期当日总天数 15.total=total1+total2+day; 16.intweek; 17.week=total%7; 18.cout<<"您输入日期是"; 19.switch(week) { case0: cout<<"星期天"< case1: cout<<"星期一"< case2: cout<<"星期二"< case3: cout<<"星期三"< case4: cout<<"星期四"< case5: cout<<"星期五"< case6: cout<<"星期六"< } 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路径: -11-16预期输出: 星期二 D路径: -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<<"=====请输入测试用例====="< inti,num=0,total,total1,total2,qw; cout<<"请输入年份: "; cin>>year; cout<<"请输入月份: "; cin>>month; cout<<"请输入日期: "; cin>>day; cout<<"请输入预期输出结果(星期一到星期天,对应输入1~7): "; cin>>qw; cout<<"程序运行路径: 1->2->3->4->5->6->7->8"; for(i=1;i { if((i%4==0)&&(i%100! =0)||(i%400==0)) num++; } if(i>1) { cout<<"->9"; if(m1==0){m++;m1=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; } } else { 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; 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"< total=total1+total2+day; intweek; week=total%7; cout<<"-----该测试用例测试结果-----"< cout< cout<<"测试用例"< 输入"< "; switch(qw%7) { case0: cout<<"星期天,";break; case1: cout<<"星期一,";break; case2: cout<<"星期二,";break; case3: cout<<"星期三,";break; case4: cout<<"星期四,";break; case5: cout<<"星期五,";break; case6: cout<<"星期六,";break; } cout<<"实际输出为: "; switch(week) { case0: cout<<"星期天,";break; case1: cout<<"星期一,";break; case2: cout<<"星期二,";break; case3: cout<<"星期三,";break; case4: cout<<"星期四,";break; case5: cout<<"星期五,";break; case6: cout<<"星期六,";break; } if(week==qw%7)cout<<"成功! "< else { cout<<"失败! "< f++; } cout< cout<<"=====此次测试用例测试已结束,退出测试请输入0,不然任一输入继续测试====="< cin>>x; } cout<<"最终对main函数中while内循环语句单元测试结果统计: "< cout<<"共实施"< "< } 测试截图见附录 三、总结与体会 试验中对于路径测试有了更深了解,能够愈加好、更快速去划分路径,设计测试用例。 经过试验,我对软件测试有了深入认识和学习,对白盒测试步骤有了较清楚了解,收获很多。 也让我深深体会到了其实测试软件是严谨,不轻松过程,所以更需要我们有扎实技术和良好耐心。 四、测试截图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测试 实验 报告