覆盖表约简的方法及系统的制作方法

文档序号:6515295阅读:185来源:国知局
覆盖表约简的方法及系统的制作方法
【专利摘要】本发明公开了一种覆盖表约简的方法及系统。其中该方法包括如下步骤:对初始覆盖表进行分析处理,得到覆盖表的相对灵活位置集;根据相对灵活位置集,判断覆盖表中每条测试用例中包含灵活位置的个数,并按灵活位置的个数从小到大的顺序对覆盖表中的测试用例进行排序,得到第一新覆盖表;对第一新覆盖表进行进一步分析处理,得到覆盖表的灵活位置集;根据灵活位置集,删除覆盖表中全部为灵活位置的测试用例,得到新的灵活位置集;将新的灵活位置集中的灵活位置在预设取值范围内进行随机替换,得到第二新覆盖表;循环执行上述所有步骤,直至得到满足预设条件的最终覆盖表。其减少实际测试用例条数,降低测试成本,且保证原覆盖表中参数组合的覆盖率。
【专利说明】覆盖表约简的方法及系统
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种覆盖表约简的方法及系统。
【背景技术】
[0002]软件或硬件系统的系统行为通常会受到多个参数或因素的影响,其中每个参数有多个不同的离散取值。在这样的系统中,系统故障通常是由部分参数的某些取值组合引起的,而软件或硬件测试的目标,则是构建相应的测试用例来触发这些系统故障。穷尽测试方法可以完全地测试待测系统的所有参数取值组合,但其需要大量的测试用例,因而无法在实际测试中应用。与之相比,通过覆盖任意t个参数间的所有t_组合,组合测试方法可以在保证较高故障检测率的前提下,极大地减少测试成本,是一种非常有效的测试方法。
[0003]组合测试方法使用覆盖表作为测试用例集。在一个t-way覆盖表中,任意t个参数间t_组合的所有取值都至少需要在覆盖表中出现一次,这里的t称为覆盖强度。如果一个tiay覆盖表中的每个t-组合的所有取值仅出现一次,则该覆盖表是最优覆盖表(也称为正交表),具有最小的规模(测试用例的数目)。但覆盖表的生成是一个复杂的问题,对于绝大多数待测系统来说,目前无法生成最优规模的覆盖表,在最终得到的覆盖表中一般存在很多冗余组合。

【发明内容】

[0004]基于此,为解决现有技术中的存在的问题及缺陷,有必要提供一种简单有效的覆盖表约简的方法及系统。
[0005]为实现本发明目的提供的一种覆盖表约简的方法,包括以下步骤:
[0006]S100,对初始覆盖表进行分析处理,得到所述初始覆盖表的相对灵活位置集;
[0007]S200,根据所述相对灵活位置集,判断所述初始覆盖表中每条测试用例中包含灵活位置的个数,并按所述灵活位置的个数从小到大的顺序对所述初始覆盖表中的所述测试用例进行排序,得到第一新覆盖表;
[0008]S300,对所述第一新覆盖表进行进一步分析处理,得到所述第一新覆盖表的灵活位置集;
[0009]S400,根据所述灵活位置集,删除所述第一新覆盖表中全部为灵活位置的测试用例,得到新的灵活位置集;
[0010]S500,将所述新的灵活位置集中的灵活位置在预设取值范围内进行随机替换,得
到第二新覆盖表;
[0011]S600,将所述第二新覆盖表作为初始覆盖表,返回步骤SlOO循环执行上述所有步骤,直至得到满足预设条件的最终覆盖表;
[0012]所述预设条件为预设循环总次数,或者预设循环次数内所述第二新覆盖表中的测试用例的条数相同。
[0013]在其中一个实施例中,步骤SlOO包括以下步骤:[0014]S110,将所述初始覆盖表中的所有位置标记为灵活位置;
[0015]S120,选择所述初始覆盖表中任意t个参数进行组合,得到所述初始覆盖表中参数的m个t-组合,并将所述初始覆盖表中所有测试用例中只出现一次的t-组合值对应的初始覆盖表的位置还原为原始值,得到所述初始覆盖表的相对灵活位置集;
[0016]其中,所述t为正整数,为所述初始覆盖表的覆盖强度;
[0017]m=C (n, t), η为所述初始覆盖表中参数的个数;
[0018]所述参数的某个t_组合对应多个所述t_组合值,所述初始覆盖表中每条测试用例包含m个所述t-组合的各一个所述t-组合值。
[0019]在其中一个实施例中,步骤S120包括以下步骤:
[0020]S121,选择所述初始覆盖表中任意t个参数进行组合,得到所述初始覆盖表中参数的m个t-组合;
[0021]S122,选择所述初始覆盖表中未选择过的一个所述t-组合,为第一 t-组合;
[0022]S123,将所述初始覆盖表中所有测试用例中只出现一次的第一 t-组合值对应的初始覆盖表的位置还原为原始值;
[0023]S124,判断所述初始覆盖表中是否还存在未选择过的t-组合,若是则返回执行步骤S122 ;否则,得到所述初始覆盖表的相对灵活位置集。
[0024]在其中一个实施例中,步骤S300,包括以下步骤:
[0025]S310,将所述第一新覆盖表中的所有位置标记为灵活位置;
[0026]S320,选择所述第一新覆盖表中任意t个参数进行组合,得到所述第一新覆盖表中参数的m个t-组合,按照所述第一新覆盖表中所有测试用例的排列顺序,将第一次出现的t-组合值对应的所述第一新覆盖表的位置还原为原始值,得到所述第一新覆盖表的灵活位置集;
[0027]其中,所述t为正整数,为所述初始覆盖表的覆盖强度;
[0028]所述m=C (n, t), η为所述初始覆盖表中参数的个数;
[0029]所述参数的某个t_组合对应多个所述t_组合值,所述初始覆盖表中每条测试用例包含m个所述t-组合的各一个所述t-组合值。
[0030]在其中一个实施例中,步骤S320,包括以下步骤:
[0031]S321,选择所述第一新覆盖表中任意t个参数进行组合,得到所述第一新覆盖表中参数的m个t-组合;
[0032]S322,选择所述第一新覆盖表中未选择过的一个所述t-组合,为第二 t-组合;
[0033]S323,按照所述第一新覆盖表中所有测试用例的排列顺序,将第一次出现的所述第二 t-组合值对应的所述第一新覆盖表的位置还原为原始值;
[0034]S324,判断所述第一新覆盖表中是否还存在未选择过的t-组合,若是则返回执行步骤S322 ;否则,得到所述第一新覆盖表的灵活位置集。
[0035]基于同一发明构思的一种覆盖表约简的系统,包括相对灵活位置集生成模块,排序模块,灵活位置集生成模块,灵活位置集调整模块,以及新覆盖表生成模块,其中:
[0036]所述相对灵活位置集生成模块,用于对初始覆盖表进行分析处理,得到所述初始覆盖表的相对灵活位置集;
[0037]所述排序模块,用于根据所述相对灵活位置集,判断所述初始覆盖表中每条测试用例中包含灵活位置的个数,并按所述灵活位置的个数从小到大的顺序对所述初始覆盖表中的所述测试用例进行排序,得到第一新覆盖表;
[0038]所述灵活位置集生成模块,用于对所述第一新覆盖表进行进一步分析处理,得到所述第一新覆盖表的灵活位置集;
[0039]所述灵活位置集调整模块,用于根据所述灵活位置集,删除所述第一新覆盖表中全部为灵活位置的测试用例,得到新的灵活位置集;
[0040]所述新覆盖表生成模块,将所述新的灵活位置集中的灵活位置在预设取值范围内进行随机替换,得到第二新覆盖表。
[0041]在其中一个实施例中,所述相对灵活位置集生成模块,包括第一标记子模块,以及第一处理子模块,其中:
[0042]所述第一标记子模块,用于将所述初始覆盖表中的所有位置标记为灵活位置;
[0043]所述第一处理子模块,用于选择所述初始覆盖表中任意t个参数进行组合,得到所述初始覆盖表中参数的m个t-组合,并将所述初始覆盖表中所有测试用例中只出现一次的t-组合值对应的初始覆盖表的位置还原为原始值,得到所述初始覆盖表的相对灵活位
置集;
[0044]所述t为正整数,为所述初始覆盖表的覆盖强度;
[0045]所述m=C (n, t), η为所述初始覆盖表中参数的个数;
[0046]所述参数的某个t-组合对应多个所述t-组合值,所述初始覆盖表中每条测试用例包含m个所述t-组合的各一个所述t-组合值。
[0047]在其中一个实施例中,所述第一处理子模块包括第一组合单元,第一选择单元,第一还原单元,以及第一判断单元,其中:
[0048]所述第一组合单元,用于选择所述初始覆盖表中任意t个参数进行组合,得到所述初始覆盖表中参数的m个t-组合;
[0049]所述第一选择单元,用于选择所述初始覆盖表中未选择过的一个所述t_组合,为第一 t_组合;
[0050]所述第一还原单元,用于将所述初始覆盖表中所有测试用例中只出现一次的第一t_组合值对应的初始覆盖表的位置还原为原始值;
[0051]所述第一判断单元,用于判断所述初始覆盖表中是否还存在未选择过的t_组合,若是则转所述第一组合单元进行处理;否则,得到所述初始覆盖表的相对灵活位置集。
[0052]在其中一个实施例中,所述灵活位置集生成模块包括第二标记子模块,以及第二处理子模块,其中:
[0053]所述第二标记子模块,用于将所述第一新覆盖表中的所有位置标记为灵活位置;
[0054]所述第二处理子模块,用于选择所述第一新覆盖表中任意t个参数进行组合,得到所述第一新覆盖表中参数的m个t-组合,按照所述第一新覆盖表中所有测试用例的排列顺序,将第一次出现的t-组合值对应的所述第一新覆盖表的位置还原为原始值,得到所述第一新覆盖表的灵活位置集;
[0055]所述t为正整数,为所述初始覆盖表的覆盖强度;m为正整数。
[0056]在其中一个实施例中,所述第二处理子模块包括第二组合单元,第二选择单元,第二还原单元,以及第二判断单元,其中:[0057]所述第二组合单元,用于选择所述第一新覆盖表中任意t个参数进行组合,得到所述第一新覆盖表中参数的m个t-组合;
[0058]所述第二选择单元,用于选择所述第一新覆盖表中未选择过的一个所述t_组合,为第二 t_组合;
[0059]所述第二还原单元,用于按照所述第一新覆盖表中所有测试用例的排列顺序,将第一次出现的所述第二 t_组合值对应的所述第一新覆盖表的位置还原为原始值;
[0060]所述第二判断单元,用于判断所述第一新覆盖表中是否还存在未选择过的t_组合,若是则转所述第二组合单元进行处理;否则,得到所述第一新覆盖表的灵活位置集。
[0061]本发明的有益效果包括:
[0062]本发明提供的一种覆盖表约简的方法及系统,对原测试用覆盖表进行约简,得到最终的新覆盖表比原覆盖表中的测试用例的条数少,从而减少实际测试用例的条数,降低实际测试中的测试成本。且能够保证原覆盖表中参数组合的覆盖率。
【专利附图】

【附图说明】
[0063]图1为本发明一种覆盖表约简的方法的一具体实施例的流程图;
[0064]图2为本发明一种覆盖表约简的系统的一具体实施例的系统结构示意图。
【具体实施方式】
[0065]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明实施例的覆盖表约简的方法及系统的【具体实施方式】进行说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0066]本发明实施例的覆盖表约简的方法,如图1所示,包括以下步骤:
[0067]S100,对初始覆盖表进行分析处理,得到所述初始覆盖表的相对灵活位置集;
[0068]S200,根据所述相对灵活位置集,判断所述初始覆盖表中每条测试用例中包含灵活位置的个数,并按所述灵活位置的个数从小到大的顺序对所述初始覆盖表中的所述测试用例进行排序,得到第一新覆盖表;
[0069]S300,对所述第一新覆盖表进行进一步分析处理,得到所述第一新覆盖表的灵活位置集;
[0070]S400,根据所述灵活位置集,删除所述第一新覆盖表中全部为灵活位置的测试用例,得到新的灵活位置集;
[0071]S500,将所述新的灵活位置集中的灵活位置在预设取值范围内进行随机替换,得
到第二新覆盖表。
[0072]S600,将所述第二新覆盖表作为初始覆盖表,返回步骤SlOO循环执行上述所有步骤,直至得到满足预设条件的最终覆盖表。
[0073]所述预设条件为预设循环总次数,或者预设循环次数内所述第二新覆盖表中的测试用例的条数相同。
[0074]例如设置循环5次之后则停止对覆盖表的约简,则循环执行步骤SlOO?S500,5次之后退出对覆盖表约简的程序,得到约简后的最终的新覆盖表。或者设置对初始覆盖表按照步骤SlOO?S500进行约简,若连续循环执行5次得到的第二新覆盖表中包含的测试用例的条数都相同,则停止对覆盖表的约简,得到约简后的最终的新覆盖表。大多数情况下所述最终的第二新覆盖表中的测试用例的条数小于所述初始覆盖表中的测试用例的条数,从而减少实际测试用例的条数,降低实际测试中的测试成本。本发明实施例通过排序之后仅对全部为灵活位置的测试用例进行删除,保证原覆盖表中参数组合的覆盖率。通过对删除后的覆盖表中灵活位置随机赋值后,再次进行约简,进一步减小实际测试用例的条数。
[0075]较佳地,作为一种可实施方式,步骤SlOO包括以下步骤:
[0076]SI 10,将所述初始覆盖表中的所有位置标记为灵活位置。
[0077]采用反向确定的方式确定覆盖表的灵活位置集,首先将要进行约简的覆盖表中的所有位置都标记为灵活位置,后续再进行排除。
[0078]S120,选择所述初始覆盖表中任意t个参数进行组合,得到所述初始覆盖表中参数的m个t-组合,并将所述初始覆盖表中所有测试用例中只出现一次的t-组合值对应的初始覆盖表的位置还原为原始值,得到所述初始覆盖表的相对灵活位置集。
[0079]其中,所述t为正整数,为所述初始覆盖表的覆盖强度;
[0080]所述m=C (n, t), η为所述初始覆盖表中参数的个数;
[0081]所述参数的某个t-组合对应多个所述t-组合值,所述初始覆盖表中每条测试用例包含m个所述t-组合的各一个所述t-组合值。
[0082]此处需要说明的是,若待测系统包含η个测试参数,覆盖表的覆盖强度为t,则选择覆盖表中任意t个参数进行组合,这样的组合共有m=c (n, t)个。对于m个t-组合中的任意一个组合,其组合值的个数根据参数可取值的数量的不同而不同。例如,在某个包含4个参数的覆盖表中,t=2,且每个参数包含两个不同的取值I或者0,则覆盖表中由第I个和第2个参数构成的2-组合所对应的2-组合值可能为(0,0,-,_),(O, I,-,-), (1,0,-,-),(I, 1,_,-)四种。若初始覆盖表中某一 2-组合值仅出现一次,则将该组合对应的位置还原为原始值,其余位置仍保持为灵活位置。如在上例中,覆盖表的所有测试用例中(1,O,-,-)组合值只出现了一次,则将(1,O,-,-)组合值在初始覆盖表的相应位置进行还原。当处理完所有组合后,剩余的灵活位置即构成相对灵活位置集。
[0083]所述位置解释为:一条测试用例中某个参数取值。例如(0,0,I, I)为一条测试用例,0,0,1,I分别为该测试用例的4个不同位置。
[0084]所述灵活位置解释为:对于一个覆盖表中的每条测试用例,每个位置均包含在C (n-1, t-Ι)个t-组合的t-组合值中,如果这些组合值都在其余的测试用例中出现,则该位置称为灵活位置。
[0085]例如,考虑测试用例集T={(0,I, I), (O, 1,2), (O, 2, I)},假设覆盖强度为2,则第I条测试用例的第一个位置O为灵活位置,这是因为包含其的2-组合值有(0,1,_)和(O, _,I),他们分别在第2条和第3条测试用例中出现。
[0086]所述相对灵活位置集(RFS)解释为:覆盖表中所有灵活位置的集合称为相对灵活位置集。对灵活位置集中的某些位置进行取值替换会影响其余灵活位置的灵活性。
[0087]所述灵活位置集(FS)解释为:灵活位置集是相对灵活位置集的一个子集,其满足可以同时对这些位置进行取值替换而不影响其余灵活位置的灵活性。
[0088]较佳地,作为一种可实施方式,步骤S120包括以下步骤:
[0089]S121,选择所述初始覆盖表中任意t个参数进行组合,得到所述初始覆盖表中参数的m个t-组合;
[0090]S122,选择所述初始覆盖表中未选择过的一个所述t-组合,为第一 t-组合;
[0091]每次对覆盖表中的一个t_组合进行分析处理,直至处理完所有的t_组合。
[0092]S123,将所述初始覆盖表中所有测试用例中只出现一次的第一 t_组合值对应的初始覆盖表的位置还原为原始值;
[0093]S124,判断所述原始覆盖表中是否还存在未选择过的t_组合,若是则返回执行步骤S122 ;否则,得到所述初始覆盖表的相对灵活位置集。
[0094]较佳地,作为一种可实施方式,步骤S300,包括以下步骤:
[0095]S310,将所述第一新覆盖表中的所有位置标记为灵活位置;
[0096]S320,选择所述第一新覆盖表中任意t个参数进行组合,得到所述第一新覆盖表中参数的m个t-组合,按照所述第一新覆盖表中所有测试用例的排列顺序,将第一次出现的t-组合值对应的所述第一新覆盖表的位置还原为原始值,得到所述第一新覆盖表的灵活位置集;
[0097]其中,所述t为正整数,为所述初始覆盖表的覆盖强度;
[0098]m=C (n, t), η为所述初始覆盖表中参数的个数;
[0099]所述参数的某个t_组合对应多个所述t_组合值,所述初始覆盖表中每条测试用例包含m个所述t-组合的各一个所述t-组合值。
[0100]此处需要说明的是,灵活位置集的查找通过将第一次出现的(而不是仅出现一次的)t-组合值对应的覆盖表的位置还原,保证最终得到的所有灵活位置构成灵活位置集(而不是相对灵活位置集),避免造成必须测试用例的删除。
[0101]较佳地,作为一种可实施方式,步骤S320,包括以下步骤:
[0102]S321,选择所述第一新覆盖表中任意t个参数进行组合,得到所述第一新覆盖表中参数的m个t-组合。
[0103]S322,选择所述第一新覆盖表中未选择过的一个所述t-组合,为第二 t-组合。
[0104]每次对覆盖表中的一个t_组合进行分析处理,直至处理完所有的t_组合。
[0105]S323,按照所述第一新覆盖表中所有测试用例的排列顺序,将第一次出现的所述第二 t-组合值对应的所述第一新覆盖表的位置还原为原始值;
[0106]S324,判断所述第一新覆盖表中是否还存在未选择过的t-组合,若是则返回执行步骤S322 ;否则,得到所述第一新覆盖表的灵活位置集。
[0107]为了更好的说明本发明,下面举一具体例子进行说明。
[0108]假设一个待测的软件系统受5个不同参数的影响,分别记为Pl,P2, P3, P4, P5,其中每个参数均有两个不同的合法取值,分别记为O和I。这些参数可以是用户输入、系统配置、内部事件等,例如P1可以代表“操作系统”,其对应的取值分别为“Windows”和“Linux”。
[0109]在这样一个系统中,系统故障往往是由一些参数间的某些取值组合所引发的。例如当P1取值为0,P3取值为I时会引发某种系统故障,而为了检测出这样的系统故障,其对应的组合值(0,-,1,-,-)就需要包含在某条测试用例中。穷尽测试方法可以完全地对所有可能的组合值进行检测,但其需要25=32条测试用例,测试开销较大。
[0110]对于这样的系统,使用组合测试方法可以极大地减少测试开销。例如,如果假设系统故障是由任意2个参数间的取值组合所引发的,那么组合测试仅需要表I中的7条测试用例。这7条测试用例构成的测试用例集称为一个2-way覆盖表。在一个2_way覆盖表中,任意2个参数的所有2 X 2=4个取值组合都至少在该表中覆盖一次。例如,对于P1和P3这两个参数的2-组合,其对应的所有4个2-组合值(O,-,O,-,-),(O,-,1,-,-),(1,-,O,-,-),(1,_,1,_,_)都能在该表中找到。
[0111]表1 一个2-way覆盖表
[0112]
【权利要求】
1.一种覆盖表约简的方法,其特征在于,包括以下步骤: S100,对初始覆盖表进行分析处理,得到所述初始覆盖表的相对灵活位置集; S200,根据所述相对灵活位置集,判断所述初始覆盖表中每条测试用例中包含灵活位置的个数,并按所述灵活位置的个数从小到大的顺序对所述初始覆盖表中的所述测试用例进行排序,得到第一新覆盖表; S300,对所述第一新覆盖表进行进一步分析处理,得到所述第一新覆盖表的灵活位置集; S400,根据所述灵活位置集,删除所述第一新覆盖表中全部为灵活位置的测试用例,得到新的灵活位置集; S500,将所述新的灵活位置集中的灵活位置在预设取值范围内进行随机替换,得到第二新覆盖表; S600,将所述第二新覆盖表作为初始覆盖表,返回步骤SlOO循环执行直至得到满足预设条件的最终覆盖表; 所述预设条件为预设循环总次数,或者预设循环次数内所述第二新覆盖表中的测试用例的条数相同。
2.根据权利要求1所述的覆盖表约简的方法,其特征在于,步骤SlOO包括以下步骤: S110,将所述初始覆盖表中的所有位置标记为灵活位置; 5120,选择所述初始覆盖表 中任意t个参数进行组合,得到所述初始覆盖表中参数的m个t-组合,并将所述初始覆盖表中所有测试用例中只出现一次的t-组合值对应的初始覆盖表的位置还原为原始值,得到所述初始覆盖表的相对灵活位置集; 其中,所述t为正整数,为所述初始覆盖表的覆盖强度; 所述m=C(n, t),n为所述初始覆盖表中参数的个数;所述参数的某个t_组合对应多个所述t-组合值,所述初始覆盖表中每条测试用例包含m个所述t-组合的各一个所述t-组合值。
3.根据权利要求2所述的覆盖表约简的方法,其特征在于,步骤S120包括以下步骤: 5121,选择所述初始覆盖表中任意t个参数进行组合,得到所述初始覆盖表中参数的m个t-组合; S122,选择所述初始覆盖表中未选择过的一个所述t-组合,为第一 t-组合; S123,将所述初始覆盖表中所有测试用例中只出现一次的第一 t-组合值对应的初始覆盖表的位置还原为原始值; S124,判断所述初始覆盖表中是否还存在未选择过的t-组合,若是则返回执行步骤S122 ;否则,得到所述初始覆盖表的相对灵活位置集。
4.权利要求1至3任一项所述的覆盖表约简的方法,其特征在于,步骤S300包括以下步骤: S310,将所述第一新覆盖表中的所有位置标记为灵活位置; S320,选择所述第一新覆盖表中任意t个参数进行组合,得到所述第一新覆盖表中参数的m个t-组合,按照所述第一新覆盖表中所有测试用例的排列顺序,将第一次出现的t-组合值对应的所述第一新覆盖表的位置还原为原始值,得到所述第一新覆盖表的灵活位置集;其中,所述t为正整数,为所述初始覆盖表的覆盖强度; 所述m=C (n, t), η为所述初始覆盖表中参数的个数; 所述参数的某个t-组合对应多个所述t-组合值,所述初始覆盖表中每条测试用例包含m个所述t-组合的各一个所述t-组合值。
5.根据权利要求4所述的覆盖表约简的方法,其特征在于,步骤S320包括以下步骤: S321,选择所述第一新覆盖表中任意t个参数进行组合,得到所述第一新覆盖表中参数的m个t-组合; S322,选择所述第一新覆盖表中未选择过的一个所述t-组合,为第二 t-组合; S323,按照所述第一新覆盖表中所有测试用例的排列顺序,将第一次出现的所述第二t-组合值对应的所述第一新覆盖表的位置还原为原始值; S324,判断所述第一新覆盖表中是否还存在未选择过的t-组合,若是则返回执行步骤S322 ;否则,得到所述第一新覆盖表的灵活位置集。
6.一种覆盖表约简的系统,其特征在于,包括相对灵活位置集生成模块,排序模块,灵活位置集生成模块,灵活位置集调整模块,以及新覆盖表生成模块,其中: 所述相对灵活位置集生成模块,用于对初始覆盖表进行分析处理,得到所述初始覆盖表的相对灵活位置集; 所述排序模块,用于根据所述相对灵活位置集,判断所述初始覆盖表中每条测试用例中包含灵活位置的个数,并按所述灵活位置的个数从小到大的顺序对所述初始覆盖表中的所述测试用例进`行排序,得到第一新覆盖表; 所述灵活位置集生成模块,用于对所述第一新覆盖表进行进一步分析处理,得到所述第一新覆盖表的灵活位置集; 所述灵活位置集调整模块,用于根据所述灵活位置集,删除所述第一新覆盖表中全部为灵活位置的测试用例,得到新的灵活位置集; 所述新覆盖表生成模块,将所述新的灵活位置集中的灵活位置在预设取值范围内进行随机替换,得到第二新覆盖表。
7.根据权利要求6所述的覆盖表约简的系统,其特征在于,所述相对灵活位置集生成模块,包括第一标记子模块,以及第一处理子模块,其中: 所述第一标记子模块,用于将所述初始覆盖表中的所有位置标记为灵活位置; 所述第一处理子模块,用于选择所述初始覆盖表中任意t个参数进行组合,得到所述初始覆盖表中参数的m个t-组合,并将所述初始覆盖表中所有测试用例中只出现一次的t-组合值对应的初始覆盖表的位置还原为原始值,得到所述初始覆盖表的相对灵活位置集; 所述t为正整数,为所述初始覆盖表的覆盖强度;m=C (n, t),η为所述初始覆盖表中参数的个数;所述参数的某个t-组合对应多个所述t-组合值,所述初始覆盖表中每条测试用例包含m个所述t-组合的各一个所述t-组合值。
8.根据权利要求7所述的覆盖表约简的系统,其特征在于,所述第一处理子模块包括第一组合单元,第一选择单元,第一还原单元,以及第一判断单元,其中: 所述第一组合单元,用于选择所述初始覆盖表中任意t个参数进行组合,得到所述初始覆盖表中参数的m个t-组合;所述第一选择单元,用于选择所述初始覆盖表中未选择过的一个所述t-组合,为第一t-组合; 所述第一还原单元,用于将所述初始覆盖表中所有测试用例中只出现一次的第一t-组合值对应的初始覆盖表的位置还原为原始值; 所述第一判断单元,用于判断所述初始覆盖表中是否还存在未选择过的t-组合,若是则转所述第一组合单元进行处理;否则,得到所述初始覆盖表的相对灵活位置集。
9.权利要求6所述的覆盖表约简的系统,其特征在于,所述灵活位置集生成模块包括第二标记子模块,以及第二处理子模块,其中: 所述第二标记子模块,用于将所述第一新覆盖表中的所有位置标记为灵活位置; 所述第二处理子模块,用于选择所述第一新覆盖表中任意t个参数进行组合,得到所述第一新覆盖表中参数的m个t-组合,按照所述第一新覆盖表中所有测试用例的排列顺序,将第一次出现的t-组合值对应的所述第一新覆盖表的位置还原为原始值,得到所述第一新覆盖表的灵活位置集; 所述t为正整数,为所述初始覆盖表的覆盖强度;m=C (n, t),η为所述初始覆盖表中参数的个数;所述参数的某个t-组合对应多个所述t-组合值,所述初始覆盖表中每条测试用例包含m个所述t-组合的各一个所述t-组合值。
10.根据权利要求 9所述的覆盖表约简的系统,其特征在于,所述第二处理子模块包括第二组合单元,第二选择单元,第二还原单元,以及第二判断单元,其中: 所述第二组合单元,用于选择所述第一新覆盖表中任意t个参数进行组合,得到所述第一新覆盖表中参数的m个t-组合; 所述第二选择单元,用于选择所述第一新覆盖表中未选择过的一个所述t-组合,为第二 t-组合; 所述第二还原单元,用于按照所述第一新覆盖表中所有测试用例的排列顺序,将第一次出现的所述第二 t-组合值对应的所述第一新覆盖表的位置还原为原始值; 所述第二判断单元,用于判断所述第一新覆盖表中是否还存在未选择过的t-组合,若是则转所述第二组合单元进行处理;否则,得到所述第一新覆盖表的灵活位置集。
【文档编号】G06F11/36GK103605603SQ201310477511
【公开日】2014年2月26日 申请日期:2013年10月12日 优先权日:2013年10月12日
【发明者】聂长海, 吴化尧, 李晓花, 董昭, 刘克, 蔡开元 申请人:南京大学, 中国科学院数学与系统科学研究院, 北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1