[转载] 场景法设计测试用例

上一篇 / 下一篇  2011-03-08 10:56:15 / 个人分类:功能测试

原文地址:http://blog.csdn.net/xuhongge/archive/2008/08/05/2770569.aspx

场景法设计测试用例收藏

        在面向对象的软件开发中,事件触发机制是编程中经常遇到的。

 

(一)场景法原理

   

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

 

   在测试一个软件的时候,在场景法中,测试流程是软件功能按照正确的事件流实现的一条正确流程,那么我们把这个成为该软件的基本流;而凡是出现故障或缺陷的 过程,就用备选流加以标注,这样的话,备选流就可以是从基本流来的,或是由备选流中引出的。所以在进行图示的时候,就会发现每个事件流的颜色是不同的。

 

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

                      

 

        在这个图中,有一个基本流和四个备选流。

       

        每个经过用例的可能路径,可以确定不同的用例场景。从基本流开始,再将基本流和备选流结合起来,可以确定以下用例场景:

 

场景 1 基本流

场景 2 基本流 备选流 1

场景 3 基本流 备选流 1 备选流 2

场景 4 基本流 备选流 3

场景 5 基本流 备选流 3 备选流 1

场景 6 基本流 备选流 3 备选流 1 备选流 2

场景 7 基本流 备选流 4

场景 8 基本流 备选流 3 备选流 4

 

下面是场景法的基本设计步骤:

    • 根据说明,描述出程序的基本流及各项备选流
    • 根据基本流和各项备选流生成不同的场景
    • 对每一个场景生成相应的测试用例
    • 对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值

(二)场景法例子

 

1、在线购物系统

 

       我们都在当当网或china-pub华章网上书店都订购过书籍,整个订购过程为:用户登录到网站后,进行书籍的选择,当选好自己心仪的书籍后进行订购,这 时把所需图书放进购物车,等进行结帐的时候,用户需要登录自己注册的帐号,登录成功后,进行结帐并生成订单,整个购物过程结束。

 

        那么我们通过以上的描述,从中确定哪是基本流,哪些是备选流:

 

基本流

用户登录到网站,书籍的选择,进行订购,把所需图书放进购物车,等进行结帐的时候,登录自己的帐号,登录成功后,生成订单

备选流1

帐号不存在

备选流2

帐号错误
备选流3密码错误
备选流4无选购书籍
备选流x退出系统

    根据基本流和备选流来确定场景:

 

场景1-购物成功基本流
场景2-帐号不存在基本流备选流1
场景3-帐号错误基本流备选流2
场景4-密码错误基本流备选流3
场景5-无选购书籍基本流备选流4

    

       我们来设计用例

    

    对于每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。

   

    下面显示了一种通用格式,其中各行代表各个测试用例,而各列则代表测试用例的信息。

本例中,对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果。

   

    通过从确定执行用例场景所需的数据元素入手构建矩阵。然后,对于每个场景,至少要确定包含执行场景所需的适当条件的测试用例。例如,在下面的矩阵中,V(有效)用于表明这个条件必须是VALID(有效的)才可执行基本流,而I(无效)用于表明这种条件下将激活所需备选流。下表中使用的“n/a”(不适用)表明这个条件不适用于测试用例。

 

测试用例ID场景/条件帐号密码选购书籍预期结果
1场景1:购物成功VVV成功购物
2场景2:帐号不存在In/an/a提示帐号不存在
3场景3:帐号错误IVn/a提示帐号错误,返回基本流步骤2
4场景4:密码错误VIn/a提示密码错误,返回基本流步骤3
5场景5:无选购书籍VVI提示选购书籍,返回基本流步骤5

   我们看到以上表中,是把每个场景成立的条件进行了分析,基本上已经明确了测试用例的数量,现在只要把真实数据填充上,那么整个测试用例就完成了。

 

测试用例ID场景/条件帐号密码选购书籍预期结果
1场景1:购物成功xu123456

《软件测试艺术》与

《软件测试自动化》

成功购物
2场景2:帐号不存在zhangn/an/a提示帐号不存在
3场景3:帐号错误zhou123456n/a提示帐号错误,返回基本流步骤2
4场景4:密码错误xu123$%^n/a提示密码错误,返回基本流步骤3
5场景5:无选购书籍xu123456提示选购书籍,返回基本流步骤5

 

2、以下是网上的例子,过程都一样,可以参考。

    

    有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时需要使用帐号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。

 

第一步我们来确定基本流和备选流:

基本流

登录在线购物网站,选择物品,登录帐号,付钱交易,生成订购单

备选流1

帐号不存在

备选流2

帐号或密码错误

备选流3

用户帐号余额不足

备选流4

用户帐号没有钱

备选流x

用户退出系统

第二步我们根据基本流和备选流来确定场景:

场景1-成功购物

基本流

 

场景2-帐号不存在

基本流

备选流1

场景3-帐号或密码错误

基本流

备选流2

场景4-用户帐号余额不足

基本流

备选流3

场景5-用户帐号没有钱

基本流

备选流4

第三步我们来设计用例

对于每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。

下面显示了一种通用格式,其中各行代表各个测试用例,而各列则代表测试用例的信息。

本例中,对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果。

通过从确定执行用例场景所需的数据元素入手构建矩阵。然后,对于每个场景,至少要确定包含执行场景所需的适当条件的测试用例。例如,在下面的矩阵中,V(有效)用于表明这个条件必须是VALID(有效的)才可执行基本流,而I(无效)用于表明这种条件下将激活所需备选流。下表中使用的“n/a”(不适用)表明这个条件不适用于测试用例。

测试用例ID

场景/条件

帐号

密码

用户帐号余额

预期结果

1

场景1:成功购物

V

V

V

成功购物

2

场景2:帐号不存在

I

n/a

n/a

提示帐号不存在

3

场景3:帐号或密码错误(帐号正确,密码错误)

V

I

n/a

提示帐号或密码错误,返回基本流步骤3

4

场景3:帐号或密码错误(帐号错误,密码正确)

I

V

n/a

提示帐号或密码错误,返回基本流步骤3

5

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

V

V

I

提示帐号余额不足请充值

6

场景5:用户帐号没有钱

V

V

I

提示帐号余额请充值

第四步我们来设计数据,把数据填入上面的用例表中。

测试用例ID

场景/条件

帐号

密码

用户帐号余额

预期结果

1

场景1:成功购物

Sue

1s2

200

成功购物,帐号余额减少200

2

场景2:帐号不存在

Jim

n/a

n/a

提示帐号不存在

3

场景3:帐号或密码错误(帐号正确,密码错误)

Sun

1234zxc

n/a

提示帐号或密码错误,返回基本流步骤3

4

场景3:帐号或密码错误(帐号错误,密码正确)

Suns

123456

n/a

提示帐号或密码错误,返回基本流步骤3

5

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

TAG:

 

评分:0

我来说两句

日历

« 2022-01-19  
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

数据统计

  • 访问量: 49229
  • 日志数: 44
  • 文件数: 40
  • 建立时间: 2010-12-06
  • 更新时间: 2011-05-31

RSS订阅