All-Pairs Testing is a test design method to deal with the combinatorics problem of defining test cases in a systematic way.

成对组合覆盖这一概念是Mandl于1985年在测试Aad编译程序时提出来的。Cohen等人应用成对组合覆盖测试技术对Unix中的“Sort”命令进行了测试。测试结果表明覆盖率高达90%以上。可见成对组合覆盖是一种非常有效的测试用例设计方法。 成对组合覆盖要求任意两个因素(输入条件)的所有水平组合至少要被覆盖1次。组合覆盖的算法已经被很多工具实现,测试人员可以直接利用这些工具,例如:TConfig、微软的PICT等。下面介绍一下使用PICT设计测试用例的过程。

PICT,全称是Pairwise Independent Combinatorial Testing tool,是微软公司内部使用的一款成对组合的命令行生成工具,现在已经对外提供,可以从

官网:http://www.pairwise.org/ 常用的Pairwise工具集:http://www.pairwise.org/tools.asp上下载到。

PICT工具原理和算法实现可以参考http://msdn.microsoft.com/en-us/library/cc150619.aspx

model.txt
 
  • The model defines the parameters that need to be 'combined' and their values.
  • Parameter names and values are defined by "parmname: val1, val2, ..." (list of comma seprated values).
  • Values can be any string (numbers, names, logical names like "empty")
  • You can define constraints to make sure the tool does not generate test case variants that are illegal.
  • For details see  PICT language reference
    #
    # PICT Example model: Parameters to the windows 'FORMAT' command
    #
     
    Type: Primary, Logical, Single, Span, Stripe, Mirror, RAID-5
    Size: 10, 100, 500, 1000, 5000, 10000, 40000
    Format method: quick, slow
    File system: FAT, FAT32, NTFS
    Cluster size: 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536
    Compression: on, off
     
    # some simple constraints
    IF [File system] = "FAT" THEN [Size] <= 4096;
    IF [File system] = "FAT32" THEN [Size] <= 32000;
     
     
     

    The number of test cases produced by different tools for the same model:

    Model AETG 1) IPO 2) TConfig 3) CTS 4) Jenny 5) TestCover 6) DDA 7) AllPairs [McDowell] 5) PICT EXACT8) IPO-s 9) ecFeed 10)
    34 9 9 9 9 11 9 ? 9 9 9 9 10
    313 15 17 15 15 18 15 18 17 18 15 17 19
    415 317 229 41 34 40 39 38 29 35 34 37 ? 32 37
    41 339 235 28 26 30 29 28 21 27 26 27 21 23 28
    2100 10 15 14 10 16 10 15 14 15 10 10 16
    1020 180 212 231 210 193 181 201 197 210 ? 220 203
     
     

Pair Testing的更多相关文章

  1. hackerrank Similar Pair

    传送门 Problem Statement You are given a tree where each node is labeled from 1 to n. How many similar ...

  2. Pair Project: Elevator Scheduler [电梯调度算法的实现和测试]

    作业提交时间:10月9日上课前. Design and implement an Elevator Scheduler to aim for both correctness and performa ...

  3. RFID Exploration and Spoofer a bipolar transistor, a pair of FETs, and a rectifying full-bridge followed by a loading FET

    RFID Exploration Louis Yi, Mary Ruthven, Kevin O'Toole, & Jay Patterson What did you do? We made ...

  4. Project Euler P105:Special subset sums: testing 特殊的子集和 检验

    Special subset sums: testing Let S(A) represent the sum of elements in set A of size n. We shall cal ...

  5. Test Design Techniques - STATE BASED TESTING

    Test Design Techniques - STATE BASED TESTING -Test note of “Essential Software Test Design” 2015-08- ...

  6. COMBINATORIAL TESTING

    COMBINATORIAL TESTING -Test note of “Essential Software Test Design” 2015-09-06 Content 16.1 Coverag ...

  7. Project Euler 44: Find the smallest pair of pentagonal numbers whose sum and difference is pentagonal.

    In Problem 42 we dealt with triangular problems, in Problem 44 of Project Euler we deal with pentago ...

  8. SAP成都研究院郑晓霞:Shift Left Testing和软件质量保证的一些思考

    今天的文章来自Jerry的同事,曾经的搭档郑晓霞(Zheng Kate).郑晓霞是在Jerry心中是一位很有实力的程序媛,2011年从西安某软件公司跳槽到SAP成都研究院.当时,成都研究院的CRM团队 ...

  9. Bit error testing and training in double data rate (ddr) memory system

    DDR PHY interface bit error testing and training is provided for Double Data Rate memory systems. An ...

随机推荐

  1. Spring事务嵌套引发的问题--Transaction rolled back because it has been marked as rollback-only

    转载https://blog.csdn.net/f641385712/article/details/80445912 读了两边才找到问题

  2. 模块之re模块

    八.正则表达式 1.1首先我们先了解re模块与正则表达式的关系: re模块与正则表达式之间的关系 正则表达式不是python独有的 它是一门独立的技术所有的编程语言都可以使用正则,但是如果你想在pyt ...

  3. Sumdiv(约数和问题)

    题目地址 看到这题的题解,大佬都说是小学奥数,蔡得我不敢鸡声. 求 \(a^b\) 所有的约数之和 mod \(9901\) \((1<=a,b<=5*10^7)\) 题解 做这道题,我还 ...

  4. alert(1) to win 8

    function escape(s) { return '<script>console.log("' + s.toUpperCase() + '")</scri ...

  5. vue中select的使用以及select设置默认选中

    简介 今天写pc端引入vue,遇到了一个问题,就是我循环出select内的数据以后,发现原本默认显示第一条的select框变成了空白,要选择后才有显示,结果查了好多文档,讲的都不是很清楚,后来看到一句 ...

  6. 一个KVO 实现WKWebView加载进度条的例子 (注意最后移除观察者)

    // // OpenWebViewController.m // Treasure // // Created by 蓝蓝色信子 on 16/7/29. // Copyright © 2016年 GY ...

  7. [luogu]P1315 观光公交[贪心]

    [luogu]P1315 [NOIP2011]观光公交 ——!x^n+y^n=z^n 题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车, ...

  8. AppBar中自定义顶部导航

    在上一篇里总结AppBar的一些简单用法,但是AppBar除了有前面那些样式属性外,还能实现类似底部的Tab切换. 首先下载并运行前面的项目: 然后在此基础上实现Tab切换. 常见属性 TabBar有 ...

  9. (2)用C语言实现面向对象---封装、继承和多态

    封装:struct中封装成员变量和函数指针. 继承:结构体中嵌套结构体. 多态:子类对象动态指向父类的现象叫多态. void  pFunction2(void) { printf(“函数2”): } ...

  10. 用三目运算,与if判断 函数调用 达到相同判定作用

    三目运算符:     操作数1 ? 操作数2 : 操作数3   (操作数1位bool类型,操作数2和操作数3为两个相同的任何类型) 返回结果:如果操作数1判定结果为真,则将操作数2作为返回结果如果操作 ...