黑盒测试方法之场景法和测试用例设计方法的综合选择策略

1. 概述

在测试用例的设计方法中,等价类、边界值及判定表等测试用例设计方法只能够解决针对单点功能的测试用例设计,而无法针对涉及业务流程的软件系统进行测试。这时候就要用到场景法来设计测试用例,也就是说场景法主要是针对业务流程来设计测试用例的。
现在的软件几乎都是通过事件触发来控制流程的,事件触发时的场景便形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流。 这原本是一种软件设计的思想,不过依然可以用来指导软件测试用例的设计,可以生动的描述事件触发时的情景,有利于测试用例的设计和对测试用例的理解和执行。
这种设计思想是由Rational公司提出的,并且在RUP2000中文版中有详细的描述。

2. 事件流的分类
  1. 基本流:表示输入经过每一个正确的流程运转,最终到达预期结果。
  2. 备选流:表示输入经过某些流程时产生了异常情况,但经过纠正后依然到达了预期结果。
  3. 异常流:表示输入经过某些流程时产生了异常情况,导致了异常终止的情况,无法到达预期结果。
3. 场景分析设计法的基本框架图

在这里插入图片描述

4. 正面测试用例和负面测试用例
  1. 正面测试用例:可以沿着指定路径执行的测试用例被称为正面测试用例。例如,对于基本流来讲,如果一个用例可以沿着基本流一直往下执行,中途不发生任何偏差,那么该用例就被称为基本流的正面测试用例。
  2. 负面测试用例:不能沿着指定路径执行的测试用例被称为负面测试用例。例如,对于基本流来讲,如果一个测试用例不能沿着基本流执行,或者虽然沿着基本流完成了执行过程,但途中发生的偏差,那么这个测试用例就被称为基本流的负面测试用例。

总结:由上面的叙述可以得到,正面测试用例和负面测试用例时相对而言的。

5. 使用场景法设计测试用例的步骤和注意事项
>步骤
  1. 分析需求规格说明中的业务流程、事件,然后绘制成类似于第3部分的场景流程图。

  2. 分析场景流程图,找出其中所有的事件流的组合。 以第3部分的场景流程图来说,其可以组成的事件流的组合有以下几种:
    在这里插入图片描述

  3. 设计测试用例,最终覆盖2中每个事件流的组合,即覆盖每个场景。

>注意事项

确定场景时需关注流程的入口,重复的节点不可以作为新的场景,比如基本流->备选流1->备选流2->基本流基本流->备选流2->备选流1->基本流实际上是同一个流程,则不可算作新的场景流程。
上述的步骤描述中,确定了8个场景,至少构成了8条测试用例,不过是实际使用时,还需要针对每个场景或者说每个节点的成立条件设计测试用例,这时又会用到等价类划分和边界值分析的设计方法进一步细化测试规则及路径,从而提取测试用例。与状态迁移图(功能图)测试用例设计方法类似,场景分析法无法验证单个功能的正确性。

6. 实例

在某嵌入式系统中,将待发送的数据打包成符合CAN协议的帧格式后,便可写入发送缓冲区,并自动发送。该程序的流程如下:

  1. 进入发送子程序。
  2. 系统判断是否有空闲发送缓冲区,如果没有则返回,启动发送失败消息。
  3. 如果有缓冲区,则将数据包写入空闲发送缓冲区。
  4. 系统判断是否写入成功,如果不成功则返回,启动发送失败消息。
  5. 如果写入成功,则启动发送命令。
  6. 返回启动发送成功消息。

分析上述的描述,可以得到该程序共有…6个流程节点,据此结合描述可以绘制出如下的场景流程图:
在这里插入图片描述
根据上面的场景流程图可以确定出以下测试场景:
在这里插入图片描述
最后,根据上面表中的场景,可以设计测试用例来覆盖所有的场景,也就是说,使用场景法,本例可以生成3条测试用例,分别用于覆盖场景1到3,具体如下:
在这里插入图片描述
针对本问题,使用场景法设计出的测试用例最终如上图所示,不过在本例中由于并未给出具体的相关数据(比如缓冲区的大小等),所以关于数据部分均以文字描述代替。
在此之后,可以在用等价类等方法再在此基础之上补充一些用例。

7. 测试用例的综合选择策略

测试用例的设计方法不是单独存在的,具体到每个测试项目中都会用到很多的测试用例设计方法,每种类型的软件都有各自的特点,每种测试用例设计方法也有各自的特点,针对不同的软件,如何去组合使用这些测试用例设计方法是非常重要的。在实际项目中,都是要综合使用各种测试用例的设计方法来设计测试用例才可以有效地提高测试效率和测试覆盖度。
各种测试用例设计方法的组合的策略参考如下:

  1. 首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限的测试变成有限测试,以减少测试工作量提高测试效率。
  2. 然后使用边界值分析法针对每个等价类的边界设计测试用例。
  3. 在使用边界值和等价类划分后,可以再按照经验使用错误推测法补充一些测试用例。
  4. 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到标准,则再补充一定的测试用例以达到覆盖要求。
  5. 如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图和判定表驱动法设计相关的测试用例。
  6. 对于参数配置类的软件,要用正交实验法选择较少的组合方式达到最佳的效果。
  7. 除了上面这些以外,还可以通过不同时期条件的有效性设计不同的测试数据,即选用功能图来补充设计测试用例。
  8. 对于业务流程清晰的系统,可以利用场景法贯穿整个测试案例过程,在案例中综合使用各种测试方法。
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
测试用例设计方法场景和功能都是常用的方法,用于设计测试用例场景是指以场景为基础,根据用户的使用场景和操作流程设计测试用例场景注重测试覆盖率,能够覆盖产品的不同使用情况,包括各种正常和异常场景。通过考虑用户交互、输入有效性、错误处理等多个方面,设计出全面的测试用例。例如,对于一个购物网站的注册功能,场景可以设计以下测试用例:正常场景下,用户输入正确的邮箱、密码,能够功注册;异常场景下,用户输入已经注册过的邮箱、密码过于简单等,应该提示相应的错误信息。 功能是指以功能需求为基础,根据系统的功能模块和接口,设计测试用例。功能注重测试的功能覆盖,能够确保产品的每个功能都得到验证。通过考虑不同的输入、输出和功能模块之间的关系,设计出全面的测试用例。例如,对于一个计算器应用的加功能,功能可以设计以下测试用例:输入两个整数,返回它们的和;输入两个小数,返回它们的和;输入一个正整数和一个负整数,返回它们的和。 综上所述,场景和功能都有各自的优势和适用场景场景适用于强调用户体验和操作流程的系统,功能适用于强调功能模块的系统。在实际测试工作,可以根据具体的需求和测试目标,选择合适的方法设计测试用例。同时,也可以结合两种方法综合考虑系统的功能和用户的使用场景设计更全面和有效的测试用例

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值