1、讲课黑盒测试练习题答案讲课黑盒测试练习题答案等价类划分方法:1.设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的日期检查功能。 1)划分等价类并编号,下表等价类划分的结果输入等价类有效等价类无效等价类日期的类型及长度6位数字字符有非数字字符少于6位数字字符多于6位数字字符年份范围在19902049之间小于1990大于2049月份范围在0112之间等于00大于122)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为、,设
2、计的测试用例如下: 测试数据 期望结果 覆盖的有效等价类 200211 输入有效 、 3)为每一个无效等价类设计一个测试用例,设计结果如下: 测试数据 期望结果 覆盖的无效等价类year的取值范围为1912year2050 。(6n+1)因果图方法1.有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下橙汁或啤酒的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还5角硬币。1)分析这一段说明,
3、列出原因和结果原因:1.售货机有零钱找2.投入1元硬币3.投入5角硬币 4.押下橙汁按钮5.押下啤酒按钮 结果: 21.售货机零钱找完灯亮 22.退还1元硬币23.退还5角硬币 24.送出橙汁饮料25.送出啤酒饮料2)画出因果图,如图所示。所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点:11. 投入1元硬币且押下饮料按钮 12. 押下橙汁或啤酒的按钮 13. 应当找5角零钱并且售货机有零钱找 14. 钱已付清3)转换成判定表:4)在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。第16列与第32列因什么动作也没做,也删去。最后可根据剩下的1
4、6列作为确定测试用例的依据。判定表分析方法1用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1month12和1day31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。习题:给出某一天(年,月, 日),计算出它的下一天,取值范围为: 年:1000= year =3000 月:1=month =12 日:1= day =31 如 1999年3月4日的下一天是:1999年3月5日要求:输入:三个参数(年,月, 日)输出:如能正确计算,计算出它的下一天, 否则,输出相应的错误信息。
5、1)使用C语言编写程序实现2)请结合等价类划分法和边界值分析法设计出相应的测试用例,并依照测试用例对所编写的程序进行测试。(1)代码如下:#includevoid main() int year; int month,maxmonth=12; int day,maxday; printf(请输入年份:(10003000); scanf(%d,&year); if(year3000) printf(输入错误!请从新输入!n); printf(请输入年份:(10003000); scanf(%d,&year); printf(请输入月份:(112); scanf(%d,&month); if(mo
6、nth12) printf(输入错误!请从新输入!n); printf(请输入月份:(112); scanf(%d,&month); if(month=4|month=6|month=9|month=11) maxday=30; else if(month=2) if(year%400=0 | year%4=0) maxday=28; else maxday=29; else maxday=31; printf(请输入日份:(131); scanf(%d,&day); if(daymaxday) printf(输入错误!请从新输入!n); printf(请输入日份:(131); scanf(%
7、d,&day); if(month=maxmonth & day=maxday) year=year+1; month=1; day=1; else if(day=maxday) month=month+1; day=1; else day=day+1; printf(下一天是%d年%d月%d日,year,month,day);(2)输入条件有效等价类编号无效等价类编号年1000=year=3000(1)3000(5)月1=month=12(2)12(7)日1=day=31(3)31(9)边界测试用例序号输入参数输出结果1200002282000年3月1日29990105输入错误!请从新输入!
8、330010312输入错误!请从新输入!420120012输入错误!请从新输入!520111323输入错误!请从新输入!620180300输入错误!请从新输入!720560432输入错误!请从新输入!等价类测试用例序号输入参数覆盖等价类输出结果120020105(1)(2)(3)2002年1月6日29910502(4)输入错误!请从新输入!330120515(5)输入错误!请从新输入!420120015(1)(6)输入错误!请从新输入!520141325(1)(7)输入错误!请从新输入!620070400(1)(2)(8)输入错误!请从新输入!720010632(1)(2)(9)输入错误!请从新输入!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1