组合测试pict生成用例的基本使用

项目中用到pict生成用例测试,洒家现收集了一些pict的基本使用记录下来,分享出来。

 

使用微软pict测试工具生成组合测试用例:

需要待测程序模型文件,文件中描述了待测程序的条件因素,以及可能出现的取值。因素和值用冒号:分隔,值之间使用逗号,分隔。
根据模型文件来生成相应的组合测试用例。读入模型文件输出测试用例文件。

多因素组合测试,在pict工具中实现多因素组合测试。
在测试中,因素条件默认为2,成对组合两两测试是较为简单易行的组合测试覆盖。这样的测试覆盖生成的组合测试覆盖较少,而且两两组合
的错误检测能力有限,因此在资源允许的情况下需要引入多因素的组合覆盖,有可能进一步的提高错误发现率。
微软建议:
从2因素测试开始逐渐提高测试纬度到6因素的测试因素。有研究表明有6因素的组合测试覆盖可以发现绝大多数的错误缺陷。
随着组合纬度的提高,测试用例数量增长较大,几乎没有团队能完成6因素,因此在现实中3因素的组合测试是比较实际的。

在pict有2中方法可以引入多因素的测试,第一种方法是在命令行输入参数,参数3生成的参数是参数2的三倍。第二种方法是在模型文件中定义子模型语句。
子模型描述语句中可以定义哪些因素使用多因素覆盖准则。
如果业务逻辑复杂的话,就需要在文件编写大量的条件判断语句。注释使用#。
IF [账户名] = "正常" and [密码] = "正常" and [验证码] = "正常" THEN [会话] = “保存一个月” ELSE [会话] = “不保存”;


1、2个因素组合测试,该用例集可以暴露由2个变量共同作用而引发的缺陷。
2、多因素组合测试生成的测试集可以覆盖任意n和变量的所有取值组合。在理论上,该测试用例集可以发现所有n个因素共同作用引发的缺陷.
PICT的条件语句中支持:=、<>、>、>=、<、<=、LIKE、NOT、AND、OR......还可支持参数的互相比较。

3、pict命令的选项:
可以看到pict命令的一些选项:

/o:N   组合数,默认值为2,即pict生成的测试用例集中每条测试数据会有两个值与其他测试集是不同的;
/d:C   值与值之间的分隔符,默认为逗号(,),例如一个参数 操作系统  winxp,win7,win8 之间会用逗号隔开;
/a:C   别名间的分隔符,默认是管道符(|),例如一个参数(用户名不区分大小写,但为了保证测试的可信度,可以用大小写轮换的方式进行测试) 用户名  admin|ADMIN;
/n:C   无效数值或者是非法数值的前缀,默认值为(~),例如一个参数(只能取1、2,为了测试非法值的输入,取0,但又不希望0和其他参数的每隔值都配一次对,为了减少测试集的数量,在0前面加一个~)即 参数  ~0,1,2;
/e:file  定义种子文件,作用是可以指定组合方式,例如在种子文件seed.txt中指定一个组合方式,在执行1.txt时,命令:pict 1.txt /e:seed.txt  生成的测试集中会包含seed中指定的组合集(当然指定的组合集有一定条件)。(此参数目前的理解可能会有误区);
/r[:N]  通过/r参数,可以使每次生成的测试集不同;
/c        加上该参数,说明参数值完全区分大小写
/s        显示模型统计数据 例如运行 pict 1.txt /s   结果为 


    Combinations:  21


    Generated tests:   9


    Generation time:0:00:00


模型文件子模型:


定义:使用"{参数名1,参数名2,...} @ 组合次数"的格式自定义一个组合,然后通过增减"组合次数"来使特定组合得到更多或更少的测试。
说明:可以定义多个子模型;同一参数可在多个模型中使用;组合次数默认值为选项/o的取值,最大值为子模型参数总量。


组合次数/o:N:默认2,最大值为参数总量。取值越大生成的测试用例越多,从而测试覆盖率就更高。
值分隔符/d:默认逗号","。
别名分隔符/a:默认管道符"|"。
负值前缀/n:默认波浪符"~"。
输出随机/r:使用同样的模型内容和选项得到的输出是相同的,使用此选项可使输出结果随机。
区分大小写/c:参数的取值区分大小写。
模型文件参数定义


模型文件内容分块:至少1个"参数定义"区域,额外可选择包含"子模型"和"约束定义"区域。
注释和空行:可以用"#"开启一行注释,空行可以出现任何地方。
参数定义:参数与其取值间使用分号":"分隔,一行一个参数。
参数类型:数值型和字符型两种。
模型文件子模型

定义:使用"{参数名1,参数名2,...} @ 组合次数"的格式自定义一个组合,然后通过增减"组合次数"来使特定组合得到更多或更少的测试。
说明:可以定义多个子模型;同一参数可在多个模型中使用;组合次数默认值为选项/o的取值,最大值为子模型参数总量。
模型文件约束

条件约束

IF分支语句:IF pass THEN pass ELSE pass;
关系运算符:=,<>,>,>=,<,<=,LIKE(可使用通配符*和?),IN
逻辑运算符:NOT,AND,OR
可以使用圆括号改变它们的运算优先顺序;参数名需用中括号[]括起来;IN的目标集合需用大括号{}括起来。

图片:



http://my.oschina.net/bane/blog/36178

更多内容请关注公众号《码上同行》:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

new^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值