软件测试课后作业—答案 下载本文

请为下面的程序设计用例:

该程序有三个输入变量month、day、year(month、day、year均为整数值,并且满足:1≦month≦12和1≦day≦31),分别作为输入日期的月份、日期、年份,通过程序可以输出该输入日期在日历上后面的隔一天的日期。例如,输入为2004年11月29日,则程序输出为2004年12月1日。

设计如下:

(1) Month的有效等价类

M1 M3

{month=4、6、9、11} {month=12}

M2 {month=1、3、5、7、8、10} M4 {month=2}

Day的有效等价类 D1 D3 D5

{1≦day≦26} {day=28} {day=30}

D2 {day=27} D4 {day=29} D6 {day=31}

Year的有效等价类 Y1

{year是闰年}

Y2 {year不是闰年}

(2) 根据各种有效的输入情况,程序中可能采取的操作有以下7种:

a1 a3 a5 a7

{day+2} {day=1} {month=1} {不可能}

a2 {day=2} a4 {month+1} a6 {year+1}

(3) 决策表

Month 条Day 件 Year a1 a2 a3 动a4 作 a5 a6 a7 Month 条Day 件 Year a1 a2 a3 动a4 作 a5 a6 a7

√ √ √ √ √ √ — √ Y1 √ Y2 √ Y1 √ Y2 √ Y1 √ Y2 — D1 D2 D3 D3 D3 D4 D4 D5、D6 11 M4 12 M4 13 M4 √ 14 M4 15 M4 16 M4 17 M4 18 M4 √ √ √ √ √ √ √ √ — √ — √ — √ — — √ — √ — √ — √ — √ — √ D1~D3 1 M1 2 M1 D4 3 M1 D5 4 M1 D6 5 M2 D1~D4 6 M2 D5 7 M2 D6 8 M3 D1~D4 9 M3 D5 10 M3 D6

(4) 测试用例

用例编号 Test01 Test02 Test03 Test04 Test05 Test06 Test07 Test08 Test09 Test10 Test11 Test12 Test13 Test14 Test15 Test16 Test17 Test18

Month 4 4 4 4 3 3 3 12 12 12 2 2 2 2 2 2 2 2 Day 25 29 30 31 29 30 31 29 30 31 26 27 27 28 28 29 29 30 Year 2010 2010 2010 2010 2010 2010 2010 2010 2010 2010 2010 2008 2009 2008 2009 2008 2009 2010 预期输出 4/27/2010 5/1/2010 5/2/2010 提示:不可能 3/31/2010 4/1/2010 4/2/2010 12/30/2010 1/1/2011 1/2/2011 2/28/2010 2/29/2008 3/1/2009 3/1/2008 3/2/2009 3/2/2008 提示:不可能 提示:不可能 有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角角硬币,按下“可乐”、“雪碧”、或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。 给出用因果图法设计这个实实例的测试用例的具体步骤: 原因(输入):① 投入1.5元硬币; ② 投入2元;

③ 按“可乐”按钮; ④ 按“雪碧”按钮; ⑤ 按“红茶”按钮。

中间状态: ① 已投币;②已按钮 结果(输出):① 退还5角硬币; ② 送出“可乐”饮料; ③ 送出 雪碧 饮料; ④ 送出“红茶”饮料; 因果图转换为判定表