软件测试用例分析习题完美整合版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试⽤例分析习题完美整合版
场景分析法
⼀、以答题业务为例:
1.答对题⽬增加题⽬积分,积分达到设定值时奖励⼀个礼包;
2.取题规则为随机不重复;
3.答错题⽬后答新题.
开始答题
是否存在
有效题⽬
提供题⽬及备选答案
答案是否
正确
增加题⽬积分
积分⼤于或等于设定值?给予⽆有效题⽬提⽰
结束奖励⼀个礼包
1.确定基本流与备选流
基本流: 步骤1. 开始答题
步骤2. 判断是否存在有效题⽬,存在有效题⽬,处理:提供题⽬及备选答案
步骤3. ⽤户答题并答对题⽬,增加⽤户相应积分。

步骤4. 判断积分是否达到设定值,达到,获取⼀个礼包,流程结束。

备选流1: 不存在有效题⽬
基本流步骤2时,题库不存在未答题⽬,处理:给予⽆有效题⽬提⽰,流程结束。

备选流2: 答错题⽬基本流步骤3时,答错题⽬,处理:提⽰⽤户答错题⽬,回到基本流步骤2
备选流3:答题后积分达不到设定值
基本流步骤4时,答对题后积分仍达不到设定值,处理:回到基本流步骤2
2.确定以下⽤例场景:
3.通过从确定执⾏⽤例场景所需的数据元素⼊⼿构建矩阵
4.设计数据,把数据填⼊上⾯的⽤例表中
⼆、下图所⽰是ATM例⼦的流程⽰意图。

2.场景设计:下表所⽰是⽣成的场景。

3.⽤例设计
4.测试⽤例表
三、⽤户进⼊⼀个在线购物⽹站进⾏购物,选购物品后,进⾏在线购买,这时需要使⽤账号登录,登录成功后,进⾏付钱交易,交易成功后,⽣成订购单,完成整个购物过程。

第⼀步:确定基本流和备选流
基本流:登录在线⽹站→选择物品→登录账号→付款→⽣成订单;
备选流1:账户不存在;
备选流2:账户密码错误;
备选流3:⽤户账户余额不⾜;
备选流4:⽤户账户没钱。

第⼆步:根据基本流和备选流确定场景
场景1成功购物:备选流;
场景2账号不存在:基本流,备选流1;
场景3账号密码错误:基本流,备选流2;
场景4账户余额不⾜:基本流,备选流3;
场景5账户没钱:基本流,备选流4。

第三步:对每⼀个场景⽣成相应的测试⽤例
测试⽤例
ID 场景/条件账号密码
⽤户账
号余额
预期结果
1 场景1:成功购物V V V 成功购物
2 场景2:账号不存在 1 n/a n/a 提⽰账号不存在
3 场景3:账号密码错误
(账号正确,密码错误)V 1 n/a 提⽰账号密码错误,返
回基本流步骤3
4 场景4:⽤户账号余额不
⾜V V 1 提⽰⽤户账号余额不
⾜,请充值
5 场景5:⽤户账号没钱V V 1 提⽰⽤户账号没有钱,
请充值
第四步:设计测试数据
测试⽤例ID 场景/条件账号密码
⽤户账
号余额
预期结果
1 场景1:成功购物Test 123456 800 成功购物,账号余额减少
100元
2 场景2:账号不存在aa n/a n/a 提⽰账号不存在
3 场景3:账号密码错误
(账号正确,密码错误)Test 111111 n/a 提⽰账号密码错误,返回
基本流步骤3
4 场景4:⽤户账号余额不
⾜Test 123456 50 提⽰⽤户账号余额不⾜,
请充值
5 场景5:⽤户账号没钱Test 12345
6 0 提⽰⽤户账号没有钱,请
充值
等价类划分法
⼀、计算保费费率的程序
(1)分析程序规格说明中给出和隐含的对输⼊条件的要求,列出等价类表(包括有效等价类和⽆效等价类)。

年龄:⼀位、两位或三位整数,值的有效范围为0~120
性别:⼀位英⽂字符,只能取值‘M’或‘F’
婚姻:字符,只能取值‘已婚’或‘未婚’
抚养⼈数:空⽩或⼀位⾮零整数(1~9)
(2)根据(1)中的等价类表,设计能覆盖所有等价类的测试⽤例。

⼆、某城市电话号码由三部分组成,分别是:
地区码——空⽩或三位数字;
前缀——⾮‘0’或‘1’开头的三位数字;
后缀——4位数字。

假定被测程序能接受⼀切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。

请使⽤等价类划分法设计测试⽤例,给出
等价类列表,设计测试⽤例。

三、根据下⾯给出的规格说明,利⽤等价类划分的⽅法,给出⾜够的测试⽤例。

⼀个程序读⼊3个整数,把这三个数值看作⼀个三⾓形的3条边的长度值。

这个程序要打印出信息,说明这个三⾓形是不等边的、是等腰的、还是等边的。

四、设有⼀个档案管理系统,要求⽤户输⼊以年⽉表⽰的⽇期。

假设⽇期限定在1990年1⽉~2049年12⽉,并规定⽇期由6位数字字符组成,前4位表⽰年,后2位表⽰⽉。

现⽤等价类划分法设计测试⽤例,来测试程序的"⽇期检查功能"。

1)划分等价类并编号,下表等价类划分的结果
输⼊等价类有效等价类⽆效等价类
⽇期的类型及长度①6位数字字符②有⾮数字字符
③少于6位数字字符
④多于6位数字字符
年份范围⑤在1990~2049之间⑥⼩于1990
⑦⼤于2049
⽉份范围⑧在01~12之间⑨等于00
⑩⼤于12
2)设计测试⽤例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、
⑤、⑧,设计的测试⽤例如下:
测试数据期望结果覆盖的有效等价类
200211 输⼊有效①、⑤、⑧
3)为每⼀个⽆效等价类设计⼀个测试⽤例,设计结果如下:
测试数据期望结果覆盖的⽆效等价类
95June ⽆效输⼊②
20036 ⽆效输⼊③
2001006 ⽆效输⼊④
198912 ⽆效输⼊⑥
200401 ⽆效输⼊⑦
200100 ⽆效输⼊⑨
200113 ⽆效输⼊⑩
五、NextDate 函数包含三个变量:month 、day 和year ,函数的输出为输⼊⽇期后⼀天的⽇期。

例如,输⼊为2006年3⽉7⽇,则函数的输出为2006年3⽉8⽇。

要求输⼊变量month 、day 和year 均为整数值,并且满⾜下列条件:
①1≤month≤12
②1≤day≤31
③1920≤year≤2050
1)有效等价类为:M1={⽉份:1≤⽉份≤12}
D1={⽇期:1≤⽇期≤31}
Y1={年:1812≤年≤2012}
2)若条件①~ ③中任何⼀个条件失效,则NextDate 函数都会产⽣⼀个输出,指明相应的变量超出取值范围,⽐如"month 的值不在1-12 范围当中" 。

显然还存在着⼤量的year 、month 、day 的⽆效组合,NextDate 函数将这些组合作统⼀的输出:" ⽆效输⼊⽇期" 。

其⽆效等价类为:
M2={⽉份:⽉份<1}
M3={⽉份:⽉份>12}
D2={⽇期:⽇期<1}
D3={⽇期:⽇期>31}
Y2={年:年<1812}
Y3={年:年>2012}
边界值分析法
⼀、根据下⾯给出的规格说明,利⽤边界值分析的⽅法,给出⾜够的测试⽤例。

“⼀个程序读⼊3个整数,把这三个数值看作⼀个三⾓形的3条边的长度值。

这个程序要打印出信息,说明这个三⾓形是不等边的、是等腰的、还是等边的。


在三⾓形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。

在此,我们将三⾓形每边边长的取范围值设值为[1, 100]
我们可以设三⾓形的3条边分别为A,B,C。

如果它们能够构成三⾓形的3条边,必须满⾜:
A>0,B>0,C>0,且A+B>C,B+C>A,A+C>B。

如果是等腰的,还要判断A=B,或B=C,或A=C。

如果是等边的,则需判断是否A=B,且B=C,且A=C。

⼆、现有⼀个学⽣标准化考试批阅试卷,产⽣成绩报告的程序。

其规格说明如下:程序的输⼊⽂件由⼀些有80个字符的记录组成,如下图所⽰,所有记录分为3组:
三、找零钱最佳组合
假设商店货品价格(R) 皆不⼤于100 元(且为整数),若顾客付款在100 元内(P) ,求找给顾客之最少货币个(张)数?(货币⾯值50 元(N50) ,10 元(N10) , 5 元(N5) , 1 元(N1) 四种)
1、分析输⼊的情形:
R > 100 0 < R < = 100 R <= 0 P > 100 R<= P <= 100 P < R
2、分析输出情形:
N50 = 1 4 >= N10 >= 1 N5 = 1 4 >=N1 >= 1
3.分析每种情况,以RR1,RR2, RR3 ,RR4表⽰计算要找50, 10, 5 ,1元货币数时之剩余⾦额。

R > 100 R <= 0 P > 100 P <= R
RR1 >= 50
RR2 >= 10
RR3 >= 5
RR4 >= 1
4.由上述之输⼊/输出条件组合出可能的情形。

R > 100
R <= 0
0 < R <= 100, P > 100
0 < R <= 100, P < R
0 < R <= 100, R <= P <= 100, RR = 50
0 < R <= 100, R <= P <= 100, RR = 49
0 < R <= 100, R <= P <= 100, RR = 10
0 < R <= 100, R <= P <= 100, RR = 9
0 < R <= 100, R <= P <= 100, RR = 5
0 < R <= 100, R <= P <= 100, RR = 4
0 < R <= 100, R <= P <= 100, RR = 1
0 < R <= 100, R <= P <= 100, RR = 0
5.为满⾜以上之各种情形,测试⽤例设计如下:
1. 货品价格= 101
2. 货品价格= 0
3.货品价格= -1
4. 货品价格= 100, 付款⾦额= 101
5. 货品价格= 100, 付款⾦额= 99
6. 货品价格= 50, 付款⾦额= 100
7. 货品价格= 51, 付款⾦额= 100
8. 货品价格= 90, 付款⾦额= 100
9. 货品价格= 91, 付款⾦额= 100
10. 货品价格= 95, 付款⾦额= 100
11. 货品价格= 96, 付款⾦额= 100
12. 货品价格= 99, 付款⾦额= 100
13. 货品价格= 100, 付款⾦额= 100
四、NextDate函数的边界值分析测试⽤例
在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050 。

判定表法
⼀、判定表法是⼀种分析多种输⼊条件的组合情况的⽅法,多种输⼊条件可以通过判定表来完整地进⾏排列组合,从⽽不出现遗漏。

⽐如以下⼀个判断表达式:
If ( (a>0) || (b>0) || (c>0&&c<100 ) )
{

}
这段程序中的判定条件可以⽤判定表如何表⽰?
根据判定表,我们可以输出测试⽤例如下:
⼆、问题要求:”……对功率⼤于50马⼒的机器、维修记录不全或已运⾏10年以上的机器,应给予优先的维修处理……”。

这⾥假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义。

请建⽴判定表。

①确定规则的个数:这⾥有3个条件,每个条件有两个取值,故应有2*2*2=8种规则。

②列出所有的条件茬和动作桩:
③填⼊条件项。

可从最后1⾏条件项开始,逐⾏向上填满。

如第三⾏是:Y N Y N Y N Y N,第⼆⾏是:Y Y N N Y Y N N等等。

④填⼊动作桩和动作顶。

这样便得到形如图的初始判定表。

化简,合并相似规则后得到图。

三、⽤决策表测试法测试以下程序:该程序有三个输⼊变量month、day、year(month、day 和year均为整数值,并且满⾜:1≤month≤12和1≤day≤31),分别作为输⼊⽇期的⽉份、⽇、年份,通过程序可以输出该输⼊⽇期在⽇历上隔⼀天的⽇期。

例如,输⼊为2004年11⽉29⽇,则该程序的输出为2000年12⽉1⽇。

1)分析各种输⼊情况,列出为输⼊变量month、day、year划分的有效等价类。

2)分析程序规格说明,结合以上等价类划分的情况给出问题规定的可能采取的操作(即列出所有的动作桩)。

3)根据(1)和(2),画出简化后的决策表。

案例分析如下:
month变量的有效等价类:
M1: {month=4,6,9,11}
M2: {month=1,3,5,7,8,10}
M3: {month=12}
M4: {month=2}
2)day变量的有效等价类:
D1:{1≤day≤26} D2: {day=27} D3: {day=28}
D4: {day=29} D5: {day=30} D6: {day=31}
3)year变量的有效等价类:
Y1: {year是闰年} Y2: {year不是闰年}
4)考虑各种有效的输⼊情况,程序中可能采取的操作有以下六种:
a1: day+2 a2: day=2 a3: day=1
a4: month+1 a5: month=1 a6: year+1
4. 判定表在功能测试中的应⽤
1)⼀些软件的功能需求可⽤判定表表达得⾮常清楚,在检验程序的功能时判定表也就成为⼀个不错的⼯具。

如果⼀个软件的规格说明指出:
I. 当条件1和条件2满⾜,并且条件3和条件4不满⾜,或者当条件1、3和条件4满⾜时,要执⾏操作1。

II. 在任⼀个条件都不满⾜时,要执⾏操作2。

III.在条件1不满⾜,⽽条件4被满⾜时,要执⾏操作3。

根据规格说明得到如下判定表
这⾥,判定表只给出了16种规则中的8种。

事实上,除这8条以外的⼀些规则是指当不能满⾜指定的条件,执⾏3种操作时,要执⾏1个默许的操作。

在没必要时,判定表通常可略去这些规则。

但如果⽤判定表来设计测试⽤例,就必须列出这些默许规则(如下表)。

规则5 规则6 规则7 规则8
条件1 - N Y Y
条件2 - Y Y N
条件3 Y N N N
条件4 N N Y -
x x x x
默许操作。

相关文档
最新文档