首页 / 专利库 / 专利权 / 专利合作条约 / 第II章 / 国际初步审查单位 / 国际初步审查 / 国际初步审查要求 / 选定 / 测试设计辅助装置、测试设计辅助方法、程序及计算机可读介质

测试设计辅助装置、测试设计辅助方法、程序及计算机可读介质

阅读:299发布:2021-06-08

专利汇可以提供测试设计辅助装置、测试设计辅助方法、程序及计算机可读介质专利检索,专利查询,专利分析的服务。并且一种测试设计辅助装置(10)针对要进行测试的多个因素中的每一个,获取与表示各个因素能够取的值的数量的 水 平数相关的信息,从基于 正交 表产生的多水平的因素可映射到的多个矩阵中选择在所述信息中的最大水平数的所有因素可映射到的矩阵,并且将未映射到 选定 矩阵的因素的水平数中的最大水平数设定为所关注水平数。然后,当所关注水平数的因素可映射到的选定矩阵中的列的数量大于或等于所关注水平数的因素的数量时,将所关注水平数的因素映射到该矩阵;以及,当所关注水平数的因素可映射到的选定矩阵中的列的数量不满足大于或等于所关注水平数的因素的数量、并且在矩阵中存在比所关注水平数更大水平数的因素可映射到的剩余列时,将该剩余列拆分成所关注水平数的因素可映射到的多列,从而对矩阵进行更新。,下面是测试设计辅助装置、测试设计辅助方法、程序及计算机可读介质专利的具体信息内容。

1.一种测试设计辅助装置,包括:
获取单元,其获取关于平数的信息,所述水平数表示测试目标的多个因素中的每一个因素能够获得的值的数量;
选择单元,其在能够对基于正交表产生的多水平的因素进行分配的矩阵中,选择能够对至少在所获取的信息中的最大水平数的所有因素进行分配的矩阵;
设定单元,其将关于选定矩阵没有进行分配的因素的水平数中的最大水平数设定为所关注水平数;
分配单元,当选定矩阵中能够对所关注水平数的因素进行分配的列的数量等于或大于所关注水平数的因素的数量时,所述分配单元将所关注水平数的因素分配至所述选定矩阵;
更新单元,在选定矩阵中能够对所关注水平数的因素进行分配的列的数量不满足等于或大于所关注水平数的因素的数量的情况下,当所述选定矩阵中存在能够对水平数大于所关注水平数的因素进行分配的剩余列时,所述更新单元通过将剩余列拆分为能够对所关注水平数的因素进行分配的多列来更新所述选定矩阵;以及
执行单元,其通过所述设定单元使得在所述分配单元或所述更新单元的处理之后执行处理,并使得设定单元、分配单元及更新单元递归地执行处理。
2.根据权利要求1所述的测试设计辅助装置,还包括:
添加单元,其向所述多个因素中水平数不是2的幂的因素添加水平,从而将与所述因素相关的水平数设定为2的幂,
其中,获取单元获取表示由添加单元添加了水平数的多个因素中的每个因素能够获取到的值的数量的信息。
3.根据权利要求2所述的测试设计辅助装置,还包括:
尺寸扩展单元,其通过仅凭正交表的列数对只具有相同水平的因素的正交表进行横向连接、将横向连接的正交表纵向形成为两段构造、以及然后改变下段的正交表的各列的顺序来对所述正交表进行扩展;以及
水平数扩展单元,其将两水平正交表扩展成包括多水平列的正交表,所述多水平列能够对水平数作为2的幂的、等于或大于四水平的因素进行分配,
其中,所述选择单元针对水平数扩展单元扩展的正交表中的每个水平数,从对水平数正交表中由尺寸扩展单元扩展的正交表进行组合而创建的矩阵中,选择能够对至少在所获取的信息中的最大水平数的所有因素进行分配的矩阵。
4.根据权利要求1至3之一所述的测试设计辅助装置,
其中,在选定矩阵中能够对所关注水平数的因素进行分配的列的数量不满足等于或大于所关注水平数的因素的数量的情况下,当在所述选定矩阵中不存在能够对水平数大于所关注水平数的因素进行分配的剩余列时,所述选择单元重新选择比选定矩阵更大的矩阵。
5.根据权利要求1至3之一所述的测试设计辅助装置,还包括:
输出单元,当通过所述分配单元将获得信息中的最小水平数的所有因素分配到所述选定矩阵时,所述输出单元输出所述选定矩阵。
6.根据权利要求4所述的测试设计辅助装置,还包括:
输出单元,当通过所述分配单元将获得信息中的最小水平数的所有因素分配到所述选定矩阵时,所述输出单元输出所述选定矩阵。
7.一种使得计算机执行以下处理的测试设计辅助方法,所述处理包括:
获取关于水平数的信息,所述水平数表示测试目标的多个因素中的每一个因素能够获得的值的数量;
在能够对基于正交表产生的多水平的因素进行分配的矩阵中,选择能够对至少在所获取的信息中的最大水平数的所有因素进行分配的矩阵;
将关于选定矩阵没有进行分配的因素的水平数中的最大水平数设定为所关注水平数;
当选定矩阵中能够对所关注水平数的因素进行分配的列的数量等于或大于所关注水平数的因素的数量时,将所关注水平数的因素分配至所述选定矩阵;
在选定矩阵中能够对所关注水平数的因素进行分配的列的数量不满足等于或大于所关注水平数的因素的数量的情况下,当所述选定矩阵中存在能够对水平数大于所关注水平数的因素进行分配的剩余列时,通过将剩余列拆分为能够对所关注水平数的因素进行分配的多列来更新所述选定矩阵;以及
在分配处理或更新处理之后执行设定处理,并且递归地执行设定处理、分配处理和更新处理。

说明书全文

测试设计辅助装置、测试设计辅助方法、程序及计算机可读

介质

技术领域

背景技术

[0002] 可以执行测试来确认是否由于软件等中的多个因素之间的设定的组合而导致出现了异常行为(参照专利文献1)。
[0003] 在利用正交表对多个因素之间的设定的组合进行测试的情况下,当所有因素中包括的平数为2时,需要针对因素数量n执行(n+1)次测试,因此测试例相对于因素数量的增长而线性地增长。由于这个原因,已经提出了这样的方法,该方法中,仅凭其列数对只具有相同水平的因素的正交表进行横向连接,然后将横向连接的正交表纵向形成为两段,并且可以通过使用测试矩阵,利用2n-1个测试例和下段(lower stage)的正交表对因素数量n2进行测试,该测试矩阵通过对每个正交表逐一循环地移动各列的顺序而产生。
[0004] 引文列表
[0005] 专利文献
[0006] 专利文献1:JP-A-2004-288034

发明内容

[0007] 技术问题
[0008] 本发明的目的是提供测试设计辅助装置、测试设计辅助方法、程序及计算机可读介质,以使得即使在具有不同水平数的因素混入测试目标的情况下,仍能抑制测试例数量的增长。
[0009] 解决问题的方案
[0010] [1]本发明的一个方面提供一种测试设计辅助装置,包括:获取单元,其获取关于水平数的信息,所述水平数表示测试目标的多个因素中的每一个因素能够获得的值的数量;选择单元,其在能够对基于正交表产生的多水平的因素进行分配的矩阵中,选择能够对至少在所获取的信息中的最大水平数的所有因素进行分配的矩阵;设定单元,其将关于选定矩阵没有进行分配的因素的水平数中的最大水平数设定为所关注水平数;分配单元,当选定矩阵中能够对所关注水平数的因素进行分配的列的数量等于或大于所关注水平数的因素的数量时,所述分配单元将所关注水平数的因素分配至所述矩阵;更新单元,在选定矩阵中能够对所关注水平数的因素进行分配的列的数量不满足等于或大于所关注水平数的因素的数量的情况下,当矩阵中存在能够对水平数大于所关注水平数的因素进行分配的剩余列时,所述更新单元通过将剩余列拆分为能够对所关注水平数的因素进行分配的多列来更新矩阵;以及执行单元,其通过所述设定单元使得在所述分配单元或所述更新单元的处理之后执行处理,并使得设定单元、分配单元及更新单元递归地执行处理。
[0011] [2]根据[1]所述的测试设计辅助装置,还可以包括:添加单元,其向所述多个因素中水平数不是2的幂的因素添加水平,从而将与所述因素相关的水平数设定为2的幂,其中获取单元获取表示由添加单元添加了水平数的多个因素中的每个因素能够获取到的值的数量的信息。
[0012] [3]根据[2]所述的测试设计辅助装置,还可以包括:尺寸扩展单元,其通过仅凭正交表的列数对只具有相同水平的因素的正交表进行横向连接、将横向连接的正交表纵向形成为两段构造、以及然后改变下段的正交表的各列的顺序来对所述正交表进行扩展;以及水平数扩展单元,其将两水平正交表扩展成包括多水平列的正交表,所述多水平列能够对水平数作为2的幂的、等于或大于四水平的因素进行分配,其中,所述选择单元针对水平数扩展单元扩展的正交表中的每个水平数,从对水平数正交表中由尺寸扩展单元扩展的正交表进行组合而创建的矩阵中,选择能够对至少在所获取的信息中的最大水平数的所有因素进行分配的矩阵。
[0013] [4]根据[1]至[3]中的任何一项所述的测试设计辅助装置,可以具有这样的配置,其中,在选定矩阵中能够对所关注水平数的因素进行分配的列的数量不满足等于或大于所关注水平数的因素的数量的情况下,当在矩阵中不存在能够对水平数大于所关注水平数的因素进行分配的剩余列时,所述选择单元重新选择比选定矩阵更大的矩阵。
[0014] [5]根据[1]至[4]中的任何一项所述的测试设计辅助装置,还可以包括:输出单元,当通过所述分配单元将获得信息中的最小水平数的所有因素分配到所述矩阵时,所述输出单元输出所述矩阵。
[0015] [6]本发明的另一方面提供一种使得计算机执行以下处理的测试设计辅助方法,所述处理包括:获取关于水平数的信息,所述水平数表示测试目标的多个因素中的每一个因素能够获得的值的数量;在能够对基于正交表产生的多水平的因素进行分配的矩阵中,选择能够对至少在所获取的信息中的最大水平数的所有因素进行分配的矩阵;将关于选定矩阵没有进行分配的因素的水平数中的最大水平数设定为所关注水平数;当选定矩阵中能够对所关注水平数的因素进行分配的列的数量等于或大于所关注水平数的因素的数量时,将所关注水平数的因素分配至所述矩阵;在选定矩阵中能够对所关注水平数的因素进行分配的列的数量不满足等于或大于所关注水平数的因素的数量的情况下,当矩阵中存在能够对水平数大于所关注水平数的因素进行分配的剩余列时,通过将剩余列拆分为能够对所关注水平数的因素进行分配的多列来更新矩阵;以及在分配处理或更新处理之后执行设定处理,并且递归地执行设定处理、分配处理和更新处理。
[0016] [7]本发明的另一方面提供一种使得计算机执行以下处理的程序,所述处理包括:获取关于水平数的信息,所述水平数表示测试目标的多个因素中的每一个因素能够获得的值的数量;在能够对基于正交表产生的多水平的因素进行分配的矩阵中,选择能够对至少在所获取的信息中的最大水平数的所有因素进行分配的矩阵;将关于选定矩阵没有进行分配的因素的水平数中的最大水平数设定为所关注水平数;当选定矩阵中能够对所关注水平数的因素进行分配的列的数量等于或大于所关注水平数的因素的数量时,将所关注水平数的因素分配至所述矩阵;在选定矩阵中能够对所关注水平数的因素进行分配的列的数量不满足等于或大于所关注水平数的因素的数量的情况下,当矩阵中存在能够对水平数大于所关注水平数的因素进行分配的剩余列时,通过将剩余列拆分为能够对所关注水平数的因素进行分配的多列来更新矩阵;以及在分配处理或更新处理之后执行设定处理,并且递归地执行设定处理、分配处理和更新处理。
[0017] [8]本发明的另一方面提供一种对使得计算机执行测试设计辅助处理的程序进行存储的非易失性计算机可读介质,所述处理包括:获取关于水平数的信息,所述水平数表示测试目标的多个因素中的每一个因素能够获得的值的数量;在能够对基于正交表产生的多水平的因素进行分配的矩阵中,选择能够对至少在所获取的信息中的最大水平数的所有因素进行分配的矩阵;将关于选定矩阵没有进行分配的因素的水平数中的最大水平数设定为所关注水平数;当选定矩阵中能够对所关注水平数的因素进行分配的列的数量等于或大于所关注水平数的因素的数量时,将所关注水平数的因素分配至所述矩阵;在选定矩阵中能够对所关注水平数的因素进行分配的列的数量不满足等于或大于所关注水平数的因素的数量的情况下,当矩阵中存在能够对水平数大于所关注水平数的因素进行分配的剩余列时,通过将剩余列拆分为能够对所关注水平数的因素进行分配的多列来更新矩阵;以及在分配处理或更新处理之后执行设定处理,并且递归地执行设定处理、分配处理和更新处理。
[0018] 本发明的有益效果
[0019] 根据[1]、[6]、[7]和[8]的配置,即使在不同水平数的因素混入测试目标的情况下,也能够抑制测试例数量的增加。
[0020] 根据[2]的配置,与具有不同配置的情况相比,能够覆盖易于计算的所有水平的因素。
[0021] 根据[3]的配置,与不具有这种配置的情况相比,能够增加可测试的因素的数量。
[0022] 根据[4]的配置,与不具有这种配置的情况相比,能够获得可向其分配测试目标的因素的矩阵。
[0023] 根据[5]的配置,能够提供可向其分配测试目标的所有因素的矩阵。附图说明
[0024] 图1是关于本发明实施例的测试设计辅助装置的功能框图
[0025] 图2是示出L16正交表的示图。
[0026] 图3是示出为了使L16正交表对应于四水平因素而扩展了的扩展L16正交表的示图。
[0027] 图4是示出可分配给扩展L16正交表的水平数与因素数量的组合的示图。
[0028] 图5是示出可向其分配25个四水平因素的基础测试矩阵的示图。
[0029] 图6是将图5所示的基础测试矩阵的一列拆分为可向其分配两水平因素的多列的示图。
[0030] 图7是示出了基础测试矩阵表的一个示例的示图。
[0031] 图8是由测试设计辅助装置执行的处理的流程图
[0032] 图9是由测试设计辅助装置执行的处理的流程图。
[0033] 图10是用于对HAYST方法、迭代滑动方法以及成对组合方法的评价进行比较的表。
[0034] 图11是用于对HAYST方法、迭代滑动方法以及成对组合方法的评价进行比较的表。
[0035] 图12示出与成对组合测试中具有较少测试例的情况相比、迭代滑动方法中具有更少测试例的因素数量的示图。
[0036] 图13是通过对迭代滑动方法与成对组合方法中的因素数量和测试例数量进行比较而获得的曲线图。
[0037] 图14是示出十二种方式的因素大小和数量模式有关的测试例数量的示图,这十二种方式中的每一种都是使用迭代滑动方法的工具和PICT工具创建的。
[0038] 图15是示出对二十种类型的组合产品执行组合测试时各因素大小的比例的示图。
[0039] 图16是示出使用迭代滑动方法的工具和PICT工具执行的分配的结果的示图。
[0040] 图17是通过对迭代滑动方法中的分配结果和估算结果进行比较而获得的示图。
[0041] 图18是通过对迭代滑动方法中的分配结果和估算结果进行比较而获得的示图。

具体实施方式

[0042] 下面,将参照附图描述本发明的实施例(下面称其为本实施例)。
[0043] [1.对测试设计辅助装置10所提供的功能的描述]
[0044] 图1是关于本实施例的测试设计辅助装置10的功能框图。如图1所示,测试设计辅助装置10包括输入接收单元11、测试信息获取单元12、测试矩阵需求信息产生单元13、基础测试矩阵数据产生单元14、基础测试矩阵数据存储单元15、基础测试矩阵选择单元16、测试矩阵数据存储单元17、因素分配确定单元18、测试矩阵更新单元19、以及测试矩阵输出单元20。同时,根据本实施例的测试设计辅助装置10产生测试矩阵,当对软件执行测试时,在所述测试矩阵的每一行中示出测试目标的各因素的各水平的集合。也就是说,所述测试矩阵的一行对应于一个测试例。
[0045] 可以通过使计算机对存储在计算机可读信息存储介质中的程序执行读取,来实现包括在测试设计辅助装置10中的上述各个单元的功能,该计算机包括控制元件(例如CPU)、存储元件(例如存储器)、以及用于向外部装置传送数据并从外部装置接收数据的输入输出元件。同时,可由信息存储介质(例如光盘、磁盘、磁带、磁光盘以及闪速存储器)向与所述计算机相对应的测试设计辅助装置10提供所述程序,或者通过数据通信网络(例如互联网)向测试设计辅助装置10提供所述程序。
[0046] 输入接收单元11接收通过使用输入装置或外部装置(例如键盘鼠标)输入的数据。
[0047] 测试信息获取单元12可以基于输入接收单元11所接收的数据,来获取在测试目标软件中的测试目标的各个因素(测试目标软件中指示输入、环境条件和状态的变量)以及各个因素的各水平(因素能够获取的值)的信息(测试目标信息)。这里,测试目标信息将因素总数量表示为n,将第k个因素表示为Tk,将第k个因素中包括的水平数表示为Sk(1≤k≤n),并将第k个因素中包括的第l个水平的值表示为Skl(1≤l≤S1)。
[0048] 测试矩阵需求信息产生单元13基于测试信息获取单元12所获得的测试目标信息来产生关于测试矩阵的需求信息,该需求信息是对测试目标的各个因素进行分配所需要的。具体而言,测试矩阵需求信息产生单元13向测试目标信息中所包括的各个因素之中的水平数不是2的幂的因素添加水平数,从而将这些因素的水平数设定为2的幂。也就是说,如果第k个因素中包括的水平数Sk满足关系2(i-1)<Sk<2i,则向因素Tk添加虚设水平,直到水平数Sk被设定为2i。这里,虚设水平可以是因素Tk的各个水平中的任何一个,但是,可以选择例如期望进行更多次测试的水平作为虚设水平。
[0049] 基础测试矩阵数据产生单元14产生关于基础测试矩阵的数据,所述基础测试矩阵成为用于产生测试矩阵的基础。这里,将结合具体的示例对在根据正交表产生基础测试矩阵的情况下的处理示例进行描述。
[0050] 图2示出了一个L16正交表。同时,该正交表用于表示这种情况下的矩阵A,即,当考虑关于正整数集合S={0,1,2,……,s-1}的具有λ×s2行和m列的矩阵A时,针对矩阵A的任何两列,完全示出了所有λ个有序对S×S={(0,0),(0,1),…,(0,(s-1)),(1,0),(1,1),…,((s-1),(s-1))}。另外,L16正交表是具有16行和15列的正交表。
[0051] 如图2所示,L16正交表中的各组分的值是0或1,因此各组分仅对应于两水平的因素,因而对L16正交表进行扩展,从而使各组分对应于三水平以上的因素。
[0052] 图3示出了为了对应于四水平因素而扩展了的扩展L16正交表。图3所示的扩展L16正交表是通过利用实验设计方法的多水平列创建方法对各个交互作用列进行彼此组合而获得的对图2所示的L16正交表的修改。例如,在图3所示的L16正交表中,可将1、2和3列作为两水平(0,1)的因素使用,即使通过组合两水平的因素而将1-2-3列作为四水平(000,011,101,110)的因素使用时,仍保持了正交性。然而,1、2和3列中的任何一列与1-2-3列的组合仅表现为一半,因而不可能同时使用这两列。由于这个原因,可分配给扩展L16正交表的水平数与因素数量的组合如图4中示出的那样。
[0053] 这里,将对正交表的扩展方法(滑动方法)进行描述,该方法用于增加可在相同水平数的正交表上进行测试的因素的数量。滑动方法是通过其列数对各正交表进行横向连接并将表形成为两段的方法,所述各正交表仅具有这样的因素,即,这些因素中的每一个都具有相同的水平数。这里,第二段的正交表被配置为:将第二个表和后续各表的各列逐一向左侧滑动,以使上段的行的内容不与下段的行的内容重叠。这里,当提供了仅含具有相同水平数的因素的、由m行和n列形成的正交表Lm时,一种使用滑动方法创建由2m行和n2列形成的测试矩阵M2m的算法如下。
[0054] 首先,作为步骤1,通过应用以下公式(1)对正交表进行横向扩展,来产生上段的矩阵。
[0055] [公式1]
[0056]
[0057] 这里,假设公式(1)中的操作符(圆圈中的+)是添加各列的操作符,并假设M’m是通过对n个正交表Lm进行横向连接而获得的。这意味着通过列数对各初始正交表Lm进行横向对齐。
[0058] 接下来,作为步骤2,通过应用以下公式(2)产生下段的矩阵。
[0059]
[0060]
[0061] 这里,当假设li为正交表Lm中的第i列时,假设Lmi是下一公式中的表。
[0062] [公式3]
[0063]
[0064] 也就是说,Lmi是起于正交表Lm中的第i列且止于正交表Lm中的第(i-1)列的正交表。
[0065] 最后,作为步骤3,通过应用以下公式(4)使上段的矩阵和下段的矩阵重叠,来产生测试矩阵M2m。
[0066] [公式4]
[0067]
[0068] 这里,假设公式(4)中的操作符(方框中的+)是添加各行的操作符。
[0069] 这里,针对其中将两水平正交表扩展为两水平或更多水平正交表的矩阵,基础测试矩阵数据产生单元14通过应用上述滑动方法来产生基础测试矩阵。
[0070] 例如,当L16正交表被用于在其中以两水平分配全部因素时,获得225列和32行的基础测试矩阵,而当L16正交表被用于在其中以四水平分配全部因素时,获得25列和32行的基础测试矩阵(参照图5)。按照这种方式,基础测试矩阵产生单元基于可选大小的正交表Lm,来产生能够对具有一水平或更高水平数的因素进行分配的基础测试矩阵。
[0071] 同时,对于如图5所示的能够对25个四水平因素进行分配的基础测试矩阵,可以将其中的一列或多列拆分为能够对两水平因素进行分配的多列,如图6中所示。在图6所示的各列中,将图5所示的Y列拆分为能够对两水平因素进行分配的八列。按照这种方式,产生了能够对24个四水平因素和八个两水平因素进行分配的测试矩阵。
[0072] 基础测试矩阵数据存储单元15存储了与由基础测试矩阵数据产生单元14产生的基础测试矩阵有关的数据。
[0073] 图7是示出了在基础测试矩阵数据存储单元15中存储的基础测试矩阵表的示例的示图。如图7所示,在基础矩阵存储表中存储了关于测试矩阵的配置、可执行的测试例的数量、以及针对每种大小(水平数)的因素的可分配因素的数量的信息项,同时这些信息项彼此相关。这里,在测试矩阵被配置为具有Lm×2段的情况下,这意味着通过利用滑动方法对正交表Lm进行扩展而产生了能够与正交表Lm相对应的水平数或因素数量。
[0074] 基础测试矩阵选择单元16基于由测试矩阵需求信息产生单元13产生的测试矩阵需求信息(通过使每个因素的水平数为2的幂而获得的数据),从存储在基础测试矩阵数据存储单元15中的基础测试矩阵表中选择基础测试矩阵。例如,基础测试矩阵选择单元16可以从基础测试矩阵表中选择能够对测试矩阵需求信息中具有最大水平数的所有因素进行分配的基础测试矩阵。
[0075] 测试矩阵数据存储单元17将由基础测试矩阵选择单元16选择的基础测试矩阵存储为测试矩阵的初始数据。同时,基于由因素分配确定单元18获得的确定结果,由测试矩阵更新单元19对在测试矩阵数据存储单元17中存储的测试矩阵进行更新。
[0076] 因素分配确定单元18用于确定能否按照从包括在测试矩阵需求信息中的具有高水平的因素开始的顺序,来关于测试矩阵数据存储单元17中存储的测试矩阵执行各因素的分配。在具有目标水平数的所有因素可分配至当前(在尚未执行更新的初始状态中的,或者在已经执行了更新的更新之后的)测试矩阵的情况下,因素分配确定单元18关于当前测试矩阵对因素进行分配,而在无法执行分配的情况下,当剩余了能够对具有比目标水平数更高水平数的因素进行分配的列时,因素分配确定单元18指示测试矩阵更新单元19将该列拆分为能够对具有目标水平数的因素进行分配的多列。另外,因素分配确定单元18预先确定能否关于更新后的测试矩阵执行各因素的分配。此外,在无法将具有目标水平数的因素分配至当前测试矩阵的情况下,当未剩余能够对具有比目标水平数更高水平数的因素进行分配的列时,因素分配确定单元18可确定无法执行分配,并且可指示基础测试矩阵选择单元16重新选择基础测试矩阵。另外,当能够将测试矩阵需求信息中所包括的具有最小水平数的所有因素分配至在测试矩阵数据存储单元17中存储的测试矩阵时,因素分配确定单元18确定可以执行分配,并指示测试矩阵输出单元20输出数据。
[0077] 测试矩阵更新单元19基于来自因素分配确定单元18的确定结果,对在测试矩阵数据存储单元17中存储的测试矩阵进行更新。具体地,在无法通过因素分配确定单元18将具有目标水平数的因素分配至当前测试矩阵的情况下,当确定剩余了能够对具有比目标水平数更高水平数的因素进行分配的列时,测试矩阵更新单元19将能够对具有更高水平数的因素进行分配的列拆分为能够对具有目标水平数的因素进行分配的多列,然后对测试矩阵数据存储单元17中存储的测试矩阵进行更新。
[0078] 当因素分配确定单元18确定能够执行分配时,测试矩阵输出单元20输出在测试矩阵数据存储单元17中存储的测试矩阵。例如,测试矩阵的输出包括在显示装置上的测试矩阵的显示、测试矩阵的数据传输、以及打印输出测试矩阵等。
[0079] [2.对测试设计辅助装置10所执行的处理的描述]
[0080] 接下来,将参照图8和图9中示出的流程图详细描述测试设计辅助装置10所执行的处理。
[0081] 如图8所示,测试设计辅助装置10从用户接收关于例如测试目标的因素和水平的信息(测试目标信息)的输入(S101)。如上所述,测试目标信息将因素总数量表示为n,将第k个因素表示为Tk,将第k个因素中包括的水平数表示为Sk(1≤k≤n),并且将第k个因素中包括的第l个水平的值表示为Skl(1≤l≤Si)。
[0082] 接下来,测试设计辅助装置10将变量k设定为1(S102),并且当因素Tk的水平数Sk不是2的幂时(S103:否),通过向因素Tk添加虚设水平而把Sk校正为2的幂(S104)。
[0083] 在因素Tk的水平数Sk是2的幂的情况下(S103:是),或者在S104之后变量k未达到因素总数量n的情况下(S105:否),测试设计辅助装置10通过对k进行累加(k加1)(S106)返回到S103。另外,在变量k达到因素总数量n的情况下(S105:是),测试设计辅助装置10对每个水平2j(j=1至m)的因素数量Cj进行计数(S107)。将参照图9中的流程图对处理S107和后续处理进行描述。
[0084] 如图9所示,在S107之后,测试设计辅助装置10参照基础测试矩阵表来选择能够对最大水平数2m的因素数量Cm进行分配的基础测试矩阵(S201)。例如,测试设计辅助装置10可以从基础测试矩阵表中选择其中能够被分配到水平数2m的因素数量等于或大于Cm的基础测试矩阵。然后,测试设计辅助装置10将选定的基础测试矩阵设定为测试矩阵M的初始数据。
[0085] 接下来,测试设计辅助装置10获取能够针对测试矩阵M的每个水平2j(j=1至m)进行分配的因素数量dj(S202)。然后,测试设计辅助装置10通过将变量i设定为m(S203)来执行下面的处理。
[0086] 首先,在测试设计辅助装置10中,当变量i等于或大于1时(S204:是),所述处理进行至S205。此时,在测试设计辅助装置10中,当关于测试目标信息的水平2i的因素数量Ci为0时(S205:是),所述处理通过使变量i递减(i减1)(S206)而进行至S204。另外,在测试设计辅i助装置10中,当关于测试目标信息的水平2的因素数量Ci不为0时(S205:否),所述处理进行至下面的处理。
[0087] 在测试设计辅助装置10中,当关于测试目标信息的水平2i的因素数量Ci等于或小于能够在测试矩阵M中针对水平2i进行分配的因素数量di时(S207:是),所述处理通过在将当前的di减去Ci来对di进行更新(S208)的同时,使变量i递减(i减1)(S209)而进行到S204。
[0088] 另外,在测试设计辅助装置10中,当关于测试目标信息的水平2i的因素数量Ci不满足等于或小于能够在测试矩阵M中针对水平2i进行分配的因素数量di时(S207:否),所述处理进行至下面的处理。
[0089] 这里,当测试矩阵M中存在满足表达式k>i且dk>0的k时(S210:是),测试设计辅助装置10通过对测试矩阵M中具有水平2k的dk列进行拆分,来创建具有水平2i的Δdk列i(S211)。另外,在测试设计辅助装置10中,通过向能够在测试矩阵中针对水平2进行分配的因素数量di加上Δdk(S212),所述处理返回至S207。
[0090] 此外,当测试矩阵M中不存在满足表达式k>i且dk>0的k时(S210:否),测试设计辅助装置10确定基础测试矩阵表中是否存在比测试矩阵M更大的基础测试矩阵(S213)。
[0091] 当在S213中确定不存在比测试矩阵M更大的基础测试矩阵时(S213:否),测试设计辅助装置10产生比测试矩阵M更大的基础测试矩阵(S214)。可由基础测试矩阵数据产生单元14执行产生基础测试矩阵的操作。
[0092] 在测试设计辅助装置10中,当在S213中确定存在比测试矩阵M更大的基础测试矩阵时(S213:是),或者在S214之后,所述处理通过选择比测试矩阵M更大的基础测试矩阵作为新的测试矩阵M而返回至S202。
[0093] 同时,在测试设计辅助装置10中,当在S204中变量i不等于或大于1时,也就是说,变量i被设定为0时(S204:否),在关于测试目标信息对所有因素进行分配的操作完成时,通过输出测试矩阵M(S216)而完成所述处理。
[0094] 在上述流程图中,当测试设计辅助装置10在S213中确定不存在比测试矩阵M更大的基础测试矩阵时(S213:否),所述处理可以通过使得因素数量和水平数更低而不是产生比测试矩阵M更大的基础测试矩阵来返回至S202(S214),或者可以以不能对因素进行分配的结果来结束所述处理。
[0095] [3.对测试例数量的描述]
[0096] 接下来,关于利用根据本发明的方法(在下文中将其称作迭代滑动方法)创建的测试矩阵(表),对测试例(行)数量的估算将被公式化。首先,假设利用迭代滑动方法创建的表是利用滑动方法的因素数量为n1、n2的表。这里,将因素大小表示为S1、S2等,将利用滑动方法的表的大小表示为N1、N2等。表的大小如以下公式(5)所示(这里,用N2表示)。
[0097] [公式5]
[0098]
[0099] 相应地,在公式(6)中示出了利用迭代滑动方法创建的表的大小N。
[0100] [公式6]
[0101]
[0102] [4.根据本实施例的方法的评价及效果]
[0103] 接下来,对以下方法进行比较和评价:迭代滑动方法和根据正交表的方法(下面称作HAYST方法)、以及PICT。
[0104] [4-1.评价方法]
[0105] 为了比较迭代滑动方法和成对组合测试,选取“因素、水平、测试例的数量、覆盖率以及强度”作为关于组合测试例的评价的主要理由。选取这些主要理由的原因如下。首先,由因素和水平确定测试目标的规模(scale)。在组合测试中,由于组合了具有不同大小的多个因素,因此假设测试目标的因素和水平通过将因素数量变为所述因素包括的水平数的上标的方式来表示。例如,当四水平测试目标的因素数量、三水平测试目标的因素数量、两水15 17 39
平测试目标的因素数量分别为15、17和39时,用4 3 2 来表示。这表示轮循所有水平的组合数量。测试例的数量对应于在HAYST方法中应用的正交表的行数,并且对应于成对组合测试中所产生的行数。覆盖率是从测试目标的所有因素中提取任意k个因素时与所有水平的组合数量相关的比例,并被称作k个因素之间的覆盖率。强度是当测试矩阵处于k个因素之间的覆盖率为100%的状态时k的值。例如,当两个因素之间的覆盖率为100%时,该表被称作“强度为2的表”。正交表一定具有强度2。另外,成对组合测试是添加测试例直到将强度设定为2的技术。正交表和成对组合测试这两者均可创建具有强度3的测试矩阵(这被称作k路测试)。
[0106] 关于以下三点,通过采用上文描述的评价的主要理由,来执行对HAYST方法和成对组合测试的评价:(A)利用公式化的(formulated)近似公式对测试例数量进行的评价、(B)对测试例数量的实际测量值以及三个因素的覆盖率进行的评价、以及(C)对测试矩阵的组合的出现次数进行的评价。
[0107] [4-1-1.利用公式化的近似公式对测试例数量的评价]
[0108] 如公式(6)所示,迭代滑动方法的测试例的数量以因素数量的二分之一次幂的速度增长。在以下公式(7)中示出了HAYST方法的测试例的数量。另外,当成对组合测试使用PICT工具所采用的贪婪算法时,在以下公式(8)中对测试例的数量进行了近似。
[0109] [公式7]
[0110]
[0111] [公式8]
[0112]
[0113] 这里,l表示因素的大小。
[0114] 图10示出了当上文的近似公式(6)、近似公式(7)和近似公式(8)中因素的大小为2时的近似计算结果。由于利用HAYST方法(正交表)集中示出了各个因素,因此采用2的幂减1而获得的值作为因素数量。因而,例如利用HAYST方法的值为16的部分对应于使用L16正交表。
[0115] 如图10所示,例如,在所有因素的大小为2的情况下,与HAYST方法相比,例如,因素数量为255,在迭代滑动方法中,因素数量减少到测试例数量的1/7。
[0116] 图11示出了当因素大小设定为8时在相同的计算中的计算结果和实际测量值。因为未在正交表L1024、L2048和L4096中创建八水平的线性图表,所以出现了“无效”情形。这些情形在逻辑上应为1024例、2048例和4096例。
[0117] 当对大小为8的81个因素进行分配时,也就是说,在使用了迭代滑动方法的所有列的情况下,利用迭代滑动方法获取128个测试例,并利用PICT工具获取204个测试例。根据近似公式,当因素数量较少时,利用迭代滑动方法获取的测试例的数量较少,但是当因素数量大于378时,利用成对组合测试获取的测试例的数量变得更少。
[0118] 图12示出了与成对组合测试中具有较少测试例相比,迭代滑动方法中具有更少的测试例的因素数量。图12示出了利用迭代滑动方法获取的测试例的数量少于利用成对组合方法获取的测试例的数量,直到近似公式中的四水平因素的数量为53。八水平因素数量为377,而十六水平因素数量为2251。十六水平因素数量的测量值的实际数量为289,利用迭代滑动方法获得的数量为512,而利用PICT工具获得的数量为1050。
[0119] 图13是当因素的大小被固定为8时,通过比较迭代滑动方法与成对组合方法中的因素数量和测试例数量而获得的曲线图。应当理解,曲线在因素数量大于377的位置交叉。同时,利用成对组合方法获取的两水平因素的数量始终小于利用迭代滑动方法获取的两水平因素的数量。另外,类似地,在利用成对组合方法获取的三水平因素的数量小于利用迭代滑动方法获取的三水平因素的数量的情况下,由于利用迭代滑动方法添加了虚设水平以使所述因素具有四水平,因此产生了浪费。通过这种方式,对于水平数等于或大于四水平的因素,由于因素的水平数较大,因此利用迭代滑动方法获取的测试例的数量小于利用成对组合测试获取的测试例的数量。
[0120] 如上所述,使用近似公式执行关注于测试例数量的比较和评价。通常,利用正交表获取的测试例的数量大于利用成对组合测试获取的测试例的数量,但是正交表具有对组合出现的出色均衡,并因此与成对组合测试相比具有更高的多因素覆盖率。
[0121] [4-1-2.对测试例数量的实际测量值以及三个因素之间的覆盖率进行的评价][0122] 接下来,通过使用十二种类型的样本,对分别利用迭代滑动方法和成对组合方法获取的、其中实际分配了因素的测试例的数量进行比较,并比较两种方法中三个因素之间的覆盖率。图14示出了这一比较结果。
[0123] 图14是示出与十二种方式的因素大小和数量模式有关的测试例数量的示图,这十二种方式中的每一种都是使用迭代滑动方法的工具和PICT工具创建的。同时,由于这两种方法中两个因素之间的覆盖率均为100%,因此在圆括号中示出了三个因素之间的覆盖率。成对组合方法的列中的第一项表示两个因素之间的覆盖率为100%时(默认产生模式)产生的结果,并且第二项表示通过对三个因素之间的覆盖率和迭代滑动方法的结果进行比较、将产生的测试例的数量添加至利用迭代滑动方法获取的产生的测试例的数量而获得的值。
通过强度为3的成对组合测试产生例1至例5,其中利用成对组合测试产生的测试例的数量较少,然后将例1至例5与利用迭代滑动方法获取的测试例的数量进行组合,并且在强度为2的情况下产生其他测试例,然后减少其他测试例以匹配测试例的数量。例1至例5中的各个因素是两水平至四水平的。相比之下,利用成对组合方法实现两个因素之间的100%覆盖率的测试例数量约为利用迭代滑动方法实现两个因素之间的100%覆盖率的测试例数量的一半。另外,在利用成对组合方法使与迭代滑动方法中的测试例数量相同的测试例数量增加的情况下,三个因素之间的覆盖率被设定为比迭代滑动方法中的三个因素之间的覆盖率更高的值。根据以上描述,在这些例中最好使用成对组合方法。例6至例8中的因素是八水平和十六水平的。相比之下,利用迭代滑动方法实现两个因素之间的100%覆盖率的测试例数量小于利用成对组合方法实现两个因素之间的100%覆盖率的测试例数量。当利用成对组合方法产生的测试例的数量减少到与利用迭代滑动方法产生的测试例的数量相同时,迭代滑动方法具有更高的三个因素的覆盖率。由于这个原因,最好使用迭代滑动方法。例9至例12示出了利用迭代滑动方法分配各因素和各水平而其相互之间没有空隙的模式。在这样的模式中,测试例的数量相同,或者迭代滑动方法具有比成对组合方法更少的测试例数量。同时,表中(-)的部分是由于因素数量较大而导致无法计算三个因素之间的覆盖率的部分。在本实施例中,水平数等于或大于五水平的因素被称作“大因素”,并且水平数等于或小于四水平的因素被称作“小因素”。在排序处理中根据实际产品测试中因素大小的分布来确定因素的大小。
[0124] 图15示出了对二十种类型的组合产品执行组合测试时因素大小的比例。根据图15,应当理解,四水平的小因素占全部因素的76%,但是五水平的大因素占24%、并因此无法被忽略。
[0125] 如上所述,成对组合方法在只具有小因素的测试(图14中的例1至例5)中具有优势,而涉及到大因素(图14中的例6至例12)时,迭代滑动方法具有优势,这一事实不仅可由上文所述的近似公式证实,还可由实际测量值证实。另外,正交表通常在三个因素之间的覆盖率上表现出色。然而,当对测试例的数量进行匹配时,除例3外各例的差别在5%以内,因此认为,测试例数量的差别对三个因素之间的覆盖率的确定具有贡献。
[0126] 这里,比较三个因素之间的覆盖率这一数据,图14的例2中存在31.3%的较大差别,但是可以认为,在迭代滑动方法中假设了三水平的因素是四水平的因素。其原因是,如果按照413而非313的方式产生所述因素,则各值彼此接近,也就是说,在迭代滑动方法中值为31(42.3%),而在成对组合方法中该值为33(45.1%)和31(43.1%)。
[0127] [4-1-3.关于测试矩阵的组合的出现次数的评价]
[0128] 基于正交表执行迭代滑动方法,因此,在前一半测试例和后一半测试例中与正交表中的相同的组合出现相同的次数。因此可以利用前一半测试例的结果执行对通过迭代滑动方法横向增长了的正交表中不同列之间的总离散度和交互作用的分析,并且可利用后一半测试例的结果执行对正交表中相同列之间的总离散度和交互作用的分析。例如,可以考虑L8被配置为两段构造的情况。有七个两水平因素(设定A1至G1)作为L8的示例,L8是这些因素的源。这七个因素彼此横向相连,并且当分析第一因素A1时,移除正交表中对应于A1的剩余六个因素(A2至A7)。由于因素A1和前一半中被移除的因素在后一半正交表中彼此正交,因此在后一半正交表中仅对A1至A7进行分析。
[0129] 如上所述,可以确定的是,对于测试结果分析功能,测试矩阵的组合的出现次数变得非常重要。因此,在测试结果分析这一方面,通过扩展HAYST方法而执行的迭代滑动方法优于成对组合测试。
[0130] [4-2.迭代滑动方法的效果]
[0131] 采用迭代滑动方法,能够抑制利用HAYST方法的测试的弱点:“在测试目标拥有较大数量的小因素的情况下测试例数量的增长”,也就是说,将“相对于因素数量n的测试例N的临时功能性增长”变为“测试例以因素数量n1/2的速度增长”,也就是说,测试例以因素数量的二分之一次幂(平方根)的速度增长。
[0132] 另外,与HAYST方法相比,在迭代滑动方法中,没有改变100%的两个功能之间的覆盖率,并且测试例数量的临时功能性增长转变为测试例以因素数量的二分之一次幂的速度增长,减少了测试例的数量。另外,对根据本实施例的技术与成对组合测试进行比较,在两水平或三水平因素的情况下,利用成对组合测试获取的测试例的数量更少,但是在图12中的近似公式的条件下在水平数等于或大于四水平的因素的情况下,利用根据本实施例的技术获取的测试例的数量更少。这里,由于迭代滑动方法的测试例的大小是2的幂,因此并没有实际上固定测试矩阵的大小。
[0133] 图16示出了通过使用迭代滑动方法的工具和PICT工具来执行分配的结果。通过289个八水平因素,可以证实利用迭代滑动方法获取的测试例的数量较少。在本文中并没有用十六水平的超过289个因素创建测试例,但是可以认为图12中的接近2251的值实际上会得到证实。
[0134] 接下来,将考虑对测试例数量的估算公式。当在图14中的条件下使用公式(6)计算测试次数时,获得如图17所示的结果。
[0135] 在图17中的迭代滑动方法的列中,存在测试例数量(行数)不是2的幂的项,这是由于按照两段方式对各例进行组合时,移除了第一行中的相同的例。另外,在一些例中,利用迭代滑动方法创建的表中的测试例数量与根据公式(6)估算的测试例数量之间存在较大的差。这是由于正交表的大小仅为2的幂,因此没有在正交表中出现固定的大小(对因素进行分配的各列保持不变)。这里,当通过将值向上取整到大于该值的2的幂的方式,对根据公式(6)的估算所获得的值进行计算时,获得图18中示出的结果。
[0136] 按照这种方式,当使用迭代滑动方法时,测试例数量的特性变得清楚,因此可以进行估算。因此,在测试规划和测试需求分析的步骤中,当使用通过迭代滑动方法公式化的测试例数量来完成设计时,能够在效果和效率之间进行折中。也就是说,通过参照以下四个步骤,可以重新设计测试例数量:(步骤1),选择要进行组合的因素和水平;(步骤2),基于公式(6)中的估算来计算测试例数量;(步骤3),将比在(步骤2)中获得的值更大的数量向上取整到2的幂;以及(步骤4),对在(步骤3)中获得的值和从测试次数推导出的测试例的可能数量进行比较。
[0137] 另外,当从估算公式获得的测试例数量小于能够执行的测试例的数量时,能够通过添加因素来执行更全面的测试。在成对组合测试的情况下,在执行分配之后,清除测试例数量。另外,不存在关于应当移除多少因素以获取期望数量测试例的信息,因此反复进行试错。
[0138] 本发明并不限于上文描述的实施例。另外,可以把与由上文提及的测试设计辅助装置10产生的测试矩阵的每一列的水平数相对应的各个因素和具体的各水平的值分配到每一列,并且可以顺序地执行针对测试矩阵的各行的测试例。
[0139] 工业适用性
[0140] 根据本发明的测试设计辅助装置、测试设计辅助方法、程序和计算机可读介质对于例如验证软件的操作是有帮助的。
[0141] 虽然到目前为止已经参照具体实施例对本发明进行了详细描述,但是对于本领域技术人员而言显而易见的是,可以在不背离本发明的精神和范围的情况下进行许多不同的变化和修改。
[0142] 本申请基于在2013年3月14日提交的日本专利申请(日本专利申请号No.2013-051948),该申请的全部内容以引用方式并入本文中。
[0143] 参考标记列表
[0144] 10:测试设计辅助装置
[0145] 11:输入接收单元
[0146] 12:测试信息获取单元
[0147] 13:测试矩阵需求信息产生单元
[0148] 14:基础测试矩阵数据产生单元
[0149] 15:基础测试矩阵数据存储单元
[0150] 16:基础测试矩阵选择单元
[0151] 17:测试矩阵数据存储单元
[0152] 18:因素分配确定单元
[0153] 19:测试矩阵更新单元
[0154] 20:测试矩阵输出单元
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈