您好,欢迎访问三七文档
学生实验报告(理工类)课程名称:软件测试专业班级:G07计算机科学与技术学生学号:0722110312学生姓名:李梦然所属院部:信息技术学院指导教师:阎浩2010——2011学年第一学期金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。实验报告书写说明实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。实验项目名称:黑盒测试实验学时:4同组学生姓名:实验地点:B407实验日期:2010.9.15-2010.9.30实验成绩:批改教师:批改时间:一、实验目的和要求(1)能熟练应用黑盒测试技术进行测试用例设计;(2)对测试用例进行优化设计;二、实验仪器和设备主流PC机一套,要求安装windows操作系统和Office工具;TC。三、实验过程1.题目一:日期问题用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1=month=12和1=day=31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔两天的日期。例如,输入为2004年11月29日,则该程序的输出为2004年12月2日。(1)编写程序#includestdio.hNext3Date(intyear,intmonth,intday){inta[12]={31,28,31,30,31,30,31,31,30,31,30,31};intb[12]={31,29,31,30,31,30,31,31,30,31,30,31};inty,m,d;if(year%4==0&&!(year%100==0)||year%400==0){if(b[month-1]-2day){d=day+3;m=month;y=year;}else{d=day-b[month-1]+3;m=month+1;y=year;}}else{if(a[month-1]-2day){d=day+3;m=month;y=year;}else{d=day-a[month-1]+3;m=month+1;y=year;}}if(m12){m=m-12;y++;}printf(Threedayslateris%d.%d.%d\n,y,m,d);}intmain(){intisRn;intdays;inti;intrightday=1;intmonth,day,year;printf(Pleaseinputyear,monthandday:);scanf(%d.%d.%d,&year,&month,&day);if(year%4==0&&!(year%100==0)||year%400==0){isRn=1;}else{isRn=0;}switch(month){case2:if(isRn){days=29;if(daydays){printf(inputisimpossible.\n);rightday=0;}}else{days=28;if(daydays){printf(inputisimpossible.\n);rightday=0;}}break;case1:case3:case5:case7:case8:case10:case12:days=31;if(daydays){printf(inputisimpossible.\n);rightday=0;}break;default:days=30;if(daydays){printf(inputisimpossible.\n);rightday=0;}break;}if(rightday){printf(thedayis%d.%d.%d\n,year,month,day);Next3Date(year,month,day);}}(2)分析各种输入情况,列出为输入变量month、day、year划分的有效等价类。输入条件编号有效等价类输入月份11=月份=12输入日期21=日期=31类型3Int型闰年4输入2月29平年5输入2月28(3)分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。M1:{month:month有30天}M2:{month:month有31天,12月除外}M3:{month:month是12月}M4:{month:month是2月}D1:{day:1=day=25}D2:{day:day=26}D3:{day:day=27}D4:{day:day=28}D5:{day:day=29}D6:{day:day=30}D7:{day:day=31}Y1:{year:year是闰年}Y2:{year:year不是闰年}(4)根据(1)和(2),画出简化后的决策表。规则选项1-34-678-1112-1415-1819-21条件C1:month在C2:day在C3:year在M1M1M1M2M2M3M3D1-D3D4-D6D7D1-D4D5-D7D1-D4D5-D7动作A1:不可能A2:day加3A3:day复位A4:month加1A5:month复位A6:year加1VVVVVVVVVVV规则选项22232425262728293031-32条件C1:month在C2:day在C3:year在M4M4M4M4M4M4M4M4M4M4D1D2D2D3D3D4D4D5D5D6-D7Y1Y2Y1Y2Y1Y2Y1Y2动作A1:不可能A2:day加3A3:day复位A4:month加1A5:month复位A6:year加1VVVVVVVVVVVVVVVV2.题目二:找零钱最佳组合假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内(P),求找给顾客最少货币个(张)数?(货币面值50元,10元,5元,1元四种)(1)请编写程序,输出正确结果intP;intR;inti=0;intN50=0;intN10=0;intN5=0;intN1=0;printf(PleasegivethepriceofthingandConsumergives:);scanf(%d%d,&R,&P);if(R100||P100||RP){printf(Wrong:Pleasetakecare.\n);}else{if(P-R=50){P=P-50;N50=N50+1;i++;}while(P-R=10){P=P-10;N10=N10+1;i++;}while(P-R=5){P=P-5;N5=N5+1;i++;}while(P-R=1){P=P-1;N1=N1+1;i++;}printf(TheN50has%dzhang.TheN10has%dzhang.TheN5has%dzhang.TheN1has%dzhang.totalis%d\n,N50,N10,N5,N1,i);}(2)请思考并选择最合适的黑盒测试方法对该软件进行测试。经过思考,适合测试“找零钱最佳组合”的方法是边界值分析法。四、实验结果与分析(1)“日期问题”的测试用例:测试用例MonthDayYear输出Test1-361520092009.6.18Test4-662920092009.7.2Test76312009不可能Test8-1112820102010.1.31Test12-1413020102010.2.2Test15-18121620102010.12.19Test19-21123020102011.1.2Test2221520102010.2.18Test2322620002000.2.29Test2422620012001.3.1Test2522720042004.3.1Test2622720012001.3.2Test2722820002000.3.2Test2822820012001.3.3Test2922920042004.3.3Test302292001不可能Test31-322302010不可能(2)“找零钱最佳组合”的测试用例测试用例RP输出结果1100101Wrong:Pleasetakecare.210099Wrong:Pleasetakecare.3501001451100959010016911005795100189610049991001101001000通过本次实验,首先是对我的C语言的编程能力的一个考验,其次是考验我对于软件测试,这里是黑盒测试方法的理解和认识。本次实验让我知道等价类划分和边界值分析测试技术是有区别的,要具体问题具体分析。在“找零钱最佳组合”的问题上,它有两个变量,就让人想到边界值分析法。其实边界值和等价类密切相关,等价类划分过程中产程了许多等价类便捷。输入等价类和输出等价类的边界也是着重测试的边界情况。所以从等价类中选取测试数据时应该关注边界值。
本文标题:黑盒测试
链接地址:https://www.777doc.com/doc-6496277 .html