组合测试(Combinatorial Test)/配对测试 (pairwise)
常用的Pairwise工具集:http://www.pairwise.org/tools.asp
成对测试(Pairwise Testing)又称结对测试、两两测试,是一种正交分析的测试技术。
成对组合覆盖这一概念是Mandl于1985年在测试Aad编译程序时提出来的。是当不可能遍历产品所有功能点时用到的一种测试手段,即如果用尽可能少的工作发现最多的缺陷(测试投入产出性价比)。
经验证,Cohen等人应用成对组合覆盖测试技术对Unix中的“Sort”命令进行了测试。测试结果表明覆盖率高达90%以上,可见成对成对测试是一种非常有效的测试用例设计方法。
成对组合覆盖要求任意两个因素(输入条件)的所有水平组合至少要被覆盖1次。实现成对组合覆盖的算法工具有很多,其中微软的PICT就是其中一个。
测试用例生成工具 —— PICT(Pairwise Independent Combinatorial Testing tool)
PICT 可以有效地按照两两测试的原理,进行测试用例设计.在使用PICT时,需要输入与测试用例相关的所有参数,以达到全面覆盖的效果。
常用的Pairwise工具集:http://www.pairwise.org/tools.asp 处下载PICT工具。
开源仓库:https://github.com/microsoft/pict
Pairwise Testing in the Real World: Practical Extensions to Test-Case Scenarios
Pairwise Testing
Introduction to Pairwise Testing
t-wise testing is t-wise testing with a thoroughness of t.
The term all-pairs testing is simply equivalent to pairwise testing.
Mixed-strength testing is to mix, for example, 2-wise and 3-wise testing in the same round of testing.
Combinatorial testing is a more general term that includes pairwise testing but also other testing techniques.
Combinatorial testing > Pairwise testing > Orthogonal array testing
Pairwise testing fits nicely into the testing phase of software or hardware development. It works well with agile development practices.
Pairwise testing is usually not fully automatic. Pairwise testing usually requires some manual work to describe the thing that is to be tested.
Usually a pairwise testing tool then takes this description (or model) and generates the pairwise tests automatically.
Pairwise testing is more focused on putting your system into varied situations.
Having a domain expert make tests for a software or hardware system is valuable and highly recommended.
Pairwise testing is not a replacement for this kind of testing but complementary to it.
Pairwise tests acts in a similar way, it explores the different paths of interaction.
From a user’s point of view, pairwise testing is light-weight and simple to apply to even the larger cases.
From the pairwise tool developer’s point of view, however, pairwise testing involves some heavy-weight computations. This was until the last few years a bottleneck in the application of pairwise testing to the larger real-life cases, but in recent years effective algorithms for pairwise testing has been invented and are now available in commercial products.>>> Some paperson the computations.
The effectiveness of pairwise testing is neither hypothetical nor only academic. The effectiveness of pairwise testing has been studied by looking at existing large-scale software or hardware and their histories of problems and bugs. As the thoroughness of pairwise testing increases, it has been found that increasing amounts of bugs can be found. I one large study, it was found that for a thoroughness of 1, 2 and 3, the percentage of bugs that might be found was 50, 75 and 90%, respectively. This study found no bugs that required more than a thoroughness of 6, a result that has stood the test of time. This is the reason why a thoroughness of 6 is usually the maximum considered.
As the thoroughness of pairwise testing increases, so does the effort required to do the tests. A thoroughness of 2, i.e. 2-wise or pairwise, has a very good tradeoff between thoroughness and effort. A thoroughness of 3 is a good for more important rounds of testing, for example, for later stages of development.
For testing highly critical software of hardware, pairwise testing is a good start, but other quality assurance techniques should be used in addition.
Partial thoroughness
A pairwise test suite might contain, for example, 30 test cases. The accumulated coverage after each test case has been added will typically form a curve like this:

As we can see in this example, the first 12 tests include more than 95% of the pairs. So, the last 18 tests cover less than 5%.
In ordinary pairwise test generation, the pairs included (pseudo-)randomly, meaning that any faulty pair is most likely to be included early in the test suite. Thus, a partial test suite of, for example, 95% can be expected to detect 95% of the bugs that a complete pairwise test suite would find.
Pairwiser(Web-based, free & commercial)
https://inductive.no/pairwiser/knowledge-base/testing-example-1/
Pairwise testing is not well suited for a testing problem with a few parameters with relatively many combinations. As we will see in other examples, pairwise testing performs very well when we have more parameters, which the most interesting, real industrial cases surely tend to have!
Pairwise testing was combined with a kind of equivelence class selection technique to reduce the number of values to include for generating the pairwise tests. This is a quite common technique to combine with pairwise testing.
https://inductive.no/pairwiser/knowledge-base/testing-example-2/
Total inputs:
- The parameters: primary/second/...
- The constrains: always together/if..then..
- The required test cases.
CombTestWeb(Web-based, free)
>>> Paper: A framework and a web implementation for combinatorial testing
组合测试(Combinatorial Test)/配对测试 (pairwise)的更多相关文章
- sitecore-多变量测试与A / B测试概念论述
sitecore-多变量检验和A / B检验的区别 A / B测试和多变量测试有什么区别?让我们来看看这些测试方法的方法,常见用途,优点和局限性. sitecore中A / B测试 A / B测试(您 ...
- 手机APP测试(测试点、测试流程、功能测试)
1.功能测试 1.1 启动 APP安装完成后,是否可以正常打开,稳定运行 APP的速度是可以让人接受,切换是否流畅 网络异常时,应用是否会崩溃:在请求超时的情况下,如果程序逻辑处理的不好,就有可能发生 ...
- LTP--linux稳定性测试 linux性能测试 ltp压力测试 内核更新 稳定性测试
LTP--linux稳定性测试 linux性能测试 ltp压力测试 zhangzj1030关注14人评论33721人阅读2011-12-09 12:07:45 说明:在写这篇文章之前,本人也不曾了 ...
- [亿能测试_www.gdtesting.com]测试技术资料网盘共享
[亿能测试_www.gdtesting.com]测试技术资料网盘共享: http://pan.baidu.com/share/home?uk=974090852
- 测试管理_出色测试管理者的思考[持续更新ing]
如何合理安排并按质按量按时完成每一个测试任务,做好项目管理? 如何把控到每一个测试任务的质量? 如何快速构建和构建好测试环境? 如何获取或快速制作测试数据? 如何确保每一个测试人员的工作都饱满? 如何 ...
- Nim游戏(组合游戏Combinatorial Games)
http://baike.baidu.com/view/1101962.htm?fr=aladdin Nim游戏是博弈论中最经典的模型(之一),它又有着十分简单的规则和无比优美的结论 Nim游戏是组合 ...
- 亿能测试白盒安全测试模板V1.0发布
亿能测试白盒安全测试模板V1.0发布http://automationqa.com/forum.php?mod=viewthread&tid=2911&fromuid=21
- junit测试延伸--私有方法测试
关于junit测试的延伸,这里有类概念级别的测试,继承类的测试,接口的测试,抽象类的测试,关于这些类级别的测试,这里我就不做多的赘述了. 关于上面的几个测试就是说,我们不应该单纯的去测试类中的一些方法 ...
- 易用性测试、本地化测试、部署测试、无障碍测试、回归测试、冒烟测试、A/B测试
1.易用性定义: 易用性测试是指测试用户使用软件时是否感觉方便,是否能保证用户使用的测试类型2.本地化测试: ·定义:针对软件的本地化版本实施的针对性测试 ·测试内容: (1)语言,书写习惯 (2)时 ...
随机推荐
- JS实现二叉树的创建和遍历
1.先说二叉树的遍历,遍历方式: 前序遍历:先遍历根结点,然后左子树,再右子树 中序遍历:先遍历左子树,然后根结点,再右子树 后续遍历:先遍历左子树,然后右子树,再根结点 上代码:主要还是利用递归 ...
- [javaSE] GUI(打开文件对话框)
使用FileDialog可以打开文件对话框,根据模式不同,可以分为打开文件和保存文件对话框 获取FileDialog对象,new出来,参数:所属Frame对象,String的标题,FileDialog ...
- Java处理emoji
1.问题产生情况 我遇到这个问题是做微信开发的时候有些有用的头像用了微信的emoji表情,然而我的mysql数据库用的编码是utf8_general_ci,就是utf-8编码,结果也就报错误了. 2. ...
- redisTemplate 总结
依赖jar包 jackson <dependency> <groupId>com.fasterxml.jackson.core</groupId> <arti ...
- groovy运算符
import java.util.regex.Matcher /** * Created by Jxy on 2018/12/20 10:29 * groovy运算符 */ /*class opera ...
- Bash:获取当前脚本路径
可以使用readlink命令必须加上-f参数,readlink用于读取链接文件所指向的文件,这样对于一些建立了软连接的脚本文件的话非常适用,而对于一般的脚本文件需要加上-f参数否则readlink文件 ...
- js 控制页面跳转的5种方法
js 控制页面跳转的5种方法 编程式导航: 点击跳转路由,称编程式导航,用js编写代码跳转. History是bom中的 History.back是回退一页 Histiory.go(1)前进一页 Hi ...
- golang开发不错的参考资料
https://golangbot.com/learn-golang-series/ https://gist.github.com/ivangabriele/1c552aadc247c0a2f256 ...
- minimal sparse ruler problem 最少尺子刻度问题
一个长度13的尺子,如果在1位置刻点可以量出1和12,13三种刻度.那么至少刻几个点,可以直接量出1-13所有的长度,分别刻在哪几个位置? 注:必须是直接量.即在尺子上能找出一个1-13任意的整数长度 ...
- Intel酷睿前世今生(一)
Intel酷睿系列自诞生起就树立了桌面CPU霸主的地位,酷睿i系列更是无人能敌.它是Intel阻击AMD多核构架的救赎主,也是AMD复兴梦想的收割者.而Intel酷睿系列已经经历几代了,不知还有多少看 ...