功能测试方法-测试架构师修炼之道(5)

发表于:2016-9-23 09:02

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:刘琛梅    来源:51Testing软件测试网原创

分享:
  4.多运行顺序执行法
  如果大家注意分析一下产品在功能方面的缺陷,就会发现一些问题在单运行的情况下并不会发生,而是在将多个单运行组合起来的时候才会发生。例如,可能会出现用户只打电话,打电话功能正常;只接收短信,接收短信的功能也正常;但是如果正在打电话的时候,接收到了一条短信息,这时打电话(或者接收短信)的功能就会出现问题。所以在进行功能测试的时候,我们还需要测试多运行情况下的功能正确性。
  按照多个单运行的组合方式的不同,多运行下的测试方法又可以分为多运行顺序执行法和多运行相互作用法。我们先来说明多运行顺序执行法是怎样工作的。
  多运行顺序执行法是指在功能测试时按照一定的顺序来进行多个运行操作的测试方法,如图4-16所示。
  使用多运行顺序执行法进行测试时,分析各个运行之间的顺序性,是使用该方法的关键。
  例如,我们要测试“用户收到一封电子邮件”和“用户发送一封电子邮件”这两个功能。这两个功能同时也是两个运行。
  我们首先将这两个运行按照顺序组合起来,有下面几种情况:
  (1)用户先收到一封电子邮件后,再发送一封电子邮件。
  (2)用户先发送一封电子邮件后,再收到一封电子邮件。
  然后我们需要分别分析一下,两种运行的组合是否具有一定的顺序性。容易分析出,第(2)种情况中,两个运行之间并没有这种顺序性。
  我们再把注意力集中到第(1)种情况下,深入分析一下就能发现第(1)种情况又包含了两种情况(我们分别用①和②来编号):
  ①用户收到一封电子邮件后,再接着发送这封收到的电子邮件。
  ②用户收到一封电子邮件后,再发送一封任意电子邮件。
  显然,在第②种情况下两个运行之间也是没有顺序性的;而在第①种情况下两个运行之间是有一定的顺序性的——我们必须按照先收邮件再发送邮件的顺序来进行这个操作,这个操作才是有意义的。因此,第①种情况就是我们通过使用多运行顺序执行法分析得到的测试点。
  多运行顺序执行法在和用户的操作习惯相关的地方使用非常有效。
  例如,用户登录、用户选择商品、用户提交订单这几个运行,有的用户的操作习惯是先登录,再选择商品;有的用户的操作习惯可能是先选择商品然后再登录。这就需要我们先分析这些操作可能的先后顺序再来进行测试。如图4-17所示。
  此外,多运行顺序执行法也比较适合使用在功能的配置测试上。
  例如在防火墙产品的测试中,完成一个“数据包过滤功能”的配置。最常见的配置思路是,依次配置接口、配置安全区域、将接口加入到安全区域中、在安全区域之间配置包过滤,如图4-18所示。
  也许我们对防火墙产品的业务并不熟悉,但是从这个配置顺序中,我们还是容易看出这些配置之间存在一些顺序性。
  (1)只有配置了“接口”和“安全区域”后,才能将“接口加入到安全区域”中。
  (2)只有将“接口加入到安全区域中”了,才能在“安全区域之间配置包过滤”。
  于是得到了如图4-19所示的测试点。
  在多运行操作1和多运行操作2中未写出“在安全区域间配置包过滤”这个操作,是因为配置执行到“将接口加入到安全区域”中时就失败了,没有再写下面这个步骤的必要了。
  我们还可以对上面配置测试略微扩展。以“将接口加入到安全区域”这个操作为例,容易想到,既然这个操作是建立在“配置接口”和“配置安全区域”之上的,那么我们在“将接口加入到安全区域”之后,就不能删除“接口”的配置和“安全区域”的配置。这样又扩展出了如图4-20所示的几个测试点。
  我们还可以继续扩展,考虑“修改接口配置”“修改安全区配置”对“将接口加入到安全区域”的影响。
  大家不妨按照上述的思路,试着扩展一下“在安全区域之间配置包过滤策略”这个操作需要考虑的测试点。
  5. 多运行相互作用法
  多运行相互作用法是指在功能测试时把多个存在相互关系的运行组合在一起进行测试的方法,如图4-21所示。
  还是以测试“用户收到一封电子邮件”和“用户发送一封电子邮件”这两个功能为例,来说明多运行相互作用法的使用方法。
  和多运行顺序执行法强调多个运行之间的顺序性不同,多运行相互作用法强调的是多个运行之间的关系性,这个关系可以是外在关系,如某个业务的顺利进行需要多个运行之间相互协作;也可以是内在关系,如这些运行会用相同的资源(如内存或其他硬件资源)。
  接下来我们来分析一下“用户收到一封电子邮件”和“用户发送一封电子邮件”这两个运行之间是否存在一定的关系性呢?容易想到,是存在这样的场景的,例如:
  用户正在发送电子邮件的时候,又接收到一封电子邮件,即用户同时在进行收发电子邮件的操作。
  我们前面提到的“正在打电话的时候,又接收到了一条短消息”,也是多运行相互作用法的例子。
  需要特别指出的是,不知道大家有没有注意到,我们这里的操作,都是“针对一个用户”的操作场景,而不是“两个不同的用户同时发送邮件”或是“一个用户发送邮件,一个用户接收邮件”这样的场景。事实上,前者属于功能测试的范畴,而后者属于可靠性测试的范畴,我们接下来就会详细讨论与可靠性测试相关的方法。
本文选自《测试架构师修炼之道:从测试工程师到测试架构师》第四章,本站经机械工业出版社和作者的授权。
版权声明:51Testing软件测试网获机械工业出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
22/2<12
100家互联网大公司java笔试题汇总,填问卷领取~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号