测试配置生成是组合测试设计过程的重要组成部分。组合设计过程如下图所示:
从上图可以看出,组合测试设计过程包括3个主要步骤:
- 输入空间和配置空间的建模。
- 在组合设计过程的帮助下生成组合对象。获得的组合对象是一系列因素和水平。
- 使用组合对象生成测试集或测试配置。
笔记 :
输入变量称为因子,可分配给因子的值称为级别。
测试设计算法:
为了设计测试配置,我们使用了“测试设计”算法。该算法将n个因子(输入变量)作为输入,并输出一组因子组合,以便覆盖所有级别对。测试设计算法具有以下步骤:
- 重新标记因素:
给定的因子必须首先重新标记为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
- 准备一张桌子:
创建一个表,其中包含n个列,分别标记为F1,F2,F3,…..Fn和(bxk)行数,分为b个块。在这里,每个块包含k行。下面显示了一个样本表,其中n = b = k = 3: - 填充列F1和F2:
我们在F1列中的第1块填充1,在第2块填充2s,其他块也类似。对于F2列,我们用顺序1、2、3…填充块1。第1到k行中的k,并在其余块中重复此步骤。样本表如下所示: - 找到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,依此类推。
在此,s1,其中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和6。否则,如果行中的条目不满足给定的约束,则应在框上标记它们。约束可以这样给出:- Safari浏览器仅支持Mac OS。
- Firefox浏览器可在Windows和Linux上运行。
- Windows操作系统仅支持LAN和PPP协议。
- 删除不满足给定约束的配置:
必须删除表中以方框突出显示的配置。这是通过遵循两步过程将其删除并保留成对覆盖率来完成的:- 修改突出显示的行,以便保留约束。
- 添加新配置,以覆盖替换突出显示的行时未被发现的对。
- 用给定的因子值替换列中的数字:
在这一步中,我们最终通过将表列中的值替换为因子的实际值来获得测试配置。例如,如果F1是称为操作系统的因素,并且F1的级别包括{MacOs,Windows,Linux}
然后,如果列F1具有类似的值:
2 3 1
然后,应按以下方式替换它们:
Windows Linux MacOS
其中Windows,Linux和MacOS分别代表2、3和1。
对所有列执行此步骤后,获得的表将包含最终测试配置。