试题3
阅读以下利用场景法设计测试用例的技术说明,根据要求回答问题1~问题4。(15分)
【说明】
现有的软件通常都是由事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流。该软件设计思想也可被引入到软件测试中,从而生动描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使得测试用例更容易得到理解和执行。
用例场景是通过描述流经用例的路径来确定的过程,这个流经过程要从用例开始到结束遍历其中所有基本流(基本事件)和备选流(分支事件)。表12是对某IC卡加油机应用系统基本流的描述,表13是对该IC卡加油机应用系统备选流的描述。
表12 基本流描述表
序 号 |
用 例 名 称 |
用 例 描 述 |
A1 |
准备加油 |
客户将IC加油卡插入加油机 |
A2 |
验证加油卡 |
加油机从加油卡的磁条中读取账户代码,并检查它是否属于可以接收的加油卡 |
A3 |
验证黑名单 |
加油机验证该卡账户是否存在于黑名单中,如果属于黑名单,则加油机吞卡 |
A4 |
输入购油量 |
客户输入需要购买的汽油数量 |
A5 |
加油 |
加油机完成加油操作,从加油卡中扣除相应金额 |
A6 |
返回加油卡 |
退还加油卡 |
表13 备选流描述表
序 号 |
用 例 名 称 |
用 例 描 述 |
B |
加油卡无效 |
在基本流A2过程中,该卡不能够识别或是非本机可以使用的IC卡,加油机退卡,并退出基本流 |
C |
卡账户属于黑名单 |
在基本流A3过程中,判断该卡账户属于黑名单(如已经挂失),加油机吞卡并退出基本流 |
D |
加油卡账面资金不足 |
系统判断加油卡内资金不足,重新加入基本流A4,或选择退卡 |
E |
加油机油量不足 |
系统判断加油机内油量不足,重新加入基本流A4,或选择退卡 |
【问题1】(3分)
图15是对该IC卡加油机应用系统的基本流路径和备选流路径的描述,请用试题描述中的相应字母(见表12和表13)将图中(1)~(6)空缺处的内容填写完整。
【问题1】答案解析:
这是一道要求考生掌握场景法的基本流和备选流路径描述的应用分析题。本题的解答思路如下。
① 经过用例的每条不同路径都反映了基本流和备选流,而且都用箭头来表示。基本流用粗直黑线来表示,是经过用例的最简单的路径。图15中粗直黑线就是对该IC卡加油机应用系统基本流路径的描述。
② 根据表12中A1~A6各个基本流的描述和描述顺序,以及图14中已给出的基本流A1、A2、A3和A6的路径位置可知,图14中(3)空缺处填写的内容就是“A4(输入购油量)”,(4)空缺处填写的内容应为“A5(加油)”。
③ 备选流用不同的彩色曲线表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中;也可能起源于另一个备选流,或者终止用例而不再重新加入某个流。
④ 根据表13中备选流B的描述“在基本流A2过程中,该卡不能够识别或是非本机可以使用的IC卡,加油机退卡,并退出基本流”可知,备选流B的路径起源于基本流A2,终点是基本流A6(退还加油卡)。因此图14中(1)空缺处填写的内容就是“B(加油卡无效)”。
⑤ 同理,根据表13中备选流C的关键描述“在基本流A3过程中,判断该卡账户属于黑名单,加油机吞卡退出基本流”可知,备选流C的路径起源于基本流A3,终点是基本流A6(退还加油卡)。因此图14中(2)空缺处填写的内容就是“C(卡账户属于黑名单)”。
⑥ 备选流D(加油卡账面资金不足)的描述“系统判断加油卡内资金不足,重新加入基本流A4,或选择退卡”中,“系统判断加油卡内的资金不足”是指当客户输入需要购买的汽油数量时,该IC卡加油机应用系统将准备购买的汽油数量乘以单位油价得到需支付的费用,并将此费用与客户加油卡内资金进行比较后的一种可能结果。因此备选流D的路径起源于基本流A4(输入购油量)之后,基本流A5(加油)之前。由备选流D的描述“重新加入基本流A4,或选择退卡”可知,备选流D的路径终点可能是基本流A4,以便重新进行购油量的输入;也可能是基本流A6(退还加油卡)。因此需将“D(加油卡账面资金不足)”的内容同时填入图14中(5)和(6)空缺处。
⑦ 备选流E(加油机油量不足)的描述“系统判断加油机内油量不足,重新加入基本流A4,或选择退卡”中,“系统判断加油机内油量不足”是指当客户输入需要购买的汽油数量时,该IC卡加油机应用系统将准备购买的汽油数量与系统加油机内现存的汽油数量进行比较后的一种可能结果。因此备选流E的路径起源于基本流A4(输入购油量)之后,基本流A5(加油)之前。备选流E的路径终点可能是基本流A4,以便重新进行购油量的输入,也可能是基本流A6(退还加油卡)。因此需将“E(加油机油量不足)”的内容同时填写入图14中(5)和(6)空缺处。
【问题2】(8分)
场景中的每一个场景都需要确定测试用例,一般采用矩阵或决策表来确定和管理测试用例。表14是一种通用格式,表中各行代表各个测试用例,而各列代表测试用例的信息。本例中的测试用例包含测试用例ID号、场景(或说明/条件)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中),以及预期结果等项目。
图14 |
测试用例的设计步骤通常是,首先确定执行用例场景所需的数据元素(本例中包括账号、是否黑名单卡、输入油量、账面金额和加油机油量),然后构建矩阵,最后确定包含执行场景所需的适当条件的测试用例。在表14的测试矩阵中,V表示有效数据元素,I表示无效数据元素,n/a表示不适用,例如CW01表示“成功加油”基本流。请按上述规定为其他地应用场景设计测试用例矩阵。
表14 测试用例表
测试用例ID号 |
场 景 |
账 号 |
是否黑名单卡 |
输 入 油 量 |
账 面 金 额 |
加油机油量 |
预 期 结 果 |
CW01 |
场景1: |
V |
I |
V |
V |
V |
成功加油 |
CW02 |
|
|
|
|
|
|
|
CW03 |
|
|
|
|
|
|
|
CW04 |
|
|
|
|
|
|
|
CW05 |
|
|
|
|
|
|
|
【问题2】答案解析:
这是一道要求考生掌握在场景法中设计测试用例的综合分析题。本题的分析思路如下。
① 根据题目的描述可知,本案例中存在着以下5种场景。
场景1:基本流A。
场景2:基本流A、备选流B。
场景3:基本流A、备选流C。
场景4:基本流A、备选流D。
场景5:基本流A、备选流E。
② 测试用例表(表14)已给出了场景1的测试用例,对于其他4行所填写的内容可以通过参照场景1的测试用例的解答思路进行。
③ 本案例中与场景2(AB)相关的描述如下。
A2,验证加油卡。加油机从加油卡的磁条中读取账户代码,并检查它是否属于可以接收的加油卡。
B,加油卡无效。在基本流A2过程中,该卡不能够识别,或是非本机可以使用的IC卡,加油机退卡,并退出基本流。
由“备选流B(加油卡无效)”的描述中提取出场景2(AB)的名称-“卡无效”,输入值是“账号无效”,预期结果是“退卡”。
④ 本案例中与场景3(AC)相关的描述如下。
A2,验证加油卡。加油机从加油卡的磁条中读取账户代码,并检查它是否属于可以接收的加油卡。
A3,验证黑名单。加油机验证卡账户是否存在于黑名单中,如属于黑名单,则加油机吞卡。
C,卡账户属于黑名单。在基本流A3过程中,判断该卡账户属于黑名单,例如,已经挂失,加油机吞卡并退出基本流。
由“备选流C(卡账户属于黑名单)”的描述提取出场景3(AC)的名称-“黑名单卡”,输入值是“账号有效”和“黑名单卡”,预期结果是“吞卡”。
⑤ 基本流A1~A4、备选流D的相关描述与本案例中场景4(AD)有关。由“备选流D(加油卡账面资金不足)”的描述提取出场景4(AD)的名称-“金额不足”,其输入值为“账号有效”、“非黑名单卡”、“输入购油量有效”、“加油机油量有效”和“账面金额无效”,预期结果是“提示错误,或重新输入购油量,或退卡”。
⑥ 基本流A1~A4、备选流E的相关描述与本案例中场景5(AE)有关。由“备选流E(加油机油量不足)”的描述提取出场景5(AE)的名称-“油量不足”,其输入值为“账号有效”、“非黑名单卡”、“输入购油量有效”、“账面金额有效”和“加油机油量无效”,预期结果是“提示错误,或重新输入购油量,或退卡”。
⑦ 将以上分析结果按照试题中的规定-“V表示有效数据元素,I表示无效数据元素,n/a表示不适用”,归纳整理成如表15所示的测试用例表。
表15 完整的测试用例表
测试用例ID号 |
场 景 |
账 号 |
是否黑名单卡 |
输 入 油 量 |
账 面 金 额 |
加油机油量 |
预 期 结 果 |
CW01 |
场景1: |
V |
I |
V |
V |
V |
成功加油 |
CW02 |
场景2: |
I |
n/a |
n/a |
n/a |
n/a |
退卡 |
CW03 |
场景3: |
V |
V |
n/a |
n/a |
n/a |
吞卡 |
CW04 |
场景4: |
V |
I |
V |
I |
V |
提示错误,或重新输入购油量,或退卡 |
CW05 |
场景5: |
V |
I |
V |
V |
I |
提示错误,或重新输入购油量,或退卡 |
⑧ 用如表15所示的方法创建测试用例矩阵时,无须为条件输入任何实际的值,只需查看表中的V和I项就能判断是否已经确定了充足的测试用例,即该创建方法的优点在于容易看到测试的是什么条件。例如,从表15中可以看出,数据元素“输入油量”仅有“V”项,缺少“I”项(如输入“-1”等情况),这表明表15的测试用例还不完整。
【问题3】(2分)
对于基本流A来说,表14中哪些测试用例属于正面测试用例,哪些测试用例属于负面测试用例,请用表14中相应的“测试用例ID号”回答问题。
【问题3】答案解析:
这是一道要求考生掌握根据具体应用环境区分场景法中正面/负面测试用例的分析题。本题的解答思路如下。
① 先将【问题1】的分析结果归纳整理为如图15所示的场景路径的描述图。
② 在图15中,对于基本流A来说,测试用例CW01一直沿着用例的基本流路径执行,未发生任何偏差,因此,该测试用例是基本流A的正面测试用例。
③ 基本流A的全面测试必须包括负面测试用例,以确保只有在符合条件的情况下才执行基本流。测试用例CW02~CW05是基本流A的负面测试用例。
④ 另外说明一点,测试用例CW02~CW05相对于基本流A而言都是负面测试用例,但它们相对于各自的备选流而言是正面测试用例。对于这些备选流中的每一个来说,至少存在一个负面测试用例-测试用例CW01。
完整的场景路径描述图 |
【问题4】(2分)
假如加油机内油量足够,油价为5元/升,用户的账户金额为800元,那么在基本流A4输入油量的过程中,请利用边界值分析方法为A4选取合适的输入数据(即油量,单位为升)。
【问题4】答案解析:
这是一道要求考生应用边界值法设计测试用例的分析题。本题的解答思路如下。
边界值分析法是一种黑盒测试方法,是对等价类分析方法的一种补充。选择其测试用例取值的原则有:①如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,以及使用刚刚超过这个范围边界的值作为测试输入数据;②如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多1个和比最小个数少1个的数作为测试数据;③如果程序的规格说明给出的输入域或输出域是有序集合(如有序表和顺序文件等),则应选择集合的第一个和最后一个元素作为测试用例;④如果程序用了一个内部结构,则应该选择这个内部数据结构的边界值作为测试用例;⑤分析规格说明,找出其他可能的边界条件。
由“油价为5元/升,用户的账户金额为800元”可计算出用户合理的购油量输入范围是0~160升。本案例边界值法的取值原则可按照取最小值、最大值、比最小值稍小的值和比最大值稍大的值进行。因此,用边界值法设计基本流A4输入油量的测试数据的最大值为160升,比最大值稍大的输入数据为161升,最小值为0升。由于比0小的数是负数,不符合现实意义,因此,本试题不选择“比最小值稍小的值”作为输入数据。
【编辑推荐】