模型选项

约束

约束允许指定参数的限制。在前面的分区示例中,{ {FAT,5000 }将出现在至少一个测试案例中。但是,FAT文件系统不能创建大于4096 MB的卷。请注意,不应该简单地从测试套件中删除这些不符合的测试用例,因为一个非法的测试用例可能覆盖到某些没有出现在其它有效用例中的可能有效的对。为了避免漏掉有效的值对,应该在生成测试用例的过程中消除无效的组合。可以像下面的例子这样在PICT中指定约束:

Type:          Primary, Logical, Single, Span, Stripe, Mirror, RAID-5

Size:          10, 100, 500, 1000, 5000, 10000, 40000

Formatmethod:  quick, slow

Filesystem:    FAT, FAT32, NTFS

Clustersize:   512, 1024, 2048, 4096, 8192, 16384, 32768, 65536

Compression:   on, off

IF [File system] ="FAT"   THEN [Size] <= 4096;

IF [File system] ="FAT32" THEN [Size] <= 32000;

约束可以分为两类:条件约束和非条件约束(三元运算符)。

条件约束

术语[参数]关系值是谓词的原子部分。可以使用以下关系::=,>,>,>,<,>,LIKE。LIKE是一个操作符(*通配符匹配任意字符,?一个字符)。

[Size] < 10000

[Compression] ="OFF"

[File system] like"FAT*"

运算符IN允许指定一组明确满足关系的值.:

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

IF [File system]in {"FAT", "FAT32"}   THEN [Compression] ="Off";

IF,THEN,和ELSE可能包含由逻辑运算符加入的多个术语:NOT,ANT和OR。为了更改默认运算符优先级,可以使用圆括号:

IF [File system]<> "NTFS" OR

( [Filesystem] =  "NTFS" AND [Cluster size] > 4096 )

THEN [Compression]= "Off";

IF NOT ([File system] = "NTFS" OR

( [File system] = "NTFS" AND NOT[Cluster size] <= 4096 ))

THEN [Compression]= "Off";

参数可以与其他参数进行比较,如在本例中:

#

# Machine 1

#

OS_1:  Win2000, WinXP

SKU_1: Professional, Server, Datacenter, WinPowered

LANG_1: EN, DE

#

# Machine 2

#

OS_2:  Win2000, WinXP

SKU_2: Professional, Server, Datecenter

LANG_2: EN, DE

IF [LANG_1] =[LANG_2]

THEN [OS_1]<> [OS_2] AND [SKU_1] <> [SKU_2];

无条件约束(不变量)

不变量声明了一个域始终有效的限制.:

#

# At least oneparameter must be different to be a meaningful test case (use the OR operator)

#

[OS_1] <>[OS_2] or [SKU_1] <> [SKU_2] or [LANG_1] <> [LANG_2];

#

# All parametersmust different (use the AND operator)

#

[OS_1] <>[OS_2] and [SKU_1] <> [SKU_2] and [LANG_1] <> [LANG_2];

参数类型

PICT使用参数类型的概念。有两种类型的参数:字符串和数字。参数只有它的取值是数值时才被认为是数字。如果一个值有多个名称,只有第一个计数。在评估约束时,类型是唯一重要的。只能将数值参数与数字进行比较,将字符串参数与其他字符串比较。例如:

Size:  1, 2,3, 4, 5

Value: a, b, c, d

IF [Size] > 3THEN [Value] > "b";

字符串比较是默认词典序的,不区分大小写。可以通过 / C选项设置大小写敏感。数值作为数字进行比较。

别名

使用别名可以为一个值指定多个名称。多个名称不改变模型的组合复杂性。不管一个值有多少个名称,它被视为一个实体。唯一的区别体现在输出中;任何测试用例,通常会通过它的一个名称来代替。下面的示例显示了别名的实际应用。在大多数情况下,你可以在微软的Windows 2000 Server和微软Windows 2000 Advanced Server中忽略他们的差异。因此,测试人员可能决定只测试一个版本,从而减少测试用例的数量。然而,为了增加测试的信心,你可能会决定将测试版本互换代替。指定一个具有两个名称的值将导致在不添加额外的测试用例的情况下,输出不确定的结果。

默认情况下,名称应分“|”(管道)分隔,也可以通过使用/a选项来设置其它分隔符。

#

# Machine 1

#

OS_1:  Win2000, WinXP

SKU_1: Professional, Server|AdvServer, Datacenter, WinPowered

LANG_1: EN, DE

#

# Machine 2

#

OS_2:  Win2000, WinXP

SKU_2: Professional, Server|AdvServer, Datecenter

LANG_2: EN, DE

#

# WinXP is alwaysProfessional in our case

#

if [OS_1] ="WinXP" then [SKU_1] = "Professional";

if [OS_2] ="WinXP" then [SKU_2] = "Professional";

#

# NoGerman WinPowered

#

if [SKU_1] ="WinPowered" then [LANG_1] = "EN";

#

# Let’s nottest the same OS on both sides

#

[OS_1] <>[OS_2];

注:当评估约束,PICT只使用第一个名字。例如,[ sku_1 ] =“Server”将匹配第2个值。但[ sku_1 ] =“AdvServer”将匹配不到任何值。另外,PICT只使用第一个名字来确定一个值是数值与否。

非法性测试

除了测试有效的组(称为“正向测试”),通常还需要使用允许范围以外的值来测试程序是否正确处理错误。每个“负向测试”测试用例应该只有一个无效值,因为大多数应用程序在检测到第一个错误时会执行一些失败的操作。出于这个原因,一个被称为输入掩蔽的问题,会发生在非法性测试中。一个无效输入阻止另一个无效输入被测试。

考虑以下函数需要两个参数:

float SumSquareRoots(float a, float b )

{

if (a < 0 ) throwerror;           // [1]

if (b < 0 ) throwerror;           // [2]

return ( sqrt(a ) + sqrt( b ));

};

虽然函数中,a和b可以取任意值,但是只对非负数的计算是有意义的。因此,函数通过[ 1 ]和[ 2 ] 执行参数验证。现在,假设一个测试用例(A = 1,B = - 1)被用来做非法性测试。在这里,a= - 1 其实掩盖了b=-1,因为检查[ 2 ]从来没有得到执行。如果没有单独验证[ 2 ]的用例,这种错误场景将无法被测试到。

为了防止输入屏蔽,重要的是在同一测试用例中不使用两个无效值(两个不同的参数).。带前缀“~”的任意值都是无效的。可以通过选项/n 指定一个其它的前缀。

#

# Trivial modelfor SumSquareRoots

#

A: ~-1, 0, 1, 2

B: ~-1, 0, 1, 2

在这个例子中,所有可能的合法值对都会被覆盖到,同时,所有可能的非法值都会和所有合法值组对至少一次。

A      B

2      0

2      2

0      0

0      1

1      0

2      1

0      2

1      2

1      1

~-1    2

1      ~-1

0      ~-1

~-1    1

2      ~-1

~-1    0

注:

1 图不包括前缀作为值的一部分中的比较。在约束中,使用没有前缀的值.。一个有效的约束将是:if[ A ]= - 1,then [B] = 0。前缀也不影响值的类型。例如,上述示例中的两个参数都是数值的,尽管在一些值中有非数值char“~”。前缀将出现在输出中。

2 如果一个值有多个名称,只有在第一个名称上加前缀会使值非法。

权重

使用权量,可以使PICT倾向于某些取值。一个权重可以是任何正整数。如果不明确指定不同的权重,PICT默认使用“1”:

#

# Let’s focuson primary partitions formatted with NTFS

#

Type:          Primary (10), Logical, Single, Span, Stripe, Mirror, RAID-5

Formatmethod:  quick, slow

Filesystem:    FAT, FAT32, NTFS (10)

重要提示:权重值没有绝对意义。例如,当参数定义如下:

File system:    FAT, FAT32, NTFS (10)

这并不意味着将出现在输出十倍fat或fat32。此外,你不能确定你所指定的权重会起作用,因为PICT必须处理两个潜在矛盾的要求:

1 以最小数量的测试用例覆盖所有组合。

2 根据权值选择值。

(1)总是优先于(2),只有当一个值的选择不是由满足需要来决定时,权重才会被尊重(1)更具体地说,测试用例的生成过程中,对候选值,PICT总是选择一个,涵盖了大部分的还未使用的组合。有时在候选值之间有一个关系,没有一个选择比其他任何一个都好。在这些情况下,PICT使用权重做出最后的选择。你可以使用重量企图转移偏向一些值,但PICT决定是否履行这一要求,到什么程度,使用多个因素,不仅仅是通过权重来决定的。

种子

种子有以下两种可能的需求:

1允许指定必须出现在任意测试套件中的重要的组合。PICT将使用提供的必选组合初始化输出,然后完成测试用例的其它部分,同时需要确保所有n阶组合都覆盖到。

2当需要修改模型时,它可以时输出的更改最小化。你可以提供前一次结果给PICT, PICT将尽可能重用已有的测试用例。

种子行必须在单独的文件(一个种子文件)中定义。使用选项/ e指定文件位置:

pict.exe model.txt / E:seedrows.txt

种子文件和PICT的输出结果使用相同的格式。第一行包含由制表符分隔的参数名,每个后续行包含一个与值分隔的种子行。使用Windows记事本或Excel可以很容易地创建这种格式。为种子文件使用PICT输入结果的格式使得可以把一个PICT的输出结果作为种子输入到新的测试用例中。

Ver   SKU   Lang  Arch

Win2K Pro   EN    x86

Win2K       DE    x86

WinXP Pro   EN    ia64

任何种子行都是给所有参数指定值。或者也可能省略某些参数的值,如上述种子文件第二行没有SKU的值。在这种情况下,PICT将选择SKU的最佳值。

重要事项:

当前模型有几个匹配种子行的规则:

1 如果一个种子文件包含一个不在当前模型中的参数,PICT将丢弃该参数所在的列。

2 如果种子行包含一个不在当前模型中的值,PICT将从种子行删除该值。PICT只会使用种子行中的有效值,一个包含了无效值的种子行将成为不完整的行。

3 如果一个种子行违反了现行的约束,PICT将忽略该行。

如果(1)或(2)发生, PICT会打印警告信息。

在PICT中使用种子时,有些格式会产生企业:

1 空白的参数和值名称。

2参数和值名称包含制表符。

3 对于一个参数,值的名称和别名不是唯一的。

如果在你的模型中存在上述问题,PICT也会打印警告信息。

输出的随机性

如果使用相同的模型和选项重复运行几次,每次运行将产生相同的测试用例。可以通过使用/r选项产生随机输出。随机生成将该测试套件的种子打印到错误输出流。可以使用该种子值重新创建一个测试用例集。

减少测试用例的数量

生成过程的效率在很大程度上取决于启动条件。每一个测试套件生成需要保证覆盖所有必要的组合,但一些启动点可能会导致生成测试用例更加有效。如果你需要减少测试用例的数量,可以尝试用/ r选项执行多次,然后筛选出最少的测试用例。

大小写敏感性

默认情况下,PICT所有的比较和检查,都是不区分大小写的。例如,如果有定义两个参数OS和os,PICT认为是重复的名称(参数的名称必须是唯一的)。默认情况下,PICT处理约束也是不区分大小写的:IF [OS] = "Win2K" THEN,将同时匹配Win2k和win2k的值。可以使用/ c选项指定模型区分大小写。

返回目录

结对测试工具PICT用户手册(4)——模型选项相关推荐

  1. 结对测试工具——PICT用户手册(中文版)

    结对测试工具PICT用户手册 --中文版 Jacek Czerwonka, Test Lead, Microsoft Corporation  结对测试(pairwise testing)是近几年兴起 ...

  2. 组合测试工具PICT的安装及使用

    组合测试工具PICT PICT简介 安装步骤 使用步骤 PICT简介 PICT工具就是在微软公司内部使用的一款成对组合的命令行生成工具,现在已经对外提供,可以在互联网上下载到· PICT 可以有效地按 ...

  3. 软件测试“因子表”使用测试工具PICT下载安装,PICT中文乱码问题,pict下载百度网盘分享

    有没有思考过"如何让有限的测试具有代表整体的测试覆盖率"? 在测试工作中,经常会遇到这样的场景:一个软件功能有多个输入项,每个输入项有多个可选项:一个接口有多个参数,每个参数有多个 ...

  4. 软件测试--QQ状态(PICT测试工具生成决策表)

    上周四在上软件测试课的时候,老师在课的最后布置了一道题.图片大致如下: 大概的意思就是根据上述的关系,用PICT测试工具来编写并生成决策表.由于我是初学者,也是第一次接触测试工具,接下来也就为自己记录 ...

  5. MATLAB/ SIMULINK模型在环MIL测试工具,自动化模型测试工具,自动生成测试报告

    MATLAB/ SIMULINK模型在环MIL测试工具,自动化模型测试工具,自动生成测试报告. 软件纯自己编写,经过长时间测试,包教会. 使用简单,可以参考如下截图. ID:9720006772002 ...

  6. 第一百一十四期:盘点十大最新Web UI测试工具

    本文为您盘点目前十大最新Web UI测试工具的各自优缺点,以方便您根据实际情况进行选择. 作者:陈峻 在过去的几年中,业界至少出现了十二种全新的UI测试自动化工具.虽然每一种工具都有各自的侧重点,但是 ...

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

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

  8. 安全测试工具_选型必看:DevOps中的安全测试工具推荐

    作者 | Sudip Sengupta 策划 | 田晓旭 在今天的文章中,我们将共同探讨 DevOps 领域中应用最为广泛的安全工具与方法. 从策略层面来讲,安全测试工具可以融入 DevOps 工作流 ...

  9. Web应用程序测试工具Top20

    Web应用程序测试工具可提高可靠性,缩短周转时间并提高ROI. 它们是各种类型的工具,可以协助从需求捕获到测试管理等各种Web测试活动.以下是包含主要功能和下载链接的顶级Web测试工具的精选列表. 下 ...

最新文章

  1. 【自然语言处理】正向、逆向、双向最长匹配算法的 切分效果与速度测评
  2. python实现简易版成绩管理系统_Python 实现简易版成绩管理系统!
  3. python主要就业方向-四种Python高薪就业方向
  4. UA MATH564 概率论 QE练习 Glivenko–Cantelli定理
  5. Eclipse不能导入工作区项目的解决和win10下JDK的path环境变量
  6. CentOS6.x下GitLab安装
  7. 在Mac系统下架设WiFi热点,对比Win7
  8. SQLserver锁和事务隔离级别的比较与使用
  9. figure字体 latex_LaTeX字体设置(一)
  10. CamScanner扫描全能王视频教程-Array老师-专题视频课程
  11. linux7.5有哪些版本,CentOS Linux 7.5正式发布,基于Red Hat Enterprise Linux 7.5
  12. 证书有效性验证、根证书
  13. css border:solid实线,dashed虚线;dotted点状,,double双线
  14. springboot源码解析,kafkaredis面试题
  15. 专访宜信CTO向江旭:技术应当服务于场景,AI天生适合金融业
  16. PPT提示缺少字体怎么解决?
  17. 磁带机的几种状态??
  18. Unity求点在平面的投影点
  19. linux不显示联网图标_Ubuntu linux 面板网络图标消失--》寻回图标方法总结
  20. 每日一题之 hiho235周 润秒(简单模拟)

热门文章

  1. 中拓互联解密:一个购物码,可以玩出什么花样?
  2. 为什么要新零售 新零售的“人、货、场”需要哪些变化?
  3. 蚁群算法(AI导论)
  4. 海思SD3403/SS928开发(二)环境搭建
  5. 国内的linux系统,盘点2011国内仅存的几款Linux操作系统
  6. PTA 7-143 降价提醒机器人
  7. 震撼发布2017年Android百大框架排行榜
  8. 电脑特别,电脑太卡怎么办,教您电脑很卡如何解决
  9. [luogu P3960] [noip2017 d2t3] 队列
  10. 国家拟应用物联网技术建中药材追溯体系