测试用例设计工具PICT详细使用教程

“如何让有限的测试具有代表整体的测试覆盖率”

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

举个直观的例子就很容易明白了。有一个接口函数,该函数有3个参数,每个参数又可以取值4个,那如果要验证所有参数传入情况的话则需要测试4*4*4=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工具。

安装与使用

进入安装目录,在目录下新建一个txt文件如text.txt。

有一个登录页面,有用户名、密码、验证码、是否保存密码选项,其中用户名、密码、验证最多只有1个为空。如果组合的话有5*3*4*2-3=117种情况,在txt中输入与测试用例相关的所有参数,如下图1所示:


新建文件

test.txt的参数内容,如下:

username:  手机号,邮箱, 昵称, 非空字符, 空

password:   正确密码, 错误密码, 空

captcha:     正确验证码, 错误验证码, 超时正确验证码, 空

save_password:  是, 否

在保存的适合将编码改为ANSI否则会乱码

在安装目录运行cmd命令符,输入pict test.txt,结果如下图:

命令运行结果

看起来不是很美观,可以通过命令pict test.txt >test.xls命令将结果输出到text.xls文档中,结果如下:

生成的文件

是从要求中知道,用户名、密码、验证码最多只有1个为空,那怎么处理呢?这个时候就需要用到PICT的约束条件了。

PICT约束:

子模型约束:  

{ Para1, Para2, Para3 } @ 2  #必须覆盖任意的两两参数组合情况,不能有分号

条件约束(LIKE, IN, AND, OR, NOT),必须分号结束:

[username]<>“空”;

[age] < 120 ;

[username]<>“空”OR [age] < 120;

[nickname] LIKE “李*”;

IF [username] = “空”THEN NOT [password] = “空”;

IF [Cluster size] in {512, 1024, 2048} THEN [Compression] = "Off";

IF [username] = “空”THEN  [password]<>“空”AND [captcha] <>“空”;

所以,为了满足用户名、密码、验证码最多只有1个为空,更改text.txt中的参数约束条件如下:

txt文件

输出结果如下,可以发现没有用户名、密码、验证码最多只有1个为空的情况:

生成的文件样例

如果要求覆盖所有用户名、密码、验证码组合测试项该怎么处理?可以增加如下参数约束:

txt文件

以上就是关于约束的内容了,在编辑test.txt文件的时候切记一定不要在中文情况下编辑空格、冒号、逗号,否则会一直报错无法得到正确的结果。

上面的组合都是两两两组合覆盖,如果要更改组合组合顺序参数值怎么办?这个时候只需要将在运行命令的时候增加参数 /o:3即可,如pict test.txt /o:3。其它的命令参数选项含义如下:

/ o :N  - 组合数,默认值为2

/ d :C  - 值与值之间的分隔符,默认为逗号(,)

/ a :C  -别名间的分隔符,默认是管道符(|)

/ n :C  - 无效数值或者是非法数值的前缀,默认值为(~)

/ e :file - 定义种子文件,作用是可以指定组合方式

/ r [:N]  - 随机生成,N -种子

/ c       - 参数的值完全区分大小写

/ s       - 显示模型统计数据

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容