• 12
  • 12
分享
  • 干货分享!一文搞定测试用例设计——软件测试圈
  • 曼倩诙谐 2021-01-13 11:54:47 字数 1532 阅读 1191 收藏 12

  Pairwise(后称:配对测试)可以看作是正交测试用例设计的拓展,其目的是为了缩减测试用例集大小,以较小的测试用例集覆盖较全的测试点,降低测试损耗。

  一、配对测试理论基础

  配对测试用例设计基于以下两个假设:1、每一个测试点/维度都是正交的,即相互间没有交集;2、根据数学统计分析,73%的缺陷是由单因子或两个

  因子相互作用产生的(其中单因子是35%,两个因子是38%)。因此,配对测试用例设计对于覆盖两因子交互产生的用例集性价比较高(这也在某些方面成为配对测试的一种局限)。

  可能说到这里,还是对于测试维度、因子,有些似明非明、迷惑不解,我们用一个图来简单说下这两个是什么,它们之间什么关系。

  在一项试验中,基于正交理论:把影响试验结果的变量称为试验因素(因子),简称因素。在试验过程中,每一个因素可以处于不同的状态或状况,把因素所处的状态或状况,称为因素的水平,简称水平。对应与配对测试用例的假设,测试维度即正交理论中的因素;因子即因素的水平。

  二、举个栗子

  某所大学某系共2个班级,想通过“性别”、“班级”和“成绩”这三个条件查询某课程的成绩分布。则“性别”、“班级”和“成绩”为3个测试点/测试维度;“性别”的“男、女“,”班级“的“1班、2班” 和“成绩”的“及格、不及格”分别为3个测试维度的2个影响因子。

  1.正交测试法用例设计

  在正交测试法中,上述栗子,转化为测试用例可以用下表表示:

8-1.png

  正交法可以呈现较为完备的测试用例集,覆盖度较高,但是随着测试维度和因子的加大,测试用例集将会变得庞大,测试执行会变得十分耗时。此时,使用配对测试,可以在保证一定测试覆盖度的情况下,缩减测试用例,降低用例执行耗时。

  2.配对测试法用例设计

  1)从用例8开始分析

  用例8是“女、2班、不合格”的组合,两两组合是“女2班”、“2班不合格”、“女不合格”。检查者三个组合在1-7的用例中是否出现过,可以看出“女2班”在4号用例,“2班不合格”在7号用例,“女不合格”在6号用例中出现过。因此,根据配对测试法思想,8号用例可以舍去。此时,剩下用例为:

8-2.png

  2)接着分析用例7

  用例7的两两组合“男2班”在3号用例出现过,“男不合格”在5号用例中出现过,但“2班不合格”仅此一个,因此7号用例需要保留。

  3)接着分析用例6

  同理分析可得,6号用例的组合“女1班”在2号出现过,“1班不合格”在5号用例出现过,“女不合格”仅此一个,因此6号用例需要保留。

  4)接着分析用例5

  同理分析可得,5号用例的组合“男1班”在1号出现过,“1班不合格”在6号用例出现过,“男不合格”在7号用例出现过,因此6号用例可以舍去,保留用例如下表。

8-3.png

  5)接着分析用例4、3、2、1

  同理接着从下往上分析用例4、3、2、1可得,最终保留用例如下表所示:

8-4.png

  此时,可以看出,经过配对测试设计筛选后的测试用例数为原来的50%,用例成本大大缩减。

  经过L.L.ThurStone证明,配对测试最终剩下的用例数肯定相同,但可以有不同的组合。

  如,将上述用例从上往下(1->8)进行分析,最终保留用例如下表所示:

8-5.png

  对比表4从下往上筛选用例后结果和表5从上往下筛选后结果,可以看出,使用从下往上筛选后剩余用例为1、4、6、7,而从上往下筛选后剩余用例为2、3、5、8。

8-6.png

  三、还有什么不足

  配对测试设计虽然对于多维度的用例集有降低用例成本的作用,但它要求测试人员必须对业务很熟悉,且由于不同的筛选路径导致保留的测试用例不同,在覆盖率上仍有一定缺陷。此外,对于超过两个因子互相作用产生的缺陷,有些力不从心。



作者:刘晓佳   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、选择题1、对计算机软件和硬件资源进行管理和控制的软件是(D)文件管理程序输入输出管理程序命令出来程序操作系统2、在没有需求文档和产品说明书的情况下只有哪一种测试方法可以进行的(A)错误推测法测试路劲分析测试语句覆盖测试条件覆盖测试3、某测试人员通过执行测试软件测试的方法对当前功能进行了测试,该测试人员使用的测试方法为(C)静态测试单元测试黑盒测试4、编写测试计划的目的是(ABC)多选题使测试工作顺利进行使项目参与人员沟通更舒畅使测试工作更加系统化软件工程以及软件过程的需要软件过程规范化的要求控制软件质量5、关于软件测试与软件开发的认识,不正确的是(B)软件生命周期各个阶段都可能产生测试软件...
            14 17 3964
            分享
          •       了解一项技术的有效途径是阅读官网文献,TestNG是应用非常广泛的自动化测试框架,稍有基础的同学都能够很容易上手TestNG。但在简单实用的背后,TestNG蕴藏着更为强大的功能和设计技巧。本系列通过对官网文献的阅读和大家一同探秘TestNG。写在引言的前面     使用TestNG很长时间了,相比JUnit,TestNG上手更容易,配置更灵活,功能更强大。出于项目的需要,使用的时候功利性太强,总是遇到拿起来就用,遇到问题再各种查资料解决,缺少系统的总结。现在通过TestNG官网文章的阅读进行系统的学习,主要是对TestN...
            2 3 2603
            分享
          • 在压力测试中,经常需要生成随机值来模拟用户行为。JMeter 提供了多种方式来生成随机值,本文来具体介绍一下。随机数函数JMeter 提供了多个用于生成随机数的函数,其中最常用的是__Random函数。该函数可以生成一个指定范围内的随机整数或浮点数。语法如下:${__Random(min,max)}其中,min 和 max 是生成随机数的范围,可以是整数或浮点数。例如,${__Random(1,100)} 会生成一个 1 到 100 之间的随机整数。以下是随机手机号最后 3 位数字的例子:查看传过去的数据:也可以用 BeanShell 来实现。添加前置处理器: BeanShell PrePro...
            0 0 3406
            分享
          • 问题描述: 有些系统接口判断用户是否登录,是校验登录接口成功后传的token值,也就是请求系统所有接口时,前端传参必带登录成功后接口返回的token,后台以此检验是否过期或是否有登录。所有接口都依赖登录成功后的token,那么可将token进行关联。本案例实现请求登录接口,获取token,将token关联至另外的get请求或post请求实现步骤:import json import requests import urllib.parse import urllib.request   def doLogin(): &nbs...
            0 0 685
            分享
          • 截至发稿股价跌幅已超过2%,业内预测,富士康郑州工厂的疫情可能使该厂区11月产能减少达30%。供应链的阴影笼罩了苹果即将到来的假日季。在苹果iPhone全球最大的组装工厂富士康河南郑州工厂发生疫情后,苹果全球产品供应情况如何也引发关注,全球大约一半苹果iPhone从该工厂流出。10月31日美股开盘后,苹果股价跌幅迅速扩大,截至发稿股价跌幅已超过2%,业内预测,富士康郑州工厂的疫情可能使该厂区11月产能减少达30%。供应链的阴影笼罩了苹果即将到来的假日季。第一财经记者向苹果中国方面求证iPhone全球供应是否会受到富士康郑州工厂供应链影响,公司未予回应。不过投资人已经表达了担忧。摩根士丹利分析师...
            0 0 845
            分享
      • 51testing软件测试圈微信