51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6705|回复: 8
打印 上一主题 下一主题

[讨论] 正交分解法得出的情况怎么提取有代表性的数据?

[复制链接]
  • TA的每日心情
    无聊
    2024-4-1 11:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2010-11-3 10:35:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    A有0、1两种情况;B有2种情况,C有2种情况,D有2种情况。最终有16种情况。
    0000
    0001
    0010
    0011
    0100
    0101
    0110
    0111
    1000
    1001
    1010
    1011
    1100
    1101
    1110
    1111
    这么多种情况有什么方法从中找出有代表的
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2010-11-10 16:11:34 | 只看该作者
    本帖最后由 Jackc 于 2010-11-15 14:47 编辑

    LZ这个数据可以由基本二级表L8(27)演变生成L8(24).

    由于理论知识比较饶,请LZ仔细阅读以下资料(我也好偷偷懒……): (此资料从理论解释怎么将基本表L8(27)演化为其他类型,比如混合正交表L8(41X24),与本贴LZ问题无关)

    一、L8(27)的结构与形式

    L8(27)的构造中,对第1至第3列和第1行采用如(1)形式的这种标准化排列,则
    正交表的定义出发容易验证:在第4至第7列的第2至第8行的排列中,除了第5至第7列各列
    之间的位置可以交换之外,其排列是唯一的。即L8(27)只有唯一的一种结构。因此,相
    同结构不同形式的L8(27)共有27(7!)=645120种。有关L8的其它性质我们就通过这
    张表来介绍

    1  L8(27)

    列号试验号1234567
    1----+++
    2--+++--
    3-+-+-+-
    4-++---+
    5+--+--+
    6+-+--+-
    7++--+--
    8+++++++

    二、
    L8(27)各列之间的关系

    在表1中,前三列各列之间的位级组合恰好构成一个完全组合。若把第1列、第2列和第3列作
    为基本列,则第123这三列的交互列为第4列。第1列与第2列、第1列与第3列、第2列与
    3列的交互列分别为第5、第6和第7列。用关系式可以表示为

    三、
    4=123, 5=12, 6=13, 7=23  (1)

    这里的黑体数字代表列号,列与列之间相乘等于各列的每一行符号对应相乘所得到的列。
      L8(27)的任意二列的交互列都出现在其它某一列当中,采用与(1)式等价的关系式

    四、
    1234=I, 125=I, 136=I, 237=I  (2)

    其中I表示位级全为“+”的列,可以很容易确定这个交互列。例如,第3列和第4列的交互列
    ,由1234=I125=I推知34=12=5,即
    3列与第4列的交互列和第1列与第2列的交互列都同为第5列。

      L8(27)有一个重要性质:对于任意的三列,如果其中一列为另外两列的交互列,那么,
    这三列之间的八次试验条件恰好是由两个重复的L4(23)所构成;否则,这三列之间的八
    次试验条件恰好构成了一个完全组合(即由两个不同的L4(23)所构成)。因此,L8(2 7)中任意三列共35种组合可以分成这两类:

      第一类,三列之间其中一列为另外两列的交互列,共有7种组合(见表2)

    2

    125
    136
    147
    237
    246
    345
    567

    2正好一个平衡不完全区组设计,共有v=7个处理数,b=7个区组数,每个区组能安排k =3个处理,每个处理出现在r=3个区组,任意两个处理出现在λ=1个区组。
      这7种组合满足关系式

    125=136=147=237=246=345=567=I  (3)

    因此,这些组合的每一种,分辨度都等于3
      第二类,三列之间任意两列的交互列都不是另外一列,共有28种组合(见表3)

    3

    1 2 31 2 61 3 51 4 52 3 52 4 53 4 6
    1 2 41 2 71 3 71 4 62 3 62 4 73 4  7
    1 3 41 6 71 5 71 5 62 5 62 5 73 6 7
    2 3 42 6 73 5 74 5 63 5 64 5 74 6 7

    3也是一个平衡不完全区组设计,其参数为v=7b=28k=3r=12λ= 4
      在表3中,这28种组合分成7组,它们分别是从关系式

    1234=1267=1357=1456=2356=2457=3467=I  (4)

    所导出。因此,这28种组合的每一种,分辨度都等于4
      把式(4)的数字组合列成表(见表4),正好也是一个平衡不完全区组设计,其参数为v=7 b=7k=4r=4λ=2.

    4

    1234
    1267
    1357
    1456
    2356
    2457
    3467

    三、L8的排列组合

    L8(27)任选三列,按表2中的第一类组合选取,则这8次试验所组成的正交L8 (23)结构都相同,都为两个重复的L4(23)(L4(23)也只有一种结构),这个L8(2 3)的强度为2,分辨度为3。按表2中的第二类组合选取,则这8次试验所组成的正交L8 (23)正好是一个完全组合,因此这个L8(23)的强度为3,分辨度为4
      从L8(27)任选四列,则按表47种组合任选一种,组成一个正交L8(24),其任意
    三列都是一个完全组合,即这个L8(24)的强度为3,分辨度为4。这7L8(24)的结
    构是相同的,而且是对称的。如L8(27)中的前四列,第1234号试验条件分别与第 8765号试验条件对称。除了表4的这7种组合之外,其它组合都构不成强度为3、分辨
    度为4L8(24)

      对于L8来说,强度为3或分辨度为4的列最多只有4列。表1L8(27)之所以把第1、第2 和第3列的交互列排在第4列,而不像多数书籍排在第7列,正是因为前四列正好组成一个强
    度为3正交表。这符合因素顺序上列的应用习惯。

      从L8(27)选出强度为3、分辨度为4的四列之后,剩下的三列强度为2、分辨度为3。即L 8(27)是由一个强度为3、分辨度为4L8(24)和一个强度为2、分辨度为3L8(2 3)所构成。
      把表1中前四列的“-”号对应于1“+”号对应于2;最后三列的前4个试验条件和后4个重
    复出现的试验条件分别对应于1234,并把这一列置于前四列之前放在第1列,则得到
    正交L8(41×24)(见表5),这个正交表也是对称的.

    5  L8(41×24)

    [tr][/tr]
    列号试验号12345
    111111
    221122
    331212
    441221
    542112
    632121
    722211
    812222

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2010-11-10 22:26:12 | 只看该作者
    这么复杂啊...
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-2-13 11:02
  • 签到天数: 55 天

    连续签到: 1 天

    [LV.5]测试团长

    4#
    发表于 2010-11-13 15:39:42 | 只看该作者
    回复 2# Jackc


        版主没怎么看懂这个表的含义及L8(27)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2010-11-15 14:42:57 | 只看该作者


    我错了,请无视我上面的一堆东西,因为最开始我一直在想弄一个L8(41X24)……,

    其实“由基本二级表L8(27)演变生成L8(24)”不用这么麻烦,很简单,直接取L8(27)  (二水平七因素正交表)的前4列数据即可,即:


    列号试验号1234
    10000
    20011
    30101
    40110
    51001
    61010
    71100
    81111


    至于LZ的问题,怎么将穷举的用例变为正交的用例,请搜索正交表设计文档。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2010-11-15 15:22:47 | 只看该作者
    回复 4# 819longjiayan


    L8(27)
    L8表示有8条实验项的正交表,(27)表示2水平7因素,也就是有7个测试元素,每个元素有2个属性。如A,,B,C,D,E,F,G
    A =1,2
    B =3,4
    ……
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-2-13 11:02
  • 签到天数: 55 天

    连续签到: 1 天

    [LV.5]测试团长

    7#
    发表于 2010-11-15 16:24:30 | 只看该作者
    本帖最后由 819longjiayan 于 2010-11-15 16:27 编辑

    回复 6# Jackc


       谢谢。。。 周末我回家学习了,终于把它弄明白了,不过现在还没有把正交表中确定几次实验这个原理弄懂。。还要继续学习
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2010-11-15 22:11:58 | 只看该作者
    本帖最后由 liangshi 于 2010-11-15 22:17 编辑

    请参考我的博客文章:《组合测试实施经验小结》 http://www.51testing.com/index.php?uid-298785-action-viewspace-itemid-217580

    摘录:

    1. 不要使用正交表,要使用PICT

    有一些文章介绍了利用正交表构造组合测试用例集的方法。虽然可行,但是正交表并不是理想的组合测试工具。

    首先,正交表的性质并不适用于软件测试。正交表是为正交试验服务的,它求对任意两个因素的取值组合实施“等概率”覆盖,以便实验样本“均匀”地分布在样本空间。“等概率覆盖”有助于在正交试验中确定各个因素对实验结果的贡献,但是对于组合测试提高错误检测能力并没有帮助。受到“等概率覆盖”的约束,正交表往比“覆盖即可”的组合测试工具生成更多的测试用例,提高了测试成本。

    第二,利用正交表构造组合测试用例并不方便。使用正交表构造测试用例,要寻找正确的正交表、对其进行剪裁、替换参数,方能获得测试用例集。如果使用微软提供的组合测试工具PICT,生成测试用例会非常简单。第一步,在文本文件中描述被测试应用的模型(Model),即该软件有哪些因素、每个因素有哪些取值。该文本文件被称为模型文件(Model File)。下面的文本是一个为配置测试所准备的模型文件。其中,以"#"开始句子是注释,正文部分每一行代表一个因素,":"之前是因素名,之后是因素的可能取值。

    #
    # Different machine configurations
    #
    PLATFORM: x86, ia64, amd64
    CPUS:     Single, Dual, Quad
    RAM:      128MB, 1GB, 4GB, 64GB
    HDD:      SCSI, IDE
    OS:        NT4, Win2K, WinXP, Win2K3
    IE:          4.0, 5.0, 5.5, 6.0

    第二步,在命令行上运行"pict.exe model.txt > test_cases.txt"。所生成的文件test_cases.txt是两因素组合测试用例集,其内容如下。
    PLATFORM   CPUS        RAM        HDD         OS             IE
    amd64        Single        4GB        SCSI        Win2K        4.0
    amd64        Dual        128MB        IDE        Win2K3       6.0
    x86            Quad        64GB        SCSI       Win2K3       5.0
    ...

    可见,使用PICT生成组合测试用例非常方便。输入文件和输出文件是易读、易理解的文本文件,测试者可以轻松地理解并修改,测试工具可以方便地解析并运行

    第三,现实世界中的程序是复杂的,它们为组合测试的实施提出了许多挑战。面对这些困难,PICT较正交表有明显的优势。下文将详细介绍组合测试面临的挑战和解决之道。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2010-11-16 11:27:56 | 只看该作者
    本帖最后由 Jackc 于 2010-11-16 11:38 编辑

    回复 8# liangshi

    查了一下PICT的相关资料,确实是不错的工具。将正交表与判定表集成,并用算法完成复杂的数学理论知识。有点像近几年的面向对象语言,“原理你不需要懂,只要会使用指令就ok” :)
       
    另外,针对“1. 不要使用正交表,要使用PICT”,这句话我不赞成哦,本身PICT就是使用了正交表数学理论的工具,无非就是加了个壳而已.....工具嘛,选择合适的工具才是王道,呵呵
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-22 19:22 , Processed in 0.081809 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表