视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
软件测试用例分析 习题完美整合版
2025-10-08 02:20:22 责编:小OO
文档
场景分析法

一、以答题业务为例:

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:成功购物

VVV成功购物
2场景2:账号不存在

1n/an/a提示账号不存在
3场景3:账号密码错误(账号正确,密码错误)

V1n/a提示账号密码错误,返回基本流步骤3

4场景4:用户账号余额不足

VV1提示用户账号余额不足,请充值
5场景5:用户账号没钱

VV1提示用户账号没有钱,请充值
第四步:设计测试数据

测试用例ID

场景/条件

账号密码用户账号余额预期结果
1场景1:成功购物

Test123456800成功购物,账号余额减少100元

2场景2:账号不存在

aan/an/a提示账号不存在
3场景3:账号密码错误(账号正确,密码错误)

Test111111n/a提示账号密码错误,返回基本流步骤3

4场景4:用户账号余额不足

Test12345650提示用户账号余额不足,请充值
5场景5:用户账号没钱

Test1234560提示用户账号没有钱,请充值
等价类划分法

1、计算保费费率的程序

(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   无效输入          ④

    1912     无效输入          ⑥

    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。

2、现有一个学生标准化考试批阅试卷,产生成绩报告的程序。其规格说明如下:程序的输入文件由一些有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=100?是3个排他性条件,即其中同时只有一个条件会满足,也就是在同一列中只能有一个为Y,其他两个均为N。

根据判定表,我们可以输出测试用例如下:

2、问题要求:”……对功率大于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种。事实上,除这以外的一些规则是指当不能满足指定的条件,执行3种操作时,要执行1个默许的操作。在没必要时,判定表通常可略去这些规则。但如果用判定表来设计测试用例,就必须列出这些默许规则(如下表)。

 规则5

规则6

规则7

规则8

条件1

-NYY
条件2

-YYN
条件3

YNNN
条件4

NNY-
默许操作xxxx
因果图法

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列作为确定测试用例的依据。下载本文

显示全文
专题