软件测试与质量课程实验报告实验2:黑盒测试法实验姓名院系软件学院学号任课教师实验指导教师实验地点21A428实验时间2014-12-12实验目的系统地学习和理解黑盒测试的基本概念、原理熟悉和掌握等价类划分法,边界值分析法和决策表方法掌握测试用例编写要点实验内容1.编写一个程序,循环从标准输入读入某雇员的工作时间(以小时计)和每小时的工资数,计算并输出他的工资。若雇员月工作小时超过40小时,则超过部分按原工资的1.5倍的加班工资来计算。若雇员月工作小时超过50小时,则超过50的部分按原工资的3倍的加班工资来计算,而40到50小时的工资仍按照原工资的1.5倍的加班工资来计算。请结合等价类划分法和边界值分析法设计出相应的测试用例,并依照测试用例对所编写的程序进行测试。2.给出某一天(年,月,日),计算出它的下一天,取值范围为:年:1000=year=3000月:1=month=12日:1=day=31如1999年3月4日的下一天是:1999年3月5日要求:输入:三个参数(年,月,日)输出:如能正确计算,计算出它的下一天,否则,输出相应的错误信息。请利用决策表法设计出相应的测试用例,并依照测试用例对所编写的程序进行测试。实验结果实验一1.等价类划分法输入条件有效等价类编号无效等价类编号工作时间0=hourA1hour0A50hour40A2hour744A640hour50A350hour744A4每小时工资wage0B1wage0B2编号输入数据覆盖等价类输出数据工作时间每小时工资1010A1B1021010A2B110034110A3B141545110A4B15805-110A5B1输入错误(不符合实际)675010A6B1输入错误(不符合实际)70-10A1B2输入错误(不符合实际)810-10A2B2输入错误(不符合实际)941-10A3B2输入错误(不符合实际)1051-10A4B2输入错误(不符合实际)11-1-10A5B2输入错误(不符合实际)12750-10A6B2输入错误(不符合实际)2边界值分析法编号输入数据输出时间hours工资wage1040024040出错3414017604-140时间0574540时间744674440出错710-10工资小于0844-10工资小于09-1-10工资小于010745-10工资小于0117434029720实验二:月份:M1=4,6,9,11(30天)M2=1,3,5,7,8,10(31天12月除外)M3=12M4=2日期:D1=1至27D2=28D3=29D4=30D5=31年:Y1为闰年Y2为平年条件桩:C1:月份在{M1,M2,M3,M4}中之一C2:日期在{D1,D2,D3,D4,D5}中之一C3:年在{Y1,Y2}中之一动作桩:A1:不可能A2:日期增1A3:日期复位(置1)A4:月份增1A5:月份复位(置1)A6:年增11234567891011C1M1M1M1M1M1M2M2M2M2M2M3C2D1D2D3D4D5D1D2D3D4D5D1C3A1TA2TTTTTTTTA3TTA4TTA5A61213141516171819202122C1M3M3M3M3M4M4M4M4M4M4M4C2D2D3D4D5D1D2D2D3D3D4D5C3Y1Y2Y1Y2A1TTTA2TTTTTA3TTTA4TTA5TA6T用例编号月日年预期输出1--3412/28/2920012001年4月13/29/30日443020012001年5月1日54312001不可能6--9115/28/29/3020012001年1月16/29/30/31日1013120012001年2月1日11-141215/28/29/3020012001年12月16/29/30/31日15123120012002年1月1日1621520012001年2月16日1722820042004年2月29日1822820012001年3月1日1922920052005年3月1日202292001不可能21,22230/312001不可能扣分原因(有扣分时填写)扣分0日期:缺席:扣10分实验报告雷同:扣10分实验结果填写不完整:扣1–10分其他情况:扣分=5分总扣分不能大于10分参考代码如下:(1)程序参考答案:•#includeiostream.h•doublemain()•{•inthours;•doublepayment,wage;•coutpleaseinputhoursandperhourpay:;•cinhourswage;•if(hours40)•payment=hours*wage;•elseif((hours40)&&(hours=50))•payment=40*wage+(hours-40)*1.5*wage;•elseif(hours50)•payment=40*wage+10*1.5*wage+(hours-50)*3*wage;•coutThefinalpaymentare:payment;•returnpayment;•}(2)#includestdio.hvoidmain(){intyear;intmonth,maxmonth=12;intday,maxday;printf(请输入年份:(1000~3000));scanf(%d,&year);if(year1000||year3000){printf(输入错误!请从新输入!\n);printf(请输入年份:(1000~3000));scanf(%d,&year);}printf(请输入月份:(1~12));scanf(%d,&month);if(month1||month12){printf(输入错误!请从新输入!\n);printf(请输入月份:(1~12));scanf(%d,&month);}if(month==4||month==6||month==9||month==11)maxday=30;elseif(month==2){if(year%400==0||year%4==0)maxday=28;elsemaxday=29;}elsemaxday=31;printf(请输入日份:(1~31));scanf(%d,&day);if(day1||daymaxday){printf(输入错误!请从新输入!\n);printf(请输入日份:(1~31));scanf(%d,&day);}if(month==maxmonth&&day==maxday){year=year+1;month=1;day=1;}elseif(day==maxday){month=month+1;day=1;}elseday=day+1;printf(下一天是%d年%d月%d日,year,month,day);}