黑盒测试作业参考标准答案.doc
- 格式:doc
- 大小:592.52 KB
- 文档页数:5
第三章 黑盒测试参考答案
(注意:答案仅供参考,若有误,请自行修改。 ) 1、某保险公司计算保险费率。 计算方式为 10 点及 10 点以上保险费率为 %, 10 点以下保险费率为 %;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下表所示。其中,年龄有效输入范 围为 1-100 ;抚养人数可输入“无”或 1-9 之间的整数。 使用等价类划分进行测试用例设计。 年龄 性别 婚姻 抚养人数
20~39 40~59 其它M F 已婚 未婚 1 人扣点
6 点 4 点 2 点 5 点 3 点 3 点 5 点 最多扣 3 点
参考答案: ( 1) 通过对程序功能的分析,其等价类表如下所示: 输入条件 有效等价类 无效等价类
20~39 岁 (1)
小于 1 岁
(11)
年龄 40~59 岁 (2)
大于 100 岁 (12)
1~19 岁或 60~100 岁 (3)
性别 ‘ M’ (4)
除‘ M’和‘ F’之外的其他字符 (13) ‘ F’ (5)
婚姻 已婚 (6) 除已婚和未婚之外的其他字符 ( 14) 未婚 (7)
无 ( 8) 除无和数字之外的其他字符 ( 15) 抚养人数 1~6 人 (9) 小于 1 ( 16) 6~9 人 (10) 大于 9 ( 17) ( 2) 设计测试用例表,覆盖等价类。
测试 输入数据 预期输出 抚养 覆盖的等价类 用例 年龄 性别 婚姻 保险费率 人数
1 27 M 已婚 无 1 4 6 8 % 2 50 F 未婚 2 2 5 7 9 % 3 70 M 已婚 7 3 4 6 10 % 4 0 M 已婚 无 11 4 6 8 提示“年龄应在 1~100 之间” 5 102 F 未婚 4 12 5 7 9 提示“年龄应在 1~100 之间” 6 30 T 已婚 无 1 13 6 8 提示“性别应输入 M或 F” 7 30 M 离婚 无 1 4 14 8 提示“婚姻应为已婚或未婚”
8 30 M 已婚 没有 1 4 6 15 提示“抚养人数应为无或 1-9 之间的整数”
9 30 M 已婚 -1 1 4 6 16 提示“抚养人数应为无或 1-9 之间的整数” 10 30 M 已婚 1 4 6 17 提示“抚养人数应为无或 1-9 20 之间的整数”
2、 NextDate 函数。
该函数要求输入三个变量 month、day 和 year ,输出该日期之后一天的日期。 其中 year 的取值范围为: 1900-2079 。如果输入的日期组合不合法,则显示“无效的输入日期”。 使用等价类划分进行测试用例设计。 参考答案: ( 1) 通过对程序功能的分析,其等价类表如下所示:
输入条件 有效等价类 无效等价类
Month 1≤ month≤ 12 Month<1 (11) (1)
(12) Month>12
Day 1≤ day ≤ 31 day<1 (13) (2)
(14) day>31
year 1900≤ year ≤ 2079 year<1900 (15) (3)
(16) year>2079
( 2) 设计测试用例表,覆盖等价类。 测试输入数据
用例 month day year
覆盖的等价类 预期输出
1 6 20 2008 1 2 3 2008-6-21 2 -1 20 2008 11 2 3 month 超出范围 3 14 20 2008 12 2 3 month 超出范围 4 6 -1 2008 1 13 3 day 超出范围 5 6 32 2008 1 14 3 day 超出范围 6 6 20 1800 1 2 15 year 超出范围 7 6 20 2080 1 2 16 year 超出范围 3、 P62,习题 7。 参考答案略。 4、某软件的一个模块的需求规格说明书中描述: ( 1)年薪制员工:严重过失,扣年终风险金的 4%;过失,扣年终风险金的 2%。 ( 2)非年薪制员工:严重过失,扣当月薪资的 8%;过失,扣当月薪资的 4%。 请绘制出因果图和判定表,并给出相应的测试用例。 参考答案: ( 1) 根据程序的规格说明,原因和结果如下:
原因: C1:年薪制员工。 (1:是年薪制员工; 0:非年薪制员工) C2 :严重过失 C3 :过失 结果: e1:扣年终风险金的 4%
e2 :扣年终风险金的 2% e3 :扣当月薪资的 8% e4 :扣当月薪资的 4% ( 2) 因果图:略 ( 3) 决策表: 规则 2 3 4 5 6 7 8 选项 1
C1:年薪制员工 1 1 1 1 0 0 0 0
条件 C2:严重过失 1 1 0 0 1 1 0 0
C3:过失 1 0 1 0 1 0 1 0
e1:扣年终风险金的 4% √
e2:扣年终风险金的 2% √
结果 e3:扣当月薪资的 8% √
e4:扣当月薪资的 4% √
不操作 √ √ 不可能 √ √ ( 4) 用例表:
用例 输入数据 预期输出 TC1 年薪制员工,严重过失 扣年终风险金的 4% TC2 年薪制员工,过失 扣年终风险金的 2% TC3 非年薪制员工,严重过失 扣当月薪资的 8% TC4 非年薪制员工,过失 扣当月薪资的 4% 5、有一个处理单价为 1 元 5 角钱的盒装饮料的自动售货机软件,若投入 1 元 5 角硬币,按 下“可乐”、“雪碧”或“橙汁”按钮,相应的饮料就送出来。若投入的是 2 元硬币,在送出 相应的饮料同时退换 5 角硬币。 请绘制出因果图和判定表,并给出相应的测试用例。 参考答案: ( 1) 根据程序的规格说明,原因和结果如下:
原因: C1——投入 1 元 5 角硬币 C2——投入 2 元硬币 C3——按下可乐按钮 C4——按下雪碧按钮 C5——按下橙汁按钮 结果: E1——退还 5 角硬币 E2——送出可乐饮料 E3——送出雪碧饮料 E4——送出橙汁饮料 中间结点: 11——已投币 12——已按钮 ( 2)因果图: ( 3)判定表:选项
规则 1-8 9-16 17 18 19 20 21 22 23 24
C1 0 1 1 1 1 1 1 1 1 1 C2 0 1 0 0 0 0 0 0 0 0 条件 C3 ——0 0 0 0 1 1 1 1
C4 ——0 0 1 1 0 0 1 1 C5 ——0 1 0 1 0 1 0 1 E1 E2 √ 结果 E3 √ E4 √ 不可能 √ √ √ √ √ √ √
选 项 25 26 27 28 29 30 31 32 规则
C1 0 0 0 0 0 0 0 0 C2 1 1 1 1 1 1 1 1 条件 C3 0 0 0 0 1 1 1 1
C4 0 0 1 1 0 0 1 1 C5 0 1 0 1 0 1 0 1 E1 √ √ E2 √ √ 结果 E3
E4 √ √ 不可能 √ √ √ √ √
( 4)测试用例表。略 6、 P62,习题 10。 参考答案略。 6、PriorDate 函数。该函数要求输入三个变量 month、day 和 year ,输出该日期之前一天的 日期。使用判定表法进行测试用例设计。 参考答案: ( 1)根据函数的功能,划分以下等价类集合。 月: M1: ={month | month=4 ,6, 9, 11 月( 30 天) } M2: ={month | month=5 ,7, 8, 10,12 月( 31 天) } M3: ={month | month=3 月( 31 天) } M4: ={month | month=2 月 } M5: ={month | month=1 月( 31 天) } 日: D1: ={Day | day=1} D2 : ={Day | day=2-28} D3: ={Day | day=29} D4 : ={Day | day=30} D5: ={Day | day=31} 年: Y1: ={year | year 是闰年 } Y2 : ={year | year 不是闰年 } ( 2)根据以上等价类集合,建立的判定表为: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 C1:month 在 M1 M1 M1 M2 M2 M3 M3 M3 M4 M4 M4 M4 M4 M5 M5
C2:day 在 D1 D2-D4 D5 D1 D2-D5 D1 D1 D2-D5 D1 D2 D3 D3 D4-D5 D1 D2-D5
C3:year 在 - - - - - Y1 Y2 - - - Y1 Y2 - - -
动作: √ √ √ 不可能 Day - 1 √ √ √ √ √ √ Month – 1 √ √ √ √ √
Year – 1 √
Day=30 √ Day=31 √ √ √ Month=12 √ Day=29 √ Day=28 √ 合并后的判定表如下: 1 2 3 4 5, 8, 6 7 10 11 12 13 14 15 C1:month M1 M1 M1 M2 M2 , M3 M3 M4 M4 M4 M4 M5 在 M3,M5 C2:day D1 D2-D4 D5 D1 D2-D5 D1 D1 D2 D3 D3 D4-D5 D1 在 C3:year - - - - - Y1 Y2 - Y1 Y2 - - 在
动作: √ √ √ 不可能 Day - 1 √ √ √ √ Month – √ √ √ √
1 Year – 1 √
Day=30 √ Day=31 √ √ Month=12 √ Day=29 √ Day=28 √ ( 2) 测试用例表 略 7、网上购物商场测试 略