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
     
     

最新文章

  1. sed awk grep三剑客常用
  2. C语言: 运算符,printf,scanf的用法
  3. 个人对RCU的理解
  4. js接收对象类型数组的服务端、浏览器端实现
  5. [leetcode] 题型整理之二叉树
  6. 键盘事件触发的兼容tips
  7. Lua学习笔记一
  8. Http中 Post和 Get的区别
  9. IIS7 配置
  10. shenyi 语录
  11. Python学习总结2:raw_input() 与 input()
  12. c++未指定返回值
  13. [Mugeda HTML5技术教程之5] 创建新作品
  14. 十分钟学会写shell脚本
  15. linux_之sed用法
  16. python 实现文本文件中的数字按序排序(位操作,低内存占用)
  17. Power BI本地部署(10月正式版)
  18. k8s HPA自动收缩
  19. 睡前小dp-poj3254-状压dp入门
  20. Cheerleaders UVA - 11806

热门文章

  1. django 开发中数据库做过什么优化??
  2. Python pass是空语句用法
  3. moongoose对象无法新增删除属性
  4. 通过css样式给表格tbody加垂直滚动条
  5. 轻便的gb28181协议中的rtp+ps格式视频流的封装和解析
  6. 线程池-连接池-JDBC实例-JDBC连接池技术
  7. 【转】WebRTC之RTCP
  8. UNIX网络编程总结一
  9. Android App渗透测试工具汇总
  10. flask之显示当地时间