有没有思考过“如何让有限的测试具有代表整体的测试覆盖率”?

在测试工作中,经常会遇到这样的场景:一个软件功能有多个输入项,每个输入项有多个可选项;一个接口有多个参数,每个参数有多个值。这样的情况在平时非常常见,如果按照排列组合,得到的测试用例数目非常庞大。

举个直观的例子就很容易明白了。有一个接口函数,该函数有3个参数,每个参数又可以取值4个,那如果要验证所有参数传入情况的话则需要测试444=64种情况。如果参数和取值状态更多话,那将是一个灾难。

有没有一种更好的办法,少做一些测试,同时可以满足测试覆盖率呢?答案是有的,就是我们今天要讲的“因子组合测试覆盖Pairwise”,下面先来简单的介绍一下什么Pairwise。

Pairwise是L.L.Thurstone(29 May1887–30 September 1955)在1927年首先提出来的。他是美国的一位心理统计学家,Pairwise也正是基于数学统计和对传统的正交分析法进行优化后得到的产物。

Pairwise基于如下2个假设:每一个维度都是正交的,即每一个维度互相都没有交集;根据数学统计分析,73%的缺陷(单因子是35%,双因子是38%)是由单因子或2个因子相互作用产生的,19%的缺陷是由3个因子相互作用产生的。因此,Pairwise基于覆盖所有2因子的交互作用产生的用例集合性价比最高而产生的。

软件测试分为黑盒测试和白盒测试,Pairwise算法是针对软件测试中的黑盒测试提出来的一个行之有效的测试方法。

概念往往是晦涩难懂的,下面举一个简单的例子,看完你就明白Pairwise算法是怎么挑选测试case的。

现有接口S,有三个输入变量X、Y、Z,取值分别为:D(X) = {x1, x2}; D(Y) = {y1, y2}; D(Z) = {z1,z2},如下图:

Pairwise算法过程:从表的最后一行开始,如果这行的两两组合值能够在上面的行或此表中找到,那么这行就可从用例集中删除。

例如,TC8包含的两两组合值为(X2-Y2,X2-Z2,Y2-Z2),X2-Y2在TC7中存在,X2-Z2在TC6中存在,Y2-Z2在TC4中存在,则此行删除;

TC7包含的两两组合值为(X2-Y2,X2-Z1,Y2-Z1),X2-Y2在此表中已找不到重复的值,所以保留。依此方法,最后得到的测试用例集如上面的右图。很明显,经过Pairwise过程,测试用例数减少了一半。

那么如果每次都要进行手工计算除了非常浪费时间外,也容易出错,一旦参数多起来的话手工也无能为力了。那是不是可以开发一个自动化程序,让它自动输出结果。这个想法非常好,但是不需要我们在重复造轮子了,市面上已经有了非常好用的工具,那就是PICT工具。

PICT(Pairwise Independent Combinatorial Testing)工具原是微软公司内部使用的一款自动生成成对组合测试用例的命令行工具,生成Pairwise testing所需的测试用例,并且可以将结果导出到excel,该工具可以从互联网上下载到。但是目前微软官方下载地址已经不能下载了。

一、约束
可以在文本后加约束条件
“if [用户名] = “为空” or [密码] = “为空” then [手机号] <> “为空”;
表示如果“用户名”或“密码”为空时,“手机号”不为空。

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

三、 FAQ
pict执行模型文件报错,错误提示为乱码?
答:pict仅仅支持ANSI和UTF8 ,此处保存为UTF8仍然乱码,则另存为ANSI就可以了。

执行模型文件错误,提示没有定义参数值?
答:模型文件中的冒号:和逗号,需要为英文字符。

加入约束条件后执行文件,提示输入错误?
答:约束条件字符串值用双引号而不是单引号。

测试用例生成工具PICT的安装与使用
https://mp.weixin.qq.com/s/wZhjHJ0VJ3sYQFyMVYpOqw

测试用例设计工具PICT
http://www.360doc.com/content/16/1223/17/28952034_617115828.shtml
测试用例设计工具PICT详细使用教程
https://www.jianshu.com/p/4afad7bd1be9
工具下载百度网盘分享
链接:https://pan.baidu.com/s/1qTXCUwLMtyriausnYL3f3g
提取码:riln
–来自百度网盘超级会员Ones的分享

软件测试“因子表”使用测试工具PICT下载安装,PICT中文乱码问题,pict下载百度网盘分享相关推荐

  1. python进阶训练营百度网盘_(在线观看)【完结】私域流量实战训练营(百度网盘分享下载)...

    今日推荐(在线观看)[完结]私域流量实战训练营(百度网盘分享下载)对  (在线观看)[完结]私域流量实战训练营(百度网盘分享下载)感兴趣的朋友可以学习参考 (有需要的找我,你就可以拥有这个课程)需要此 ...

  2. python 百度网盘库 根据文件名获取网盘链接_GitHub - tychxn/baidu-wangpan-parse: 获取百度网盘分享文件的下载地址...

    百度网盘分享文件下载链接解析 功能 获取百度网盘分享文件的真实下载地址 将获取到的下载链接复制到IDM.FDM等下载器即可实现高速下载,避免使用百度网盘客户端 运行环境 Python3 (兼容Pyth ...

  3. MacPorts下载很慢的看过来,MacPorts V2.8.0 For Mac百度网盘分享

    MacPorts下载很慢的看过来,MacPorts V2.8.0 For Mac百度网盘分享 链接: https://pan.baidu.com/s/124oYsmGtmgvY4vBwrGAHaA 提 ...

  4. jdk8最新版8u281、jdk15下载,百度网盘分享

    jdk8最新版8u281.jdk15下载,百度网盘链接免费分享: jdk8u281下载:提取码:s2n1 jdk15.0.2下载:提取码:l2y1

  5. 百度 android 下载文件夹在哪里,手机上从百度网盘下载下来的东西在哪个文件夹里?...

    手机上从百度网盘下载下来的东西在哪个文件夹里?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 手机上从百度网盘下载下来的 ...

  6. 流媒体专家(8)h264测试文件百度网盘分享

    链接:https://pan.baidu.com/s/1nqYDKe1KiVUCyGYpPb76Iw 提取码:1234 分辨率比较低,需要高清的可以联系我.

  7. Mac ps 下载百度网盘分享

    https://pan.baidu.com/s/17GEu3D2_5vxjjnL8VOTNxA 提取码:gb5d

  8. 优秀的写作课程免费资源百度网盘分享下载

    好的东西分享给朋友们 链接:https://pan.baidu.com/s/1vNjnzMx326OBCv0GNFWn7Q 提取码:e5j3 写作技巧学习心得和感悟 目录: - 投稿技巧 - 公号写作 ...

  9. 今天我又带来了一款超好用的百度网盘高速下载器~附软件资源

    前几天看到后台数据说之前的百度网盘高速下载分享链接错误或者登陆不了,这次我又带来了一款超好用的下载加速器,啥也不说先上功能 公众号回复:秘密武器加强版 功能介绍 1.百度网盘不限速下载 (正常情况下都 ...

最新文章

  1. Maven常用参数及其说明
  2. 【数据可视化应用】绘制峰峦地图(附Python和R语言代码)
  3. 基于PyTorch重写sklearn,《现代大数据算法》
  4. c++语言编译环境,Windows安装C++开发环境-C++开发环境搭建-嗨客网
  5. 少儿编程150讲轻松学Scratch(二)-制作过马路小游戏
  6. string类有可以调换方向的函数吗_String类中常用的操作
  7. JDK 8 新特性- 学习中
  8. 开源技术、开放使用、业务导向的大数据平台,助力银行数字化转型
  9. 进程的描述和进程的创建
  10. android tablelayout 点击,Android Design之TableLayout选项卡
  11. uniapp-蓝牙模块封装
  12. 痛与快乐有一个代码是什么_痛与快乐有一个代码是什么_痛苦与快乐
  13. python学习手册 第7章 字符串
  14. Gerber文件各层的介绍
  15. 最新Chrome插件开发 api 解析
  16. 微信小程序 设置微软雅黑字体
  17. 在pfSense上搭建透明网桥
  18. bzoj4816 [Sdoi2017]数字表格(反演)
  19. C语言中-是什么意思啊?比如说 p=p-next 到底表达了什么意思,请说清楚点,还有-这个符号是一个整体吗,什么意思??...
  20. Python基础之 3. 容器:字符串、列表、元组、字典

热门文章

  1. npc的AI是如何运作的? 从程序到策划深入谈游戏AI
  2. android时间错误的是什么意思啊,这个android错误啥意思
  3. AI快剪1.3版-及代理后台
  4. 无root权限情况下安装vim以及插件
  5. 中国邮政储蓄银行网上银行转账时出现undefined 怎么办?
  6. 动态规划——游艇租赁问题
  7. win10高危服务_一升级win10就卡?关闭这6项服务,运行快如新电脑!亲测有效
  8. 获取设备型号、设备类型等信息
  9. Matlab设置坐标轴
  10. 「前端进阶」vue+koa2+mongodb+oss阿里云部署自己的网站