一概念


现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行

二应用


  基本流和备选流:如下图所示,图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4)

三实例

  1. 例子描述:
    下图所示是ATM例子的流程示意图

  2. 场景设计:下表所示是生成的场景

    场景1——成功提款

    基本流

    场景2——ATM内没有现金

    基本流

    备选流2

    场景3——ATM内现金不足

    基本流

    备选流3

    场景4——PIN有误(还有输入机会)

    基本流

    备选流4

    场景5——PIN有误(不再有输入机会)

    基本流

    备选流4

    场景6——账户不存在/账户类型有误

    基本流

    备选流5

    场景7——账户余额不足

    基本流

    备选流6

    注:为方便起见,备选流3和6(场景3和7)内的循环以及循环组合未纳入上表

  3. 用例设计

    对于这7个场景中的每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。下面显示了一种通用格式,其中各行代表各个测试用例,而各列则代表测试用例的信息。本示例中,对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果

    TCID

    场景/条件

    PIN

    账号

    输入(或选择)的金额

    账面

    金额

    ATM内的金额

    预期结果

    CW1

    场景1:成功提款

    V

    V

    V

    V

    V

    成功提款

    CW2

    场景2:ATM内没有现金

    V

    V

    V

    V

    I

    提款选项不可用,用例结束

    CW3

    场景3:ATM内现金不足

    V

    V

    V

    V

    I

    警告消息,返回基本流步骤6,输入金额

    CW4

    场景4:PIN有误(还有不止一次输入机会)

    I

    V

    n/a

    V

    V

    警告消息,返回基本流步骤 4,输入 PIN

    CW5

    场景4:PIN有误(还有一次输入机会)

    I

    V

    n/a

    V

    V

    警告消息,返回基本流步骤 4,输入 PIN

    CW6

    场景4:PIN有误(不再有输入机会)

    I

    V

    n/a

    V

    V

    警告消息,卡予保留,用例结束

  4. 数据设计

    一旦确定了所有的测试用例,则应对这些用例进行复审和验证以确保其准确且适度,并取消多余或等效的测试用例。

    测试用例一经认可,就可以确定实际数据值(在测试用例实施矩阵中)并且设定测试数据

    TCID

    场景/条件

    PIN

    账号

    输入(或选择)的金额(元)

    账面
    金额(元)

    ATM内的金额(元)

    预期结果

    CW1

    场景1:成功提款

    4987

    809-498

    50.00

    500.00

    2 000

    成功提款。账户余额被更新为450.00

    CW2

    场景2:ATM内没有现金

    4987

    809-498

    100.00

    500.00

    0.00

    提款选项不可用,用例结束

    CW3

    场景3:ATM内现金不足

    4987

    809-498

    100.00

    500.00

    70.00

    警告消息,返回基本流步骤6,输入金额

    CW4

    场景4:PIN有误(还有不止一次输入机会)

    4978

    809-498

    n/a

    500.00

    2 000

    警告消息,返回基本流步骤4,输入PIN

    CW5

    场景4:PIN有误(还有一次输入机会)

    4978

    809-498

    n/a

    500.00

    2 000

    警告消息,返回基本流步骤4,输入PIN

    CW6

    场景4:PIN有误(不再有输入机会)

    4978

    809-498

    n/a

    500.00

    2 000

    警告消息,卡予保留,用例结束

黑盒测试用例设计方法&理论结合实际 -> 场景法的更多相关文章

  1. 黑盒测试用例设计方法&理论结合实际 -> 因果图法

    一. 概念 因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况 二. 因果图法的应用 等价类划分法和边界值分析方法都是着重考虑输入条件,但没 ...

  2. 黑盒测试用例设计方法&理论结合实际 -> 正交试验法

    一. 概念 依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法.类似的方法有:聚类分析方法,因子方法方法等. 二. ...

  3. 黑盒测试用例设计方法&理论结合实际 -> 边界值分析法

    一. 概念 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法.通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界. 二. 边界值分析法的应用 根据大量的测 ...

  4. 黑盒测试用例设计方法&理论结合实际 -> 错误推断法

    一 概念 基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法. 二 错误推断法的应用  基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试 ...

  5. 黑盒测试用例设计方法&理论结合实际 -> 等价类划分

    一. 概念 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例.每一类的代表性数据在测试中的作用等价于这一类中的其他值. 二. 等价类划分的应用 等价类 ...

  6. 黑盒测试用例设计方法&理论结合实际 -> 判定表驱动法

    一. 概念 判定表是分析和表达多逻辑条件下执行不同操作的情况的工具. 二. 判定表驱动法的应用 判定表的优点: a. 能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏.因此,利用判定表能 ...

  7. 黑盒测试用例设计方法&理论联系实际-> 功能图法

    一. 概念 功能图由状态迁移图和布尔函数组成.状态迁移图用状态和迁移来描述.一个状态指出数据输入的位置(或时间),而迁移则指明状态的改变.同时要依靠判定表或因果图表示的逻辑功能.例,一个简化的自动出纳 ...

  8. [liu yanling]黑盒测试用例设计方法

    1. 概述 黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法等. 2. 等价类划分法 2.1.          概念 等价类划分法是把 ...

  9. 黑盒测试用例设计——PICT

    一.简单用法   在PICT安装目录下新建一个txt文本.把参数填入txt文本中.[内容包括(注意格式<ParamName> : <Value1>, <Value2> ...

随机推荐

  1. 1187: [HNOI2007]神奇游乐园 - BZOJ

    Description 经历了一段艰辛的旅程后,主人公小P乘坐飞艇返回.在返回的途中,小P发现在漫无边际的沙漠中,有一块狭长的绿地特别显眼.往下仔细一看,才发现这是一个游乐场,专为旅途中疲惫的人设计. ...

  2. CodeChef November Challenge 2014

    重点回忆下我觉得比较有意义的题目吧.水题就只贴代码了. Distinct Characters Subsequence 水. 代码: #include <cstdio> #include ...

  3. DVB系统中PCR的生成和PCR校正

    http://blog.csdn.net/chenliangming/article/details/3616720 引自<广播电视信息>2008年1月 从数字电视前端系统功能上来讲,传统 ...

  4. mycat读写分离

    版本:mycat1.0  只需要读写分离的功能,分库分表的都不需要. 涉及到的配置文件:  1.conf/server.xml  主要配置的是mycat的用户名和密码,mycat的用户名和密码和mys ...

  5. SPRING IN ACTION 第4版笔记-第八章Advanced Spring MVC-005-Pizza例子的订单流程()

    一. 1.订单流程定义文件order-flow.xml <?xml version="1.0" encoding="UTF-8"?> <flo ...

  6. Android之AndroidManifest.xml文件解析

    转自:Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文 ...

  7. mac terminal终端ls命令参数详解

    原文:https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/ls.1.html -a ...

  8. poj 3253 Fence Repair (哈夫曼树 优先队列)

    题目:http://poj.org/problem?id=3253 没用long long wrong 了一次 #include <iostream> #include<cstdio ...

  9. bzoj1453

    这是一道好题,按行建线段树,每个点维护上下边界的连通性,详细见代码注释 网上写法不一,自认为比较简单,就放出来相出来献丑吧 ..,..] of longint; //u[]上边界,d[]下边界 s,f ...

  10. [HDU 4828] Grids

    Grids Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Subm ...