组合覆盖法是一种有效减少测试用例个数的测试用例设计方法。根据覆盖程度的不同,可以分为单因素覆盖、成对组合覆盖、三三组合覆盖等。其中又以成对组合覆盖最常用。

关于组合覆盖的更多内容,参考:http://www.pairwise.org/

成对组合覆盖要求任意两个因素(输入条件)的所有水平组合至少要被覆盖1次。组合覆盖的算法已经被很多工具实现,测试人员可以直接利用这些工具,例如,TConfig、微软的PICT等。下面简单介绍一下使用PICT(Pairwise Independent Combinatorial Testing tool)设计测试用例的过程。

下载:http://www.pairwise.org/tools.asp (除了PICT,还有很多类似的小工具,均可以从此处找到)

下载后双击安装。

PICT接收一个纯文本的Model文件作为输入,然后输出测试用例集合。Model文件的格式如下:

<ParamName> : <Value1>, <Value2>, <Value3>, ...
 用冒号隔开输入条件和参数,每行一个输入条件,参数之间用逗号隔开。
下面是设计一个测试磁盘分区创建功能的Model文件的例子。输入条件有分区类型、大小、格式化方式、文件系统类型、簇大小、是否压缩。各项输入条件分别有不同的参数选择:
Type:          Primary, Logical, Single, Span, Stripe, Mirror, RAID-
Size: , , , , , ,
Format method: quick, slow
File system: FAT, FAT32, NTFS
Cluster size: , , , , , , ,
Compression: on, off

把上面的内容存为Model.txt文件。存储在某个目录,例如D盘根目录。然后在命令行中输入以下命令:

C:\Users\Administrator>PICT "D:\Model.txt"

则可产生下面的测试用例:

Type    Size    Format Method   File system     Cluster size    Compression
Mirror quick FAT off
RAID- slow FAT32 on
Stripe quick NTFS off
Span slow NTFS on
Primary quick FAT32 off
Single slow FAT off
Primary slow FAT on
RAID- quick NTFS on
Logical slow NTFS on
Span quick FAT off
Mirror slow FAT32 on
Logical quick FAT32 off
Logical slow FAT off
Single quick NTFS on
Stripe slow FAT32 on
Mirror quick NTFS off
Span slow FAT32 off
Single quick FAT32 off
RAID- quick FAT off
Stripe slow FAT32 on
Primary quick NTFS off
Span slow FAT on
Primary slow FAT32 on
Single quick FAT32 off
RAID- slow FAT on
Single slow NTFS off
Mirror quick FAT on
Stripe quick FAT on
Primary quick FAT32 off
Single quick NTFS on
Logical slow NTFS off
Stripe slow FAT off
Primary slow NTFS off
Mirror quick FAT on
Stripe quick FAT off
Mirror slow FAT32 on
Span quick NTFS off
Logical slow NTFS off
Span quick FAT on
Logical slow FAT32 on
RAID- quick NTFS on
Stripe slow NTFS off
Mirror slow NTFS off
Span quick FAT off
Span slow NTFS on
Stripe quick FAT32 off
Primary quick FAT off
RAID- slow NTFS on
Primary quick NTFS on
RAID- quick FAT32 on
Primary quick FAT off
Mirror slow FAT32 on
Single slow NTFS off
Logical quick FAT32 off
Single slow NTFS on
Mirror quick FAT32 off
Span slow FAT on
RAID- slow FAT off
Logical quick FAT off
Single slow FAT32 on

如果想把产生的测试用例存储到某个文件,则可输入以下命令:

C:\Users\Administrator>PICT "D:\Model.txt" > "D:\OutPut.txt" #生成文本文档
C:\Users\Administrator>PICT "D:\Model.txt" > "D:\OutPut.xls" #生成表格

上面产生的测试用例一共有60条,而如果完全覆盖,则需要执行7*7*2*3*8*2=4704项测试,这说明成对组合覆盖法可以有效减少测试次数。实验证明,成对组合覆盖法的测试覆盖率高达90%以上。

当然,仔细检查产生的测试用例之后,我们可能会发现,有些组合是不合理的,需要我们自己修改一下,而且有些常用的组合可能没出现在这个表里,还需要我们自己添加。总的来说,任何工具都有一定的局限性,结果可以为作为参考,实际还是离不开人力。

更多关于PICT的使用方法请参考PICT的帮助文档。

PS:实际上,我没弄清楚成对组合覆盖和正交表具体有什么样的区别,总感觉差不多,如果有小伙伴清楚的话,欢迎留言解惑,不胜感激!

组合覆盖与PICT的使用的更多相关文章

  1. 用例设计工具PICT — 输入组合覆盖

    1 成对测试简介 成对测试(Pairwise Testing)又称结对测试.两两测试,是一种正交分析的测试技术.成对组合覆盖这一概念是Mandl于1985年在测试Aad编译程序时提出来的.是当不可能遍 ...

  2. 两两组合覆盖测试用例设计工具:PICT

    两两组合覆盖测试用例设计工具:PICT 2016-08-31 目录 1 成对测试简介2 PICT使用  2.1 安装 PICT  2.2 使用PICT3 PICT算法  3.1 准备阶段  3.2 产 ...

  3. 正交表生成工具 PICT 成对组合覆盖 收藏

    收藏:https://www.cnblogs.com/wmjperson/p/4557246.html

  4. PICT实现组合测试用例(二)

    上次简单总结了PICT命令的一些用法,这次重新把<软件测试实战>里面有关这一章的内容再总结一次,以巩固理解. 组合测试的概念 组合测试(combinatorial testing)是一种测 ...

  5. PICT实现组合测试用例

    成功安装后,在命令行中输入命令pict: 可以看到pict命令的一些选项: /o:N   组合数,默认值为2,即pict生成的测试用例集中每条测试数据会有两个值与其他测试集是不同的: /d:C   值 ...

  6. PICT测试工具的安装及使用

    PICT工具就是在微软公司出品一款成对组合的命令行生成工具,现在已经对外提供,可以在互联网上下载到 .PICT 可以有效地按照两两测试的原理,进行测试用例设计.在使用PICT时,需要输入与测试用例相关 ...

  7. 【测试设计】基于正交法的测试用例设计工具--PICT

    前言 我们都知道成对组合覆盖是一种非常有效的测试用例设计方法,但是实际工作过程中当成对组合量太大,我们往往很难做到有效的用例覆盖. PICT是微软公司出品的一款成对组合命令行生成工具,它很好的解决了上 ...

  8. 组合测试(Combinatorial Test)/配对测试 (pairwise)

    组合测试方法:配对测试实践 实施组合测试 常用的Pairwise工具集:http://www.pairwise.org/tools.asp 成对测试(Pairwise Testing)又称结对测试.两 ...

  9. PICT:基于正交法的软件测试用例生成工具

    成对组合覆盖这一概念是Mandl于1985年在测试Aad编译程序时提出来的.Cohen等人应用成对组合覆盖测试技术对Unix中的“Sort”命令进行了测试.测试结果表明覆盖率高达90%以上.可见成对组 ...

随机推荐

  1. Android异步处理系列文章四篇之三

    Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+Loope ...

  2. c# 中config.exe 引发的一些问题

    public static void CreateConfig(){ //c#可以添加内置的app.config,我们通过ConfigrationManager类可以 //可以很轻松的操作相关节点,操 ...

  3. javascript定时器使用

    使用定时器实现JavaScript的延期执行或重复执行 window对象提供了两个方法来实现定时器的效果,分别是window.setTimeout()和window.setInterval.其中前者可 ...

  4. Xshell登录Ubuntu12.04

    Ubuntu安装ssh服务: sudo apt-get install openssh-server 打开Xshell,选择“新建”,“连接”设置里选择SSH,主机填入需要连接的主机的IP地址.在“用 ...

  5. 【Java并发编程六】线程池

    一.概述 在执行并发任务时,我们可以把任务传递给一个线程池,来替代为每个并发执行的任务都启动一个新的线程,只要池里有空闲的线程,任务就会分配一个线程执行.在线程池的内部,任务被插入一个阻塞队列(Blo ...

  6. python----流程控制

    计算机程序在解决某个具体问题时,包括三种情形,即顺序执行所有的语句.选择执行部分的语句和循环执行部分语句,这正好对应着程序设计中的三种程序执行结构流程:顺序结构.选择结构和循环结构. 事实证明,任何一 ...

  7. 操作系统中的IPC机制(inter-process Communication)

    http://www.cnblogs.com/tsiangleo/p/4902695.html

  8. Windows Server 2008 R2远程协助选项 灰色

    管理工具——〉服务器管理器——〉功能——〉添加功能   窗口中"远程服务器管理工具"下边的"远程协助"打上对钩"再点击"下一步"再 ...

  9. MyBatis中choose when正确写法

    <choose> <when test="scoreRange!=null and scoreRange eq 1"> AND sc.score <! ...

  10. 为什么“how to say”是错的?

    2018-04-26 15:53 英语口语 吉米老师前言:如果让老外评选十大Chinglish之最,老师猜"how to say"一定榜上有名.几乎每一位学习英语的童鞋,都曾有过脱 ...