场景法
被考次数: 1次
被考频率: 低频率
答错率:    35%
知识难度:
考试要求: 掌握     
知识路径:  > 测试技术的分类  > 黑盒测试案例设计技术  > 测试用例设计方法


本知识点历年真题试卷分布
>> 试题列表    
 

 
       现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。
       提出这种测试思想的是Rational公司,并在RUP2000中文版中有详尽的解释和应用。
       用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。
       基本流和备选流
       如下图所示,图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的彩色表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4)。
       按照如下图中所示的每个经过用例的路径,可以确定以下不同的用例场景。
       
       基本流和备选流
       场景1:基本流;
       场景2:基本流、备选流1;
       场景3:基本流、备选流1、备选流2;
       场景4:基本流、备选流3;
       场景5:基本流、备选流3、备选流1;
       场景6:基本流、备选流3、备选流1、备选流2;
       场景7:基本流、备选流4;
       场景8:基本流、备选流3、备选流4。
       注:为方便起见,场景5、6和8只考虑了备选流3循环执行一次的情况。
       需要说明的是,为了能清晰地说明场景,我们所举的例子都非常简单,在实际应用中,测试用例很少如此简单。
       ATM例子
          例子描述
          如下图所示是ATM例子的流程示意图。
          
          ATM流程示意图
          如下表所示,包含了如上图中所示提款用例的基本流和某些备用流。
          
          用例流
          
          场景设计
          如下表所示是生成的场景。
          
          场景设计
          注:为方便起见,备选流3和6(场景3和7)内的循环以及循环组合未纳入表中。
          用例设计
          对于这7个场景中的每一个场景都需要确定测试用例,一般采用矩阵或决策表来确定和管理测试用例。如下表所示是一种通用格式,其中行代表各个测试用例,列代表测试用例的信息。本例中的测试用例包含测试用例ID、场景/条件、测试用例中涉及的所有数据元素和预期结果等项目。首先确定执行用例场景所需的数据元素,然后构建矩阵,最后要确定包含执行场景所需的适当条件的测试用例。在下面的矩阵中,V表示这个条件必须是有效的才可执行基本流,I表示这种条件下将激活所需备选流,n/a表示这个条件不适用于测试用例。
          
          测试用例表
          在上面的矩阵中,六个测试用例执行了四个场景。对于基本流,上述测试用例CW1被称为正面测试用例。它一直沿着用例的基本流路径执行,未发生任何偏差。基本流的全面测试必须包括负面测试用例,以确保只有在符合条件的情况下才执行基本流。这些负面测试用例由CW2~CW6表示。虽然CW2~CW6相对于基本流而言都是负面测试用例,但它们相对于备选流2~4而言是正面测试用例。而且对于这些备选流中的每一个而言,至少存在一个负面测试用例,就是CW1-基本流。
          每个场景只有一个正面测试用例和负面测试用例是不充分的,场景4正是这样的一个示例。要全面地测试场景4-PIN有误,至少需要三个正面测试用例,以激活场景4:
          ①输入了错误的PIN,但仍存在输入机会,此备选流重新加入基本流中的步骤3-输入PIN。
          ②输入了错误的PIN,而且不再有输入机会,则此备选流将保留银行卡并终止用例。
          ③最后一次输入时输入了“正确”的PIN。备选流在步骤5-输入金额处重新加入基本流。
          注意,在上面的矩阵中,无需为条件输入任何实际的值。以这种方式创建测试用例矩阵的一个优点在于容易看到测试的是什么条件。由于只需要查看V和I,这种方式还易于判断是否已经确定了充足的测试用例。从上表中可发现存在几个无效的条件I,这表明测试用例还不完全,如场景6-不存在的账户/账户类型有误和场景7-账户余额不足就缺少测试用例。
          数据设计
          一旦确定了所有的测试用例,则应对这些用例进行复审和验证以确保其准确且适度,并取消多余或等效的测试用例。
          
          测试数据表
          测试用例一经认可,就可以确定实际数据值(在测试用例实施矩阵中)并且设定测试数据。
          以上测试用例只是在本次迭代中需要用来验证提款用例的一部分测试用例。需要的其他测试用例包括以下内容。
          场景6——账户不存在/账户类型有误:未找到账户或账户不可用;
          场景6——账户不存在/账户类型有误:禁止从该账户中提款;
          场景7——账户余额不足:请求的金额超出账面金额。
          在将来的迭代中,当实施其他事件流时,在下列情况下将需要测试用例:
          ①无效卡(所持卡为挂失卡、被盗卡、非承兑银行发卡、磁条损坏等);
          ②无法读卡(读卡机堵塞、脱机或出现故障);
          ③账户已消户、冻结或由于其他方面原因而无法使用;
          ④ATM内的现金不足或不能提供所请求的金额(与CW3不同,在CW3中只是一种币值不足,而不是所有币值都不足);
          ⑤无法联系银行系统以获得认可;
          ⑥银行网络离线或交易过程中断电。
          结论:所有从事软件测试和即将从事软件测试的人大都是从黑盒测试做起的,每种类型的软件有各自的特点,每种测试用例设计的方法也有各自的特点,针对不同软件如何利用这些黑盒方法是非常重要的,它能极大地提高测试效率和测试覆盖度,认真掌握这些方法的原理,有效提高测试水平,积累更多的测试经验,这是测试人员最宝贵的财富。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有