白盒测试实验报告范本.docx
- 文档编号:23276074
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:12
- 大小:92.22KB
白盒测试实验报告范本.docx
《白盒测试实验报告范本.docx》由会员分享,可在线阅读,更多相关《白盒测试实验报告范本.docx(12页珍藏版)》请在冰豆网上搜索。
白盒测试实验报告范本
实验一:
白盒软件测试
一、实验目的
通过简单程序白盒测试,熟悉测试过程,对软件测试行程初步了解,并养成良好的测试习惯。
熟练掌握如何运用基路径测试方法进行测试用例设计,初步熟悉如何利用程序插装技术进行逻辑覆盖率分析。
二、实验内容
背景:
被测测试程序功能:
计算被输入日期是星期几;
程序定义:
已知公元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路径: 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<<"=====请输入测试用例====="< 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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测试 实验 报告 范本