zoukankan      html  css  js  c++  java
  • 测试:如何选择合适的正交表

    需求:
    窗体中有多个控件(字体、字符样式、颜色、字号),

    每个控件有多个取值

    字体:仿宋、楷体、华文彩云

    字符样式:粗体、斜体、下划线

    颜色:红色、绿色、蓝色

    字号:20号、30号、40号

    如果按照正常步骤进行,需要 3*3*3*3=81 种组合,就需要写81个测试用例,显得比较多,针对这种组合量比较大的情况,如何采用最少的测试用例集合获得最大的测试覆盖率呢,就可以采用  正交排列法(---定义:正交排列法就是能够使用最小的测试过程集合获得最大的测试覆盖率。附:这是统计学的一个研究成果)。

    正交表的类别
    可分为:单一水平正交表 和 混合水平正交表。

    单一水平正交表:各列水平数相同的正交表称为等水平正交表。比如:L9 (3**4) -->(附:括号里意思为3的4次方,下同。)、L2 7(3**13) 称为3水平正交表。 L4 (2**3)、L8 (2**7) 称为2水平正交表。单一水平正交表可以用 Ln(m**k) 表示,n是行数,m是水平数,k是因数。比如上边需求示例:可以理解为4因数(字体,字符样式,颜色,字号),3水平(意思是每个因数里都有三个选项,比如:字体里有 仿宋、楷体、华文彩云 3个选择)。一般情况下,我们可以直接确定m和k,n 可以根据水平数和因数计算行数,公式为:n=k*(m-1)+1。

    混合水平正交表:各列水平数不完全相同的正交表称为混合水平正交表。比如:L8 (4**1    2**4)-->(附:括号里意思为4的1次方 和 2的4次方。意思为表中共有8行,有一列的水平为4,有4列的水平为2。)。混合水平正交表可以用 Ln(m1**k1    m2**k2) 表示。一般情况下,我们可以直接确定m和k,n 可以根据水平数和因数计算行数,公式为:n=k1*(m1-1)+k2*(m2-1)+k3*(m3-1)......+ kx*(mx-1) + 1。

    查看正交表

    http://support.sas.com/techsup/technote/ts723_Designs.txt

    如何选取合适的正交表
    假如我们确定有3因数2水平,计算n=3*(2-1)+1=4,应该表示为 L4(2**3),那么我们看看有木有和这个正好相等的正交表,如果有,那么把变量值复制进去这个表中,如果没有,按照如下方法选取:

    1. 水平数相等,因数相等时,取行数刚好比自定义正交表略大的

    2. 水平数相等,因数不相等时,取行数刚好比自定义正交表略大的,因数刚好比自定义正交表略大的。比如:自定义为:                 L7(3**3), 我们选取为 L9(3**4), 套用之后,最后一列因素去掉

    3.  水平数不相等时,即:混合正交表。

    例:

    有五个因素(变量):

      A、B、C、D和E

      两个因素有两个水平(变量的取值)、两个因素有三个水平,一个因素有六个水平:

      A:A1、A2

      B:B1、B2

      C:C1、C2、C3

      D:D1、D2、D3

      E:E1、E2、E3、E4、E5、E6

    自定义为:L11(2^2 3^2 5^1)

    选择正交表:

          表中的因素数(变量)>=5

      表中至少有二个因素的水平数(变量的取值)>=2

      至少有另外二个因素的水平数>=3

      还至少有另外一个因素的水平数>=6

      行数取最少的一个:L49(7^8)或者L18(3^6 6^1))

    结果:L18(3^6 6^1)
    例:

    m1=5   k1=5

    m2=2   k2=1

    n=22

    自定义为:L22(5^5   2^1)

    没有正好等于22的正交表,此时选择大于22并且满足m>=max(m1=5, m2=2),   k>=k1+k2=6 的正交表,查到有

    L25(5^6)、L49(7^8) 都符合,选择行数少的,即:最终选择 L25(5^6)

    对于混合正交表,可以使用allpairs工具辅助我们进行选择。

    allpairs工具使用:

    1)制作取值表(不要编号) 因素和水平 (因素是一行 。。。。 )

    2)制作的取值表复制到一个txt文本中(不要改格式) user.txt

    3)把txt文本放入allpairs工具的文件夹中

    4)在文件夹中运行 cmd (我到达了这个文件夹下面)

    4)在allpairs工具的文件夹路径下使用DOS命令:

    allpairs.exe 建立的txt文本 > 用例结果文本(可以不存在)

    例:


    ————————————————
    版权声明:本文为CSDN博主「殇夜07」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/l1159015838/article/details/93773291

    十年太长,只争朝夕
  • 相关阅读:
    ModbusRTU模式和结束符(转)
    modbus字符串的结束符介绍
    IAR平台移植TI OSAL到STC8A8K64S4A12单片机中
    实时系统概念
    单片机的存储区范例
    如何实现返回上一个页面,就像点击浏览器的返回按钮一般
    spring项目中的定时任务实现和问题解决
    context-param与init-param的区别与作用
    Chapter 1 First Sight——16
    一个好用简单的布局空间EasyUI
  • 原文地址:https://www.cnblogs.com/lu-tao/p/11813644.html
Copyright © 2011-2022 走看看