1.一种软件测试用例的生成方法,用于获得覆盖预设k+1种软件类型、且各种软件类型分别包括v+1个可选测试软件的软件测试用例方案,其特征在于,按如下方法执行:步骤A.针对两两不同软件类型的可选测试软件的组合测试方案设计问题,获得相对应构造覆盖阵列CA(2,k+1,v+1)问题,然后进入步骤B;
步骤B.应用进化算法生成初始覆盖向量组,然后进入步骤C;
步骤C.基于初始覆盖向量组,应用矩阵循环模加方法,构造满足参数要求CA(2,k+1,v+
1)的覆盖阵列,然后进入步骤D;
步骤D.将覆盖阵列转化为所对应的软件测试用例方案;
上述步骤B包括如下步骤B1至步骤B5;
步骤B1.初始化向量组B的取值为空集,以及初始化迭代次数n=1,然后进入步骤B2;
步骤B2.使用修正算子更新向量组B,使得向量组B中各向量中两两数据对象之间位置差覆盖满足 要求的集合C,并针对迭代次数n进行加1更新,其中,Zv={0、1、…、v‑1},然后进入步骤B3;
步骤B3.判断迭代次数n的值是否等于预设第一最大迭代次数N,是则即获得N个向量组B,并进入步骤B4;否则返回步骤B2;其中,预设第一最大迭代次数N为正偶数;
步骤B4.迭代执行如下步骤B4‑1至步骤B4‑2,直至满足预设迭代溢出条件,然后进入步骤B5;
步骤B4‑1.根据N个向量组B分别所包含向量的个数,按分别所包含向量个数由小至大的顺序,针对N个向量组B进行排序,并按预设规则选择该排序中的前P个向量组B,并定义该前P个向量组B中的第一个向量组B为当前迭代最优解,然后进入步骤B4‑2;
步骤B4‑2.分别针对N个向量组B中除前P个向量组B以外的剩余各个向量组B,按预设规则针对向量组B进行更新,使得该向量组B中各向量中两两数据对象之间位置差覆盖满足要求的集合C,进而更新N个向量组B中除前P个向量组B以外的剩余各个向量组B;
步骤B5.根据N个向量组B分别所包含向量的个数,选择其中最小包含向量个数所对应的向量组B,构成初始覆盖向量组。
2.根据权利要求1所述一种软件测试用例的生成方法,其特征在于:所述步骤B4‑1中,按 由N个向量组B的排序中选择前P个向量组B,其中,a表示预设选择比例, 表示向上取整;或者按P=(N/2),由N个向量组B的排序中选择前P个向量组B。
3.根据权利要求1所述一种软件测试用例的生成方法,其特征在于:所述步骤B4‑2中,分别针对N个向量组B中除前P个向量组B以外的剩余各个向量组B,执行如下步骤B4‑2‑1至步骤B4‑2‑3,针对向量组B进行更新,使得该向量组B中各向量中两两数据对象之间位置差覆盖满足 要求的集合C,进而更新N个向量组B中除前P个向量组B以外的剩余各个向量组B;
步骤B4‑2‑1.应用当前最优解,针对向量组B进行替换更新,并进入步骤B4‑2‑2;
步骤B4‑2‑2.由该向量组B中随机删除一个向量,针对该向量组B进行更新,并进入步骤B4‑2‑3;
步骤B4‑2‑3.使用修正算子更新该向量组B,使得该向量组B中各向量中两两数据对象之间位置差覆盖满足 要求的集合C。
4.根据权利要求3所述一种软件测试用例的生成方法,其特征在于:所述步骤B2、以及所述步骤B4‑2‑3中,分别按如下步骤a)至步骤d),使用修正算子更新向量组B,使得向量组B中各向量中两两数据对象之间位置差覆盖满足 要求的集合C;
步骤a)计算当前向量组B中各向量中两两数据对象之间位置差集合,若该集合已覆盖集合C,则修正完成,得到一组符合要求的向量组B,返回向量组B,并退出流程;否则任意选取集合C中未被所覆盖的一个数据对象x,并进入步骤b);
步骤b)由Zv中随机选择k个数据对象,构成长度为k的行向量u,并进入步骤c);
步骤c)随机选择行向量u中的一个位置,修改该位置的值,使行向量u的位置差覆盖该数据对象x,然后进入步骤d);
步骤d)将行向量u添加至向量组B中,针对向量组B进行更新,返回到步骤a)。
5.根据权利要求1所述一种软件测试用例的生成方法,其特征在于:所述步骤B4中的预设迭代溢出条件包括预设第二最大迭代次数、或者预设N个向量组B所构种群经迭代所满足的预设收敛条件。
6.根据权利要求1所述一种软件测试用例的生成方法,其特征在于:所述步骤C包括如下步骤C1至步骤C4,构造满足参数要求CA(2,k+1,v+1)的覆盖阵列;
步骤C1.分别针对初始覆盖向量组中的各个向量Bi=(vi,0、vi,1、…、vi,k‑1),获得向量Bi所对应的循环矩阵,并在该矩阵左侧加一全零列,构成该向量Bi所对应的矩阵Mi如下,其中,i=1、2、…、m,m表示初始覆盖向量组中向量的个数,然后进入步骤C2;
步骤C2.分别针对各向量Bi所对应的矩阵Mi,按如下:
获得矩阵Mi所对应的v个模加矩阵 进而获得各向量Bi分别所对应的v个模加矩阵然后进入步骤C3;
步骤C3.按如下:
构造特殊矩阵M0,然后进入步骤C4;
步骤C4.将所有模加矩阵 以及特殊矩阵M0按块竖直排列,构成满足参数要求CA(2,k+1,v+1)的覆盖阵列,共kmv+v+1行。
7.根据权利要求1所述一种软件测试用例的生成方法,其特征在于:所述步骤D中,将覆盖阵列中属于Zv∪{∞}中的各个元素分别替换为各个可选测试软件,即构成软件测试用例方案,其中,每一行表示k+1个可选测试软件进行一次测试。