软件测试用例分析习题完美整合版汇总.docx
《软件测试用例分析习题完美整合版汇总.docx》由会员分享,可在线阅读,更多相关《软件测试用例分析习题完美整合版汇总.docx(23页珍藏版)》请在冰豆网上搜索。
![软件测试用例分析习题完美整合版汇总.docx](https://file1.bdocx.com/fileroot1/2022-12/12/b7b614e8-2cfd-41ad-acfc-b9f65b7e19de/b7b614e8-2cfd-41ad-acfc-b9f65b7e19de1.gif)
软件测试用例分析习题完美整合版汇总
场景分析法
一、以答题业务为例:
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
123456
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组:
12/22
三、找零钱最佳组合
假
设商店货品价格
(R)
皆不大
于
100
元(
且
为
整数),若
顾
客
付
款
在
100
元内(P),求
找给
顾客之
最
少
货币个(
张)
数?
(货
币
面
值
50
元
(N50
),10元(N10
),5
元(N5)
1元
(N1)
四
种
)
1、
分
析输入的情
形:
R>100
0R<=0
P>100
R<
=P
<=100
P
2、
分
析输出情形
:
N5
0=1
4>=N10>=1
N5=1
4>=N1
>=1
3.分析
每种情况,以
RR1,RR2,RR3,
RR4
表
示计
算
要
找50,10,5,1
元
货
币
数
时之剩余金额。
R>100R<=0P>100P<=R
RR1>=50
RR2>=10
RR3>=5
RR4>=1
4.由上述之输入/输出条件组合出可能的情形。
R>100
R<=0
0100
0000000005.为满足以上之各种情形,测试用例设计如下
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))
{}
这段程序中的判定条件可以用判定表如何表示?
表中的c<=0?
0c>=100?
是3个排他性条件,即其中同时只有一个条件会满足,也就是在同一列中只能有一个为Y,其他两个均为N。
根据判定表,我们可以输出测试用例如下:
二、问题要求:
”⋯⋯对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理⋯⋯”。
这里假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义。
请建立判定表。
1确定规则的个数:
这里有3个条件,每个条件有两个取值,故应有2*2*2=8种规则。
②列出所有的条件茬和动作桩:
③填入条件项。
可从最后1行条件项开始,逐行向上填满。
如第三行是:
YNYNYNYN,第二行是:
YYNNYYNN等等。
④填入动作桩和动作顶。
这样便得到形如图的初始判定表。
化简,合并相似规则后得到图。
三、用决策表测试法测试以下程序:
该程序有三个输入变量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}
D6:
{day=31}
Y2:
{year不是闰年}
D4:
{day=29}D5:
{day=30}
3)year变量的有效等价类:
Y1:
{year是闰年}
4)考虑各种有效的输入情况,程序中可能采取的操作有以下六种:
在检验程序的功能时判定表也就成为
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
因果图法
A.输入条件的约束有以下4类:
①E约束(异):
a和b中至多有一个可能为1,即a和b不能同时为1。
2I约束(或):
a、b和c中至少有一个必须是1,即a、b和c不能同时为0。
3O约束(唯一);a和b必须有一个,且仅有1个为1。
4R约束(要求):
a是1时,b必须是1,即不可能a是1时b是0。
B.输出条件约束类型
输出条件的约束只有M约束(强制):
若结果a是1,则结果b强制为0。
一、某软件规格说明书包含这样的要求:
第一列字符必须是A或B,第二列字符必须是一
个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
解答:
1)根据题意,原因和结果如下:
原因:
1——第一列字符是A;
2——第一列字符是B;
3——第二列字符是一数字。
结果:
21——修改文件;
22——给出信息L;
23——给出信息M。
2)其对应的因果图如下:
E约束。
3)根据因果图建立判定表。
表中8种情况的左面两列情况中,原因①和原因②同时为1,这是不可能出现的,故应
排除这两种情况。
表的最下一栏给出了6种情况的测试用例,