📜  组合测试中的测试配置生成

📅  最后修改于: 2021-08-27 17:43:33             🧑  作者: Mango

测试配置生成是组合测试设计过程的重要组成部分。组合设计过程如下图所示:

从上图可以看出,组合测试设计过程包括3个主要步骤:

  • 输入空间和配置空间的建模。
  • 在组合设计过程的帮助下生成组合对象。获得的组合对象是一系列因素和水平。
  • 使用组合对象生成测试集或测试配置。

笔记 :
输入变量称为因子,可分配给因子的值称为级别

测试设计算法:
为了设计测试配置,我们使用了“测试设计”算法。该算法将n个因子(输入变量)作为输入,并输出一组因子组合,以便覆盖所有级别对。测试设计算法具有以下步骤:

  1. 重新标记因素:
    给定的因子必须首先重新标记为F1,F2,F3,….. Fn使得:
    |F1| >= |F2| >= |F3| >= .........|Fn-1| >= |Fn| 
    
    Let b = |F1| and k = |F2|
    
    Here, |Fi| is the number of levels in Factor Fi
    
  2. 准备一张桌子:
    创建一个表,其中包含n个列,分别标记为F1,F2,F3,…..Fn和(bxk)行数,分为b个块。在这里,每个块包含k行。下面显示了一个样本表,其中n = b = k = 3:

  3. 填充列F1和F2:
    我们在F1列中的第1块填充1,在第2块填充2s,其他块也类似。对于F2列,我们用顺序1、2、3…填充块1。第1到k行中的k,并在其余块中重复此步骤。样本表如下所示:

  4. 找到k阶的MOLS并填充其余的列:
    在填充列之前,我们必须首先了解MOLS以及如何找到它们。

    MOLS(相互正交的拉丁方)用于从完整集中选择因子组合的子集。 n阶拉丁方是一个nxn矩阵,其中没有元素在行和列中出现多次。

    示例1:
    如果S = {X,Y},则2阶拉丁方将为:

    X  Y
    Y  X
    
    and
    
    Y  X
    X  Y    
    

    示例2:
    如果S = {1,2,3},则3阶拉丁方将为:

    1  2  3
    2  3  1
    3  1  2
    
    and 
    
    2  3  1
    1  2  3
    3  1  2
    
    and
    
    2  1  3
    3  2  1
    1  3  2
    

    要构建拉丁广场,请使用n个不同的元素创建第一行,并通过排列第一行来填充其他行。例如,

    如果S = {1,2,3,4},那么一个拉丁方可以是:

    1  2  3  4
    2  3  4  1
    3  4  1  2
    4  1  2  3
    

    要创建MOLS ,令M1和M2为两个拉丁方,每个拉丁方为n阶。

    令M1(i,j)和M2(i,j)分别表示拉丁方M1和M2中第i行和第j列的元素。现在,我们从M1和M2创建一个nxn矩阵L,使得L(i,j)为M1(i,j)M2(i,j),即,将M1和M2的相应元素并置。

    如果L中的每个元素恰好出现一次(即唯一),则称M1和M2是n阶的相互正交的拉丁方。

    例如,

    1  2  3                2  3  1            
    Consider M1 =   2  3  1    and, M2 =   1  2  3
                    3  1  2                3  1  2
    

    因此,L将构造如下:

    12  23  31
    L =     21  32  13
            33  11  22
     

    由于L中的元素是唯一的,所以M1和M2是3阶的MOLS。

    笔记 :
    当n是质数或质数的幂时,则MOLS(n)包含n -1个MOLS。
    同样,对于n = 2和n = 6,不存在MOLS,但是对于大于2的所有其他值,它们确实存在。

    现在,我们可以找到k阶的MOLS来填充剩余的列。将这些MOLS编号为M1,M2,依此类推。
    在此,s 1,其中s = k阶的MOLS数。用来自M1的列1的元素填充F3列的块1,使用来自M1的列2的元素填充块2,依此类推。

    如果b> k,则重用M1的列以填充剩余(bk)块中的行。使用MOLS M2到Ms对F4到Fn列重复此过程。如果s

    例如,

    If n = k = 3
    

    那么第3阶的MOLS是:

    1  2  3                 1  2  3
    M1 =     2  3  1    and, M2 =    3  1  2
             3  1  2                 2  3  1
       

    我们可以使用这些MOLS填充表格的其余列。请参阅下面显示的表格以获得更好的理解。

  5. 检查是否满足约束条件:
    如果没有给出约束,则应跳过步骤5和6。否则,如果行中的条目不满足给定的约束,则应在框上标记它们。约束可以这样给出:
    • Safari浏览器仅支持Mac OS。
    • Firefox浏览器可在Windows和Linux上运行。
    • Windows操作系统仅支持LAN和PPP协议。
  6. 删除不满足给定约束的配置:
    必须删除表中以方框突出显示的配置。这是通过遵循两步过程将其删除并保留成对覆盖率来完成的:
    1. 修改突出显示的行,以便保留约束。
    2. 添加新配置,以覆盖替换突出显示的行时未被发现的对。
  7. 用给定的因子值替换列中的数字:
    在这一步中,我们最终通过将表列中的值替换为因子的实际值来获得测试配置。例如,

    如果F1是称为操作系统的因素,并且F1的级别包括{MacOs,Windows,Linux}

    然后,如果列F1具有类似的值:

    2
    3
    1 

    然后,应按以下方式替换它们:

    Windows
    Linux
    MacOS
    

    其中Windows,Linux和MacOS分别代表2、3和1。

对所有列执行此步骤后,获得的表将包含最终测试配置。