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

合集下载
  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。

等价类划分法
一、计算保费费率的程序
(1)分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。

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

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

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

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

三、根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。

一个程序读入3个整数,把这三个数值看作一个三角形的3条边的长度值。

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

四、设有一个档案管理系统,要求用户输入以年月表示的日期。

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

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

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 ) )
{

}
这段程序中的判定条件可以用判定表如何表示?
表中的c<=0?0<c<100?c>=100?是3个排他性条件,即其中同时只有一个条件会满足,也就是在同一列中只能有一个为Y,其他两个均为N。

根据判定表,我们可以输出测试用例如下:
二、问题要求:”……对功率大于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
默许操

因果图法
A.输入条件的约束有以下4类:
①E约束(异):a和b中至多有一个可能为1,即a和b不能同时为1。

②I约束(或):a、b和c中至少有一个必须是1,即a、b 和c不能同时为0。

③O约束(唯一);a和b必须有一个,且仅有1个为1。

④R约束(要求):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) 其对应的因果图如下:
11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。

3)根据因果图建立判定表。

表中8种情况的左面两列情况中,原因①和原因②同时为1,这是不可能出现的,故应排除这两种情况。

表的最下一栏给出了6种情况的测试用例,这是我们所需要的数据。

二、有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。

其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。

若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。

1) 分析这一段说明,列出原因和结果
原因:1.售货机有零钱找 2.投入1元硬币3.投入5角硬币4.押下橙汁按钮5.押下啤酒按钮结果:
21.售货机〖零钱找完〗灯亮
22.退还1元硬币
23.退还5角硬币
24.送出橙汁饮料
25.送出啤酒饮料
2)画出因果图,如图所示。

所有原因结点列在左边,所有结果结点列在右边。

建立中间结点,表示处理的中间状态。

中间结点:
11. 投入1元硬币且押下饮料按钮
12. 押下〖橙汁〗或〖啤酒〗的按钮
13. 应当找5角零钱并且售货机有零钱找
14. 钱已付清
3)转换成判定表:
4) 在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。

第16列与第32列因什么动作也没做,也删去。

最后可根据剩下的16列作为确定测试用例的依据。


辈子时光在匆忙中流逝,谁都无法挽留。

多少人前半生忙忙碌碌,奔波追逐,后半生回望过去,难免感叹一生的碌碌无为,恨时光短暂,荒废了最好的光阴。

人过中年,不停跟时间妥协,之所以不争抢,处世淡然,完全是经过世故的淬炼,达到心智的成熟。

现实生活中,不乏完美主义者,终日在不食人间烟火的意境中活着,虚拟不切合实际。

如此,唯有活在当下,才是真正的人生笺言。

常常想,不想活在过去的人,是经历了太多的大起大落,不想被束缚在心灵蜗居里的人,是失去的太多,一番大彻大悟后,对视的眼神定会愈发清澈,坦然笑对人生的雨雪冰霜。

对于随波逐流的人们,难免要被世俗困扰,不问过去,不畏将来又将是怎么样的一种纠葛,无从知晓。

不得不说,人是活在矛盾中的。

既要简单,又难淡然,挣扎在名利世俗中,一切身不由己,又有那样的生活是我们自己想要的呢?
人前,你笑脸相迎,带着伪装的面具,不敢轻易得罪人;人后,黯然伤怀,总感叹命运的不公平,人生的不如意;常常仰望别人的幸福,而忽视了自己,却不知你与他所想要的幸福,都只得一二,十之八九只有在希冀中追求,不是吗?
人活一辈子,心怀梦想,苍凉追梦,难能可贵的是执着向前,义无反顾,最惧怕瞻前顾后,退缩不前。

一生短暂如光影交错,有几个人能放下牵绊,有几个人能不难为自己,活的精彩呢!
我们的一生,是匆忙的行走,谁的人生,不是时刻在被命运捉弄中前行。

我想,我是无法和命运抗衡的,却又时刻想做真实的自己。

眼下的生活是一面镜子,对照着卑微的自己,心有万千光芒,无法放弃的却总是太多太多。

中年,人生的分水岭,不再有小女孩的浪漫情怀,撒娇卖萌,穿着也越发简单,舒适即可。

年轻时可以穿紧身裙,牛仔裤,甚至小一码的高跟鞋,不惜磨破了脚板,夹痛了脚趾,依旧笑魇如花,人前卖弄。

年少时,青春做砝码,别人的一句赞美能心头飘飘然,走在马路上,陌生男子的回头率,成了青春的资本,忘乎所以。

年龄越大,对身边的一切似乎没了热情,争吵,攀比,打扮,都没了兴趣。

有人说,女人要爱自己,打扮的漂漂亮亮的才行,而我却恰恰相反,正如有一天涂了口红出门,儿子吓了一跳,一句太庸俗,再昂贵品牌的口红你都不适合,让我哑然失笑。

原来,他宁愿喜欢素面朝天的妈妈,也不想要矫揉造作的中年妇女,我必须保持最初的简洁,亦或简单。

居家女人虽平庸,却总想活出真我。

不喜欢的东西,学会舍弃,生活趋于安静。

每天打理家务,照顾子女,空闲的时间看看书,散散步,陪婆婆去买菜,少一些功利心,多一些平常心,生活便达到了想要的简单。

人过中年天过午,流逝的时间不会等我的。

不想为难自己了,几十年光阴里,不停做着事与愿违的选择,极力说服自己,多替别人想想,多顾及别人的感受,却忽视了委屈的自己。

我承认,给自己负担,就是难为自己。

不愿意放下,就是心态使然。

其实,你大可不必为了别人改变自己,为自己活着,才是真理。

从今天起,不愿意迎合的人,选择放手;卑鄙下流,虚情假意的损友,拒绝交往,只要随心随意,什么都不是难题。

要明白,他们走近你的世界,只想利用你,却从不顾及你的感受,既保持若即若离,又想无偿索求,时刻为难着你,美其名曰这是一份难得的缘。

相关文档
最新文档