• 13
  • 13
分享
  • 测试用例生成工具PICT的安装与使用——软件测试圈
  • 曼倩诙谐 2021-02-19 10:43:59 字数 1416 阅读 3053 收藏 13

  PICT(Pairwise Independent Combinatorial Testing,成对独立组合测试)是微软开发的一款测试用例生成工具(生成配对测试用例的工具很多,感兴趣的可以参考http://www.pairwise.org/tools.asp的介绍),它可以生成测试用例和测试配置,其理论基础是成对测试技术(Pairwise Testing,之前有文章单独介绍过,在此不多介绍)。

  一、PICT安装

  通过官网链接?http://download.microsoft.com/download/f/5/5/f55484df-8494-48fa-8dbd-8c6f76cc014b/pict33.msi下载安装包,然后一路点击next安装即可。

  安装成功后验证:打开cmd命令终端,输入pict显示如下即证明安装成功。

1-1.png

图1 pict安装成功验证

  二、PICT使用

  1.建模

  PICT是一个命令行工具。在使用PICT生成用例前,需要准备好一个模型文件,PICT将会根据模型文件自动生成组合列表。根据配对测试基于的假设:模型文件中,每个测试点/维度都是正交的,且每个测试点/维度具有有限的影响因子。假如针对邮箱注册功能使用PICT生成用例,注册功能包含:用户名、密码、手机号、是否同意服务协议4个测试维度,每个测试维度所包含的有限影响因子如下表所示。

1-2.png

表1 测试分析建模

  2.编辑模型文件

  根据建模结果,编辑模型文件,如下图所示:

1-3.jpg

图2 模型文件

  3.运行模型文件

  打开cmd命令终端,运行pict test.txt>test.xls,将测试点组合结果输出到test.xls文件。结果如下图所示,共生成157个测试点,在原本13*12*5*2=1560个用例基础上,用例精减率达到90%:

1-4.png

图3 pict执行结果

  4.约束条件

  在2、3中的例子,使用的是无约束条件pict模型。而在现实中,对于已经经历多个迭代的版本,可能有些组合条件已经测试,因此,可以在pict的模型文件中使用约束条件将之排除。如2、3例中,添加约束条件:“if [用户名] = "为空" or [密码] = "为空" then [手机号] <> "为空";“,表示如果“用户名”或“密码”为空时,“手机号”不为空。

1-5.jpg

图4 添加约束条件的模型文件

  执行上述添加约束条件后的模型文件,生成test1.xls结果如下图所示,与无约束条件的图3想比,测试点数仍为157个,但测试点中不包括:“用户名”=“为空”,“手机号”=“为空”和“密码”=“为空”,“手机号”=“为空”这两例。

1-6.png

图5 添加约束条件后pict执行结果

  三、效益

  PICT是使用较广的一种配对测试用例生成工具。对于多维度多因子的组合测试,使用PICT可以快速、有效地筛选出经过配对测试筛选后的组合,有助于测试人员节省测试要点整理时间和测试执行时间。

  四、FAQ

  1.pict执行模型文件报错,错误提示为乱码?

  答:pict仅仅支持ANSI和UTF8 ,此处保存为UTF8仍然乱码,则另存为ANSI就可以了。

  2.执行模型文件错误,提示没有定义参数值?

  答:模型文件中的冒号:和逗号,需要为英文字符。

  3.加入约束条件后执行文件,提示输入错误?

  答:约束条件字符串值用双引号而不是单引号。



作者:刘晓佳Rachel   

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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   测试代码是确保代码稳定的第一步。能做到这一点的最佳方法之一就是使用单元测试,确保应用程序中的每个较小的功能都按应有的方式运行——尤其是当应用程序接收到极端或无效输入,甚至可能有害的输入时。  为什么要进行单元测试?  进行单元测试有许多不同的方法,一些主要目的是:  验证功能:单元测试确保代码做正确的事情并且不做任何不应该做的事情——大多数错误发生在这里。  防止代码回归:当我们发现错误时,添加单元测试来检查场景可以防止代码更改在将来重新引入错误。  记录代码:通过正确的单元测试,一套完整的测试和结果提供了应用程序应该如何工作的规范。  保护您的应用程序:单元测试可以检查可利用的漏洞(例如...
            0 0 1155
            分享
          •   最近火出圈的 ChatGPT 公司 OpenAI 发布了 Chat API 和 gpt-3.5-turbo 模型,我们现在可以通过API 来使用与 ChatGPT 一样的 NLP 模型。  使用OpenAI API,可以使用gpt-3.5-turbo构建自己的应用程序,可执行以下任务:  草拟电子邮件或其他文字内容写代码,例如Python代码  创建对话代理,回答各类问题  为您的软件提供自然语言界面  在各种学科中进行辅导  翻译语言  为视频游戏模拟角色等  待发掘的各种应用场景……  下面用 Python 来讲解如何使用 openai python SDK 实现自...
            0 0 2509
            分享
          •   英国政府表示,周二将出台一项新的法律,遏制谷歌、Meta和亚马逊等美国科技巨头对数字市场竞争的压制。  这项立法还将加强对消费者的保护,便于他们退出在线订阅服务,使之可以更加从容地应对虚假评论。  作为英国的反垄断监管部门,英国竞争和市场管理局(CMA)两年前设立了专门的数字市场部(DMU),并配备了社交媒体等新兴市场的专业监管知识,但该部门还是缺乏保障其正常行驶职权的法律“牙齿”。  此项法案一旦获得英国议会通过,就将对这一现状进行纠偏,为数字市场部赋予新的权力,使之可以对全球营业额超过250亿英镑(312亿美元)或英国营业额超过10亿英镑的科技公司进行处罚。  尽管遭到科技巨头的反对,...
            0 0 750
            分享
          • 大数据测试挑战自动化大数据的自动化测试需要有技术专长的人员。此外,自动化工具未配备处理测试期间出现的意外问题虚拟化它是测试的整体阶段之一。虚拟机延迟会在实时大数据测试中产生时序问题。在大数据中管理图像也是一个麻烦。大数据集需要验证更多的数据,需要更快的速度;需要自动化测试工作;需要能够跨不同平台进行测试。大数据性能测试挑战多样化的技术:每个子组件属于不同的技术,需要孤立测试特定工具的不可用性:没有单个工具可以执行端到端测试。例如,NoSQL可能不适合消息队列测试脚本:需要为测试场景和测试用例设计高水的脚测试环境:由于数据量大,需要特殊的测试环境监控解决方案:存在可监控整个环境的有限解决方案诊断...
            0 0 989
            分享
          • 一、web页面元素定位工具介绍1、打开google浏览器,按F12进入开发者模式,如下图:2、用鼠标点击下图红色框中的箭头——然后鼠标移动到web页面的元素上(此处为百度框),会自动定位到对应的html代码,如下图:二、web页面元素的8种定位方法:1、通过元素的id属性来定位元素——id是唯一标识(每个id都是不一样的)driver.find_element_by_id("kw")1 from selenium import webdriver 2 driver=webdriver.Chrome() 3 driv...
            10 10 5376
            分享
      • 51testing软件测试圈微信