成对组合覆盖 与 PICT 的应用(共8页)_第1页
成对组合覆盖 与 PICT 的应用(共8页)_第2页
成对组合覆盖 与 PICT 的应用(共8页)_第3页
成对组合覆盖 与 PICT 的应用(共8页)_第4页
成对组合覆盖 与 PICT 的应用(共8页)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 成对组合(zh)覆盖与PICT的应用一、成对组合(zh)覆盖简介成对组合覆盖(fgi)这一概念是Mandl于1985年在 HYPERLINK javascript:; t _self 测试Aad编译程序时提出来的。Cohen等人应用成对组合覆盖 HYPERLINK javascript:; t _self 测试技术对Unix中的“Sort”命令进行了测试。测试结果表明覆盖率高达90%以上。可见成对组合覆盖是一种非常有效的 HYPERLINK javascript:; t _self 测试用例设计方法。成对组合覆盖要求任意两个因素(输入条件)的所有水平组合至少要被覆盖1次。组合覆盖的算法已经被

2、很多工具实现,测试人员可以直接利用这些工具,例如:TConfig、 HYPERLINK javascript:; t _self 微软的PICT等。下面介绍一下使用PICT设计测试用例的过程。PICT的应用PICT概述成对组合覆盖测试 工具 PICT 能帮助你有效地设计软件系统测试用例和测试配置 。使用 PIC T生成的测试用例比手工生成的更有效 。 在保证测试覆盖率的前提下 , 尽量缩小参数值组合的。PS:其实pict不单单是成对组合(2阶),其实可以实现多阶组合覆盖,只是默认为2阶使用PICT组合测试用例参数PICT 以命令行方式运行。在运行之前,需要准备一份详细描述了测试参数的模型文件。

3、例如 , 如果你想给分区和卷建立一组测试用例集 , 在这里需要用到以下几个参数 : -类型: Primary , Logical , Single , Span , Stripe , Mirror , RAID-5尺寸: 10 , 100 , 500 , 1000 , 5000 , 10000 , 40000格式方法:快,慢文件系统: FAT , FAT32 , NTFS簇大小: 512 , 1024 , 2048 , 4096 , 8192 , 16384 , 32768 , 65536压缩:开,关-这些参数可能的取值组合超过 4700 个。在合理的时间范围内测试完他们那将是非常困难的一件事

4、情 。 研究表明 , 把所有可能的值成对进行组合能做到很好的测试覆盖且测试用例的数量由此也会变得可控 。 例如 , ( Primary , FAT ) 是一对和 ( 10 , 慢 ) 是另外一对 , 单个测试用例可以覆盖到多个部分。使用上面的参数运行(ynxng) PICT 将产生 60 个测试用例。Eg:modelfile1.txt运行(ynxng)PICTPICT 是一个命令行工具,它接受一个纯文本文件作为(zuwi)输入,然后输出测试用例集。-用法: PICT 模型文件路径 选项 选项:/o:N - 组合次数(默认 :2 )/d:C - 值之间的分隔符 (默认 :, )/a:C - 别名

5、间的分隔符(默认 :| )/n:C - 负值前缀(默认: )/e:file - 种子文件/r:N - 随机生成 ,N 表示产生随机的种子/c - 模型计算区分大小写/s - 显示模型统计数据-PICT 安装程序将会把 PICT 安装到指定的路径 , 然后你可以从指定的目录中运行它 。 要想查看上面例子的 PICT 输出,可使用任何像 Windows 记事本 的文本编辑器创建模型文件,然后运行下面的命令:模型文件模型区域一个模型文件至少包含 1 个区域,最多包含 3 个区域:-参数定义 子模型定义 约束定义 -模型文件中的区域应始终按照上面所列的先后顺序被显示 , 且不能重叠 。 首先是参数定义

6、部分 , 然后是子模型定义和约束定义部分 。 它们之间不需要任何特殊的分隔符 。 空行可以出现(chxin)在任何地方。可以用 “ ” 开启一行注释。、简单(jindn)模型为了产生一个非常基本的模型文件 , 你需要列出参数(cnsh)名称 , 每行一个参数和它可能的取值之间用分号分隔::,.例如:# 这是一个测试 创建 / 删除磁盘卷 功能的简单模型文件Size: 10, 100, 500, 1000, 5000, 10000, 40000File system: FAT, FAT32, NTFSCluster size: 512, 1024, 2048, 4096, 8192, 16384

7、, 32768, 65536逗号是默认的分隔符,可使用 “ /d: ” 选项指定一个不同的分隔符。(模型文件中的符号都需要用英文输入法半角下输入)Eg:modelfile2.txt 、成对和高阶生成默认情况下 , PICT 生成一组成对组合且覆盖所有情况的测试用例集 。 可以使用选项 “ /o:N ”设置比 2 更大的排列次数。例如,如果指定 “ /o:3 ” ,由此生成的测试用例将涵盖所有三个一组的值 , 产生比成对测试更多的测试用例 , 这样测试的覆盖范围就更大 。 对于一个简单的模型文件, PICT 选项 “ /o:N ” 的最大取值应小于等于模型文件中参数的总量。如果 N 取值等于参数

8、总量 , 那参数取值将会涵盖所有可能的组合 。 同样 , 指定 “ /o:1 ” 将产生涵盖所有值一次的测试组合。Eg:modelfile2.txt 执行2阶(即成对组合)时,有56个用例。执行3阶时(即全部覆盖,因为只有3个参数),有168个用例执行1阶时,只有8个用例(因为其中一个参数的最多可能值为8)、子模型子模型允许你将一些参数绑定到组中 , 以得到自定义的组合顺序 。 在某些参数组合需要被更充分测试时,这种方式会很有用。子模型以下面的格式定义:( , , , . ) 例如,子模型对涉及硬件和软件参数结合在一起的测试用例时是十分有用的。没有子模型 ,每个测试用例将产生一个新的 、 唯一

9、的硬件配置 。 将硬件参数放置到一个子模型中可以产生更少的硬件配置,从而尽可能地降低测试成本。使用创建子模型的命令可带来不少灵活性 。-PLATFORM: x86, ia64, amd64CPUS: Single, Dual, QuadRAM: 128MB, 1GB, 4GB, 64GBHDD: SCSI, IDEOS: NT4, Win2K, WinXP, Win2K3IE: 4.0, 5.0, 5.5, 6.0APP: SQLServer, Exchange, Offi PLATFORM, CPUS, RAM, HDD 3 OS, IE 2下图描述了上面的模型是怎么(zn me)产生的:E

10、g:modelfile4.txt(60个用例) modelfile5.txt(20个用例)注意(zh y):1 你可以定义尽可能多的子模型,一个参数可属于多个子模型。模型层次结构可以只是(zhsh)一个层次。2 子模型 order 的取值不能超过它所含参数的数量。在上面的例子中,第一个子模型的 order 可以取 1 到 4 之间的值。3 如果你没有给子模型指定 order 值, PICT 会使用默认的 order 值或使用选项 “ /o ”的值。模型选项、约束:条件约束、无条件约束约束允许你指定域的限制 。 在前面的分区例子中 , 一对 ( FAT,5000 ) 将至少出现在一个测试用例中。

11、但是, FAT 文件系统不能创建大于 4096 MB 的卷。注意,你不能简单地从测试集中删除这样的测试用例 , 因为这个讨厌的用例可能覆盖一些没有出现在其它用例中但有效的测试情况。为了避免丢失有效的测试情况,你可以在生成的过程中排除不可接受的组合。 在PICT 中指定一个约束,像下面这样:-Type: Primary, Logical, Single, Span, Stripe, Mirror, RAID-5Size: 10, 100, 500, 1000, 5000, 10000, 40000Format method: quick, slowFile system: FAT, FAT32,

12、 NTFSCluster size: 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536Compression: on, offIF File system = FAT THEN Size = 4096;IF File system = FAT32 THEN Size = 32000;为了更能看出效果(xiogu),如下例子:Eg:modelfile6.txt1.条件(tiojin)约束 参数及其取值是谓词逻辑的原子部分。它们之间的关系可使用(shyng)这些符号表示 :=,=,=, 和 LIKE 。 LIKE 是一个通用匹配的操作 (* 表示任意

13、多个字符, ? 表示任意一个字符 ) 。约束分为两种:有条件的( if-then-else )和无条件的。Size 10000Compression = OFFFile system like FAT*-操作符 IN 允许指定一组满足明确关系的值:-IF Cluster size in 512, 1024, 2048 THEN Compression = Off;IF File system in FAT, FAT32 THEN Compression = Off;如下面后台的一个检索条件:选择不同的专卖店则有其对应的不同广告标题值(则可用上面的in来明确一组关系值)在 IF 、 THEN 、

14、 ELSE 的语句中可以加入逻辑操作符 NOT 、 AND 和 OR 。可使用圆括号改变它们的运算优先顺序:-IF File system NTFS OR ( File system = 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 1OS_1: Win2000, WinXPSKU_

15、1: Professional, Server, Datacenter, WinPoweredLANG_1: EN, DE# Machine 2OS_2: Win2000, WinXPSKU_2: Professional, Server, DatecenterLANG_2: EN, DEIF LANG_1 = LANG_2THEN OS_1 OS_2 AND SKU_1 SKU_2;2.无条件约束(yush)(不变) 一个不变的声明在一个域中总是(zn sh)有效的限制:# 至少有一对参数不相等才是有意义(yy)的测试用例(使用 OR 运算符)OS_1 OS_2 or SKU_1 SKU_2

16、 or LANG_1 LANG_2;-# 每对参数必须不相等(使用 AND 运算符)OS_1 OS_2 and SKU_1 SKU_2 and LANG_1 LANG_2;Eg:modelfile7.txt、参数类型PICT 使用参数类型的概念。有两种类型的参数: numeric 和 string 。只有所有的值都 是numeric 时才会被认为是 numeric 参数 。 如果一个值有多个名字 , 那么只有第一个会被计算 。只有在评估约束性时类型才是重要的。你只能把 numeric 参数与数字作比较, string 参数与字符串作比较。例如:-Size: 1, 2, 3, 4, 5Value

17、: a, b, c, dIF Size 3 THEN Value b;-默认情况下 , 比较字符串时大小写不敏感 。 你可以指定 “ /c ” 选项以使字符串比较时大小写敏感。 Numeric 值作为数字进行比较。Eg:Modelfile8.txt、负面测试除了测试被称为 “ 正面测试 ” 有效组合外 , 你通常需要测试允许范围之外的值 , 以确保程序适当地处理了错误 。 每个 “ 负面测试 ” 测试用例应该只有一个无效的值 , 因为大多数程序当它们发现第一个错误后就不会再做进一步处理 。 为此 , 就可能发生负面测试中被称之为输入掩盖的问题。一个无效的输入阻止了其他无效输入被测试。eg:检测

18、登陆功能的模型文件Modelfile9.txt注意: 在比较期间 , PICT 不会把前缀作为(zuwi)值的一部分 。 在约束中 , 也不会使用带前缀的值 ,前缀不会影响值的类型 。 前缀会出现在输出结果中。、权重(qun zhn)使用权重 , 您可以强制 PICT 优先(yuxin)接受指定的值 。 权重可以是任何正整数 。 如果你没有显式地指定一个权重,那么 PICT 默认会使用 1 。-# 让我们把焦点放在使用 NTFS 格式化主分区上Type: Primary (10), Logical, Single, Span, Stripe, Mirror, RAID-5SIZE: 10, 1

19、00, 500, 1000, 5000File system: FAT, FAT32, NTFS (10)Eg:modelfile10.txt重要说明: 权重值没有绝对的意义。例如,当一个参数定义如下时:File system: FAT, FAT32, NTFS (10)这并不意味着 NTFS 在输出结果中会是 FAT 或 FAT32 的 10 倍 。 此外 , 你还不能认定你所指定的权重一直会起作用,因为 PICT 还必须要处理两个相互矛盾的要求:1 在最少的测试用例中覆盖所有参数组合2 根据参数的权重进行取值上述 规则 1 的优先级永远比 规则 2 高,只有在选择值时不需要依赖 规则 1

20、,权重才有可能起作用。更确切地说,在创建测试用例的过程中, PICT 会评估所有可能的候选值,然后尽量选择在大多数参数值组合中没有使用过的值 。 有时候多个候选值可能同样重要 。 在这种情况下, PICT 会使用权重去做最终的选择。你可以使用权重尝试将机会偏向一些值,但是 PICT 会决定是否遵守这一要求,到什么程度,使用几个因素,不仅只是权重。Eg:modelfile11.txt大小写敏感性 默认情况下 , PICT 执行所有比较和检查时不区分大小写 。 例如 , 有 OS 、 os 两个参数 , PI会认为它们重名 ( 参数名必须是唯一的 ) 。 PICT 默认也会解除大小写限制 : IF OS = Win2 THEN . 将会匹配 Win2K 和 win2k 两个值(参数值可以不是唯一的 ) 。可以使用选项 “ /c使模型计算时完全区分大小写。、大小写敏感性警告信息约束或 条件 定义出错的警告应当引起注意 。 PICT 在生成过程中发现有语法错误时不会停止它仍然能生成一些有意义的结果 。 然而 , 如果你看到这些警告后 ,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论