案例分析题

阅读下列说明,回答下列问题。

【说明】
某航空公司进行促销活动,会员在指定日期范围内搭乘航班将获得定奖励,奖励分为4个档次,由乘机次数和点数共同决定,如表2-1所示。其中点数果票面价格和购票渠道有关,规则如表2-2所示。

表2-1促销奖励

乘机次数 点数 奖励档次 奖励
≥20次 ≥200点 1 国内任意航段免票2张
≥15次 ≥150点 2 国内任意航段免票1张
≥10次 ≥100点 3 280元国内机票代金券2张
≥7次 ≥70点 4 180元内机票代金券2张

表2-2点数累计规则

票面价 官网购票 手机客户端购票
每满100元 1点 1.2点

航空公司开发了一个程序来计算会员在该促销活动后的奖励,程序的输入包括会员在活动期间的乘机次数C、官网购票金额A (单位:元) 和手机客户端购票金额B (单位:元),程序的输出为本次活动奖励档次L。其中,C、A、B为非负整数,L为0~5之间的整数(0表示无奖励)。

问答题

采用等价类划分法对该程序进行测试(同时对输入输出进行等价类划分), 等价类表如表2-3所示,请补充表2-3中的空(1) ~ (4)。

表2-3等价类

输入/输出 有效等价类 编号 无效等价类 编号
乘机次数C (1) 1 非整数 9
    负整数 10
官网购票金额A 非负整数 2 非整数 11
    负整数 12
手机客户端
购票金额B
非负整数 3 非整数 13
    (4) 14
奖励档次L 1 4    
2 5    
3 6    
(2) 7    
(3) 8    
【正确答案】

(1)非负整数
(2)4
(3)0
(4)负整数

【答案解析】

划分等价类的6条原则:
(1)在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类;
(2)在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类;
(3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类;
(4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类;
(5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则);
(6)在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则再将该等价类进一步地划分为更小的等价类;
题干中明确:C、A、B为非负整数,结合乘机次数的无效等价了,A、B的有效等价类(1)处应该填写非负整数;
题干中明确:C、A、B为非负整数,L为0~5之间的整数(结合题干分析,应该是0~4之间整数),而且每一种是单独处理的,再结合问题【2】的测试用例表的测试编号1和4,所以,(2)(3)应该填写4、0;
题干中明确:C、A、B为非负整数,结合前面两个无效等价,(4)处应该填写负整数。

问答题

根据以上等价类表设计的测试用例如表2-4 所示,请补充表24中的空(1)~(9)。

表2-4测试用例

编号 输入 覆盖等价类(编号) 预期输出L
C A B
1 0 0 0 [1] [2]
2 [3] 20000 0 1,2,3,4 1
3 15 [4] 0 1,2,3,5 2
4 [5] 10000 0 1,2,3,6 3
5 7 [6] 0 [7] 4
6 [8] 0 0 9,2,3 N/A
7 -1 0 0 10,2,3 [9]
8 0 A 0 11,2,3 N/A
9 0 -1 0 12,2,3 N/A
10 0 0 A 13,2,3 N/A
11 0 0 -1 14,2,3 N/A
【正确答案】

(1)1、2、3、8
(2)0
(3)20(大于等于20的等价答案)
(4)15000(大于等于15000的等价答案)
(5)10(大于等于10且小于15的等价答案)
(6)7000(大于等于15000的等价答案)
(7)1、2、3、7
(8)1.1(非整数的等价答案)
(9)N/A

【答案解析】

测试编号1:依据题干含义,当C、A、B全为零的时候,应该输出为0,也就是覆盖1,2,3,8等有效等价类;
测试编号2:覆盖1、2、3、4等价类输出为1,且A为20000/100=200点,所以乘机次数应该大于等于20次;
测试编号3:覆盖1、2、3、5等价类输出为2,且乘机次数为15,所以点数应该为大于等于150点的数值,所A应该大于等于15000的数值;
测试编号4:覆盖1、2、3、6等价类输出为3,且A为10000/100=100点,所以乘机次数应该大于等于10且小于15;
测试编号5:C为7、B为0、预期输出为4,所以乘机点数应该大于等于70点,所以A应为大于等于7000的数值,覆盖 1、2、3、7等价类;
测试编号6:覆盖9、2、3,即C为非整数;
测试编号7:覆盖10、2、3,即应为无效输入,没有对应的输出 即N/A。

问答题

对于本案例的黑盒测试来说,以上测试方法有哪些不足?

【正确答案】

1)无法体现出C、A/B之间的制约关系,比如当满足A/B(转换后对应的点数满足),但不满足C(乘机次数)的情况;
2)没有考虑手机端的情况,题干中B的数值都为0。

【答案解析】

本题中由于存在多条件的制约情况,如输出1时,需要乘机次数C和点数A/B都符合特定的要求,无法很好的体现出条件之间的制约情况,比如点数符合对应档次要求,但乘机次数未达到要求的情况;另外测试时没有对手机端进行测试。