【技术实现步骤摘要】
基于QIS的二值覆盖表生成方法
[0001]本专利技术涉及软件或硬件测试
,具体为基于QIS的二值覆盖表生成方法。
技术介绍
[0002]现今,有越来越多软件的输入参数的取值都是离散的,参数间的不同离散取值组合影响、控制这软件的行为,软件故障通常由这些参数的取值组合触发,如果希望通过软件测试来保障软件的质量,需要尽可能多地测试这些参数的取值组合,然而,组合的个数随着参数个数和各个参数取值个数的增加而呈指数增长,测试空间将是巨大的,要想穷尽地测试是不现实的,实际中,80%以上的故障是由两个或者三个参数的取值组合触发,因而只需测试部分组合即能达到很好的测试效果。
[0003]组合测试即测试组合的方法,一般事先指定要测试的组合的大小,即测试强度t,然后生成t
‑
way覆盖表,使得任一大小为t的组合至少能出现在覆盖表的某一行,即实现t
‑
way覆盖。t
‑
way覆盖表能测出所有大小为t以及小于t的故障组合,有效性很高,在工业界具有广泛的应用,测试人员总是期望生成尽可能小的覆盖表,但最小覆盖表的生成是一个NP
‑
hard问题。
[0004]现有的覆盖表生成算法大多是基于贪心策略,每次生成一条测试用例,选择测试用例的标准是尽可能覆盖最多的未覆盖的组合,这种一次一行的方法生成的覆盖表通常较大,而Forbes等人提出的IPOG
‑
F算法[1]则采用一次一列的策略,逐次增加列数,在IPOG
‑
F算法中,确定 ...
【技术保护点】
【技术特征摘要】
1.基于QIS的二值覆盖表生成方法,其特征性在于:包括以下步骤:SA1、本方法是基于集合学中的Qualitatively Independent Set,对于大小为n的集合S,其有两个子集A、B,如果A∩B、皆不为空,则称A、B是2
‑
independent的;SA2、若集合F中的元素为S的子集,且F中的任意两个子集都是2
‑
independent的,则称F为2
‑
Qualitatively Independent的,显然,可以根据2
‑
Qualitatively Independent的F构造一个0/1矩阵,大小为n
×
|F|
,F中的子集对应各个列,如果F中第i个子集中含有元素j,则矩阵的i列j行取值为0,否则取值为1;SA3、当|F|在n固定时达到最大,此0/1矩阵则能在行数一定时覆盖最多的二值参数,也即用最少的行数覆盖|F|个参数的2
‑
way组合,最大的|F|与n的大小关系已有公式给出[2],但对于一般情况的t
‑
Qualitatively Independent中t>2的情形未有准确的公式和结论,是NP
‑
hard问题。2.如权利要求1所述的基于QIS的二值覆盖表生成方法,其特征在于,具体操作如下:SB1、我们首先需要确定S的大小n,即确定覆盖表的行数,然后选择搜索范围,即确定S的哪些子集作为搜索目标,称其为备选子集,它们构成备选集P;SB2、接着指定P中若干S的子集作为种子子集,当然也可以不指定种子子集,指定种子后检查这些种子是否满足pseudo
‑
t
‑
Qualitatively Independent的性质,如果不满足则重新指定种子或者不指定种子,满足则继续下一步;SB3、接下来确定搜索深度depth,每次从P中选择depth个备选子集,先检查这depth个备选子集是否满足pseudo
‑
t
‑
Qualitatively Independent的性质,如果不满足,则重新选下一组depth个备选子集;如果是,则将这depth个备选子集与种子一起加入空的t
‑
QI集,然后遍历P中的备选子集进行搜索,每次选择一个不在t
‑
QI集中的备选子集,检查其与t
‑
QI集中的任两个子集是否满足pseudo
‑
t
‑
independent关系,如果满足,则将其加入t
‑
QI集,不满足则不添加,然后继续遍历P中剩余的备选子集;SB4、直到所有的备选子集都被遍历一遍,则结束此次搜索,然...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。