当前位置: 首页 > 专利查询>南京大学专利>正文

基于QIS的二值覆盖表生成方法技术

技术编号:38394945 阅读:8 留言:0更新日期:2023-08-07 11:10
本发明专利技术公开了基于QIS的二值覆盖表生成方法,涉及软件或硬件测试技术领域;而本发明专利技术包括以下步骤:SA1、本方法是基于集合学中的Qualitatively Independent Set,SA2、若集合F中的元素为S的子集,且F中的任意两个子集都是2

【技术实现步骤摘要】
基于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算法中,确定覆盖力度t之后,1)生成t列来覆盖t个参数的所有t

way组合;2)增加一列,增加的列长度与已有的矩阵行数相同,同时增加的列要能覆盖尽可能多的组合;3)如果当前生成的矩阵覆盖了所有需要覆盖的组合,则继续第二步进行水平方向上的拓展,否则,进行垂直方向上的拓展,增加一行测试用例来尽可能覆盖更多的未被覆盖的组合,然后重复第三步,直到生成指定列数的覆盖表。
[0005]IPOG

F算法的一次一列策略能大大减少组合搜索的空间,在时间开销得到显著缩小的同时,生成的大部分覆盖表是已知最小的,但本质上,IPOG

F算法仍需维持一个未覆盖组合表,据此通过贪心算法来生成具有最大组合覆盖数的列或者行,容易陷入局部最优,因此,如何生成一个尽可能小的覆盖表一直是组合测试的重要研究领域,针对上述问题,专利技术人提出基于QIS的二值覆盖表生成方法用于解决上述问题。

技术实现思路

[0006](一)解决的技术问题
[0007]为了解决如何能生成更加小的覆盖表,在实际中保证测试效果的同时能更好地减少测试成本的问题;本专利技术的目的在于提供基于QIS的二值覆盖表生成方法。
[0008](二)技术方案
[0009]为解决上述技术问题,本专利技术采用如下技术方案:基于QIS的二值覆盖表生成方法,包括以下步骤:
[0010]SA1、本方法是基于集合学中的Qualitatively Independent Set,对于大小为n的集合S,其有两个子集A、B,如果A∩B、皆不为空,则称A、B是2

independent的;
[0011]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;
[0012]SA3、当|F|在n固定时达到最大,此0/1矩阵则能在行数一定时覆盖最多的二值参数,也即用最少的行数覆盖|F|个参数的2

way组合,最大的|F|与n的大小关系已有公式给出[2],但对于一般情况的t

Qualitatively Independent中t>2的情形未有准确的公式和结论,是NP

hard问题。
[0013]SB1、我们首先需要确定S的大小n,即确定覆盖表的行数,然后选择搜索范围,即确定S的哪些子集作为搜索目标,称其为备选子集,它们构成备选集P;
[0014]SB2、接着指定P中若干S的子集作为种子子集,当然也可以不指定种子子集,指定种子后检查这些种子是否满足pseudo

t

Qualitatively Independent的性质,如果不满足则重新指定种子或者不指定种子,满足则继续下一步;
[0015]SB3、接下来确定搜索深度depth,每次从P中选择depth个备选子集,先检查这depth个备选子集是否满足pseudo

t

Qualitatively Independent的性质,如果不满足,则重新选下一组depth个备选子集;如果是,则将这depth个备选子集与种子一起加入空的t

QI集,然后遍历P中的备选子集进行搜索,每次选择一个不在t

QI集中的备选子集,检查其与t

QI集中的任两个子集是否满足pseudo

t

independent关系,如果满足,则将其加入t

QI集,不满足则不添加,然后继续遍历P中剩余的备选子集;
[0016]SB4、直到所有的备选子集都被遍历一遍,则结束此次搜索,然后记录t

QI集的大小和其中的备选子集,这样当P中每depth个备选子集组合都被搜索完后,选择最大的3

QI集来构造3

way二值覆盖表;
[0017]SB5、构造方法同2

Qualitatively Independent情况类似,t

QI集中的每一个备选子集对应每一列,备选子集中含有的数字对应的行赋值0,否则赋值为1,最后加上一行全0和一行全1,从而最终生成有(n+2)行的t

way二值覆盖表。
[0018]本方法涉及的相关名词如下:
[0019]SC1、|F|:即集合F的大小;
[0020]SC2、备选子集:即选择作为搜索目标的S的子集,这些子集构成备选集P,选择S的部分子集作为搜索目标,可以有效减少搜索范围,减少搜索时间;
[0021]SC3、pseudo

t

independent:以t=3为例,若集合A、B、C∈S,其independent:以t=3为例,若集合A、B、C∈S,其皆不为空,称A、B、C满足pseudo
‑3‑
independ本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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、直到所有的备选子集都被遍历一遍,则结束此次搜索,然...

【专利技术属性】
技术研发人员:钮鑫涛周成乘吴化尧聂长海
申请(专利权)人:南京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1