测试数据生成方法及装置、存储介质及电子设备与流程

文档序号:31053701发布日期:2022-08-06 09:48阅读:99来源:国知局
测试数据生成方法及装置、存储介质及电子设备与流程

1.本公开涉及计算机技术领域,具体而言,涉及一种测试数据生成识 别、测试数据生成装置、计算机可读存储介质及电子设备。


背景技术:

2.在当今社会中,互联网的使用领域越来越广泛,越来越多的应用程 序被开发出来,以丰富用户的各种需求。在应用程序的开发过程中,需 要进行应用程序测试,以识别应用程序在使用过程中可能出现的错误。
3.在相关技术中,应用程序开发人员可以根据测试覆盖标准对历史数 据处理进行处理,以生成测试数据。然而,相关技术中的方案,需要对 历史数据进行标注,并根据标注结果构建测试数据,其测试数据生成效 率较低,此外,在对应用程序进行测试时,需要保证测试数据所覆盖的 场景,因此较为依赖人工经验,一些经验不太丰富的测试人员设计的测 试数据所涉及到的场景不够全面,导致应用程序测试效果较差。
4.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公 开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现 有技术的信息。


技术实现要素:

5.本公开的目的在于提供一种测试数据生成方法及测试数据生成装 置、计算机可读存储介质及电子设备,可以解决测试数据生产效率较低 的问题。
6.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分 地通过本公开的实践而习得。
7.根据本公开的第一方面,提供了一种测试数据生成方法,包括:获 取样本测试数据对应的测试标题;其中,所述测试标题用于指示所述测 试标题对应的样本测试数据的相关信息;将所述测试标题划分为多个测 试标题分词,计算所述多个测试标题分词对应的分词权重;根据所述测 试标题分词对应的分词权重将所述多个样本测试数据划分为多个测试类 簇;其中,所述测试类簇对应有至少一个数据字段,各所述测试类簇对 应的数据字段不同;获取测试对象对应的数据字段模板,根据所述测试 对象对应的数据字段模板匹配所述测试类簇;通过所述测试类簇生成所 述测试对象对应的测试数据。
8.在本公开的一种示例性实施例中,基于前述方案,所述计算所述多 个测试标题分词对应的分词权重,包括:计算所述多个测试标题分词对 应的词频以及所述多个测试标题分词对应的逆向文件频率;根据所述多 个测试标题分词对应的词频以及所述多个测试标题分词对应的逆向文件 频率确定所述多个测试标题分词对应的分词权重。
9.在本公开的一种示例性实施例中,基于前述方案,所述根据所述测 试标题分词对应的分词权重将所述多个样本测试数据划分为多个测试类 簇,包括:将所述测试标题分词转化为分词向量,通过所述测试标题分 词对应的分词权重以及所述分词向量确定加权分词向量;根据所述加权 分词向量将所述多个样本测试数据划分为多个测试类簇。
10.在本公开的一种示例性实施例中,基于前述方案,所述根据所述测 试标题分词对应的分词权重将所述多个样本测试数据划分为多个测试类 簇,包括:选取预设数目的初始聚类中心,在所述多个测试标题分词中 选取未进行聚类的样本测试数据;根据所述分词权重计算所述未进行聚 类的样本测试数据与所述初始聚类中心的距离;将所述未进行聚类的样 本测试数据分配至距离最近的初始聚类中心;在所述样本测试数据分配 完毕时,根据所述初始聚类中心对应的样本测试数据重新计算聚类中 心;迭代计算所述聚类中心直至满足聚类条件得到聚类结果,根据所述 聚类结果确定多个测试类簇。
11.在本公开的一种示例性实施例中,基于前述方案,所述根据所述测 试对象对应的数据字段模板匹配所述测试类簇,包括:获取所述数据字 段模板对应的字段种类;获取所述测试类簇对应的字段种类;在所述测 试类簇对应的字段种类包括所述数据字段模板对应的字段种类时,将所 述测试类簇确定为所述测试对象匹配的测试类簇。
12.在本公开的一种示例性实施例中,基于前述方案,所述通过所述测 试类簇生成所述测试对象对应的测试数据,包括:获取所述测试类簇中 的多个样本测试数据,获取所述样本测试数据的字段种类以及所述字段 种类对应的字段值;根据所述字段种类对应的字段值生成所述测试对象 对应的测试数据。
13.在本公开的一种示例性实施例中,基于前述方案,所述根据所述字 段种类对应的字段值生成所述测试对象对应的测试数据,包括:通过笛 卡尔积方法扩展所述字段种类对应的字段值得到扩展字段值组合;将所 述扩展字段值组合确定为所述测试对象对应的测试数据。
14.根据本公开的第二方面,提供了一种测试数据生成装置,包括:测 试标题获取模块,用于获取样本测试数据对应的测试标题;其中,所述 测试标题用于指示所述测试标题对应的样本测试数据的相关信息;分词 权重计算模块,用于将所述测试标题划分为多个测试标题分词,计算所 述多个测试标题分词对应的分词权重;测试类簇划分模块,用于根据所 述测试标题分词对应的分词权重将所述多个样本测试数据划分为多个测 试类簇;其中,所述测试类簇对应有至少一个数据字段,各所述测试类 簇对应的数据字段不同;测试类簇匹配模块,用于获取测试对象对应的 数据字段模板,根据所述测试对象对应的数据字段模板匹配所述测试类 簇;测试数据生成模块,用于通过所述测试类簇生成所述测试对象对应 的测试数据。
15.根据本公开的第三方面,提供了一种计算机可读存储介质,其上存 储有计算机程序,所述程序被处理器执行时实现如上述实施例中第一方 面所述的测试数据生成方法。
16.根据本公开的第四方面,提供了一种电子设备,包括:
17.一个或多个处理器;以及
18.存储装置,用于存储一个或多个程序,当所述一个或多个程序被所 述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实 施例中第一方面所述的测试数据生成方法。
19.本公开实施例提供的技术方案可以包括以下有益效果:
20.本公开的一种实施例所述提供的测试数据生成方法中,获取测试标 题,将测试标题划分为多个测试标题分词,并计算测试标题分词对应的 分词权重,根据测试标题分词对应的分词权重将多个样本测试数据划分 为多个测试类簇,根据测试对象对应的数据字段
模板匹配测试类簇,通 过测试类簇生成测试对象对应的测试数据。
21.一方面,可以通过测试标题对应的分词权重将样本测试数据划分为 多个类簇,无需测试人员手动标注,此外,在将样本测试数据划分为多 个测试类簇之后,只需要根据所要测试的应用程序的字段模板匹配对应 的测试类簇,就可以通过该测试类簇生成测试数据,从而提升了测试数 据的生成效率,进而提升了应用程序的开发效率;另一方面,在将样本 测试数据划分为多个测试类簇之后,通过所述测试类簇生成所述测试对 象对应的测试数据,能够保证测试数据的多样性,从而使得测试数据所 涉及到的场景更全面,即测试场景的覆盖率更高。
22.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解 释性的,并不能限制本公开。
附图说明
23.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合 本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见 地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技 术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得 其他的附图。在附图中:
24.图1示意性示出了可以应用本公开实施例的一种测试数据生成方法 的示例性系统架构的示意图;
25.图2示意性示出本公开示例性实施例中测试数据生成方法的流程 图;
26.图3示意性示出本公开示例性实施例中根据多个测试标题分词对应 的词频以及多个测试标题分词对应的逆向文件频率确定多个测试标题分 词对应的分词权重的流程图;
27.图4示意性示出本公开示例性实施例中根据加权分词向量将多个样 本测试数据划分为多个测试类簇的流程图;
28.图5示意性示出本公开示例性实施例中迭代计算聚类中心直至满足 聚类条件得到聚类结果,根据聚类结果确定多个测试类簇的流程图;
29.图6示意性示出本公开示例性实施例中在测试类簇对应的字段种类 包括数据字段模板对应的字段种类时,将测试类簇确定为测试对象匹配 的测试类簇的流程图;
30.图7示意性示出本公开示例性实施例中根据字段种类对应的字段值 生成测试对象对应的测试数据的流程图;
31.图8示意性示出本公开示例性实施例中通过笛卡尔积方法扩展字段 种类对应的字段值得到扩展字段值组合,并将扩展字段值组合确定为测 试对象对应的测试数据的流程图;
32.图9示意性示出本公开示例性实施例中实现本公开的测试数据生成 方法的模块的示意图;
33.图10示意性示出本公开示例性实施例中一种测试数据生成装置的 组成示意图;
34.图11示意性示出了适于用来实现本公开示例性实施例的电子设备 的计算机系统的结构示意图。
具体实施方式
35.现在将参照附图更全面地描述示例实施方式。然而,示例实施方式 能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提 供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构 思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以 任何合适的方式结合在一个或更多实施方式中。此外,所描述的特征、 结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面 的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。 然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特 定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤 等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、 材料或者操作以避免模糊本公开的各方面。
36.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的 实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或 多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不 同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
37.图1示出了可以应用本公开实施例的测试数据生成方法的示例性系 统架构的示意图。
38.如图1所示,系统架构1000可以包括终端设备1001、1002、1003 中的一种或多种,网络1004和服务器1005。网络1004用以在终端设 备1001、1002、1003和服务器1005之间提供通信链路的介质。网络 1004可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆 等等。
39.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性 的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比 如服务器1005可以是多个服务器组成的服务器集群等。
40.用户可以使用终端设备1001、1002、1003通过网络1004与服务器 1005交互,以接收或发送消息等。终端设备1001、1002、1003可以是 具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、便携 式计算机和台式计算机等等。另外,服务器1005可以是提供各种服务 的服务器。
41.在一种实施例中,本公开的测试数据生成方法的执行主体可以是服 务器1005的实施例中,服务器1005可以获取由终端设备1001、 1002、1003发送的终端的样本测试数据,获取样本测试数据对应的测 试标题,将测试标题划分为多个测试标题分词,计算多个测试标题分词 对应的分词权重,根据测试标题分词对应的分词权重将多个样本测试数 据划分为多个测试类簇,获取测试对象对应的数据字段模板,根据测试 对象对应的数据字段模板匹配测试类簇,通过测试类簇生成测试对象对 应的测试数据,然后将处理后得到的测试对象对应的测试数据返回至终 端设备1001、1002、1003。此外,还可以通过终端设备1001、1002、 1003等执行本公开的测试数据生成方法,以实现根据样本测试数据生 成测试对象对应的测试数据的过程。
42.此外,本公开的测试数据生成方法的实现过程还可以由终端设备 1001、1002、1003和服务器1005共同实现。例如,终端设备1001、 1002、1003可以获取样本测试数据对应的测试标题,将测试标题划分 为多个测试标题分词,然后将得到的多个测试标题对应的分
词权重发送 给服务器1005,以使服务器1005能够计算多个测试标题分词对应的分 词权重,根据测试标题分词对应的分词权重将多个样本测试数据划分为 多个测试类簇,获取测试对象对应的数据字段模板,根据测试对象对应 的数据字段模板匹配测试类簇,通过测试类簇生成测试对象对应的测试 数据。
43.本公开中测试数据生成的方案,可以应用于应用程序或者系统开发 等多个业务场景,在需要生成测试数据对应用程序或者系统进行测试 时,均可以采用本公开的方案。需要说明的是,本公开对于应用场景并 不做特殊限定。
44.根据本示例性实施例中所提供的测试数据生成方法中,获取样本测 试数据对应的测试标题,将测试标题划分为多个测试标题分词,计算多 个测试标题分词对应的分词权重,根据测试标题分词对应的分词权重将 多个样本测试数据划分为多个测试类簇,获取测试对象对应的数据字段 模板,根据测试对象对应的数据字段模板匹配测试类簇,通过测试类簇 生成测试对象对应的测试数据。如图2所示,该测试数据生成方法可以 包括以下步骤:
45.步骤s210,获取样本测试数据对应的测试标题;其中,测试标题 用于指示测试标题对应的样本测试数据的相关信息;
46.步骤s220,将测试标题划分为多个测试标题分词,计算多个测试 标题分词对应的分词权重;
47.步骤s230,根据测试标题分词对应的分词权重将多个样本测试数 据划分为多个测试类簇;其中,测试类簇中的样本测试数据对应有至少 一个数据字段,各测试类簇中的样本测试数据对应的数据字段不同;
48.步骤s240,获取测试对象对应的数据字段模板,根据测试对象对 应的数据字段模板匹配测试类簇;
49.步骤s250,通过测试类簇生成测试对象对应的测试数据。
50.在本示例实施方式所提供的测试数据生产方法中,一方面,可以通 过测试标题对应的分词权重将样本测试数据划分为多个类簇,无需测试 人员手动标注,此外,在将样本测试数据划分为多个测试类簇之后,只 需要根据所要测试的应用程序的字段模板匹配对应的测试类簇,就可以 通过该测试类簇生成测试数据,从而提升了测试数据的生成效率,进而 提升了应用程序的开发效率;另一方面,在将样本测试数据划分为多个 测试类簇之后,通过测试类簇生成测试对象对应的测试数据,能够保证 测试数据的多样性,从而使得测试数据所涉及到的场景更全面,即测试 场景的覆盖率更高。
51.下面,将结合附图及实施例对本示例性实施例中的测试数据生成方 法的步骤s210~s250进行更详细的说明。
52.步骤s210,获取样本测试数据对应的测试标题;其中,测试标题 用于指示测试标题对应的样本测试数据的相关信息;
53.在本公开的一种示例实施例中,获取样本测试数据对应的测试标 题。具体的,样本测试数据可以包括历史项目数据、预构建数据等。可 以将历史项目数据或者预构建数据存储于测试用例数据库中,并在需要 生成测试对象对应的测试数据时,从测试用例数据中获取该些历史项目 数据或者预构建数据作为样本测试数据。需要说明的是,本公开对于样 本测试数据的具体类型以及获取样本测试数据的具体方式并不做特殊限 定。
54.在本公开的一种示例实施例中,在通过上述步骤得到样本测试数据 之后,可以获取样本测试数据对应的测试标题。其中,样本测试数据具 有对应的测试标题,样本测试数据对应的测试标题可以用于指示样本测 试数据的相关信息。举例而言,样本测试数据的相关信息可以包括数据 生成时间、地点、运行日志、运行状态、操作信息等。
55.需要说明的是,本公开对于样本测试数据的相关信息的具体内容并 不做特殊限定。
56.在本公开的一种示例实施例中,可以获取样本测试数据对应的测试 标题。具体的,在得到样本测试数据之后,可以根据样本测试数据的关 联信息获取样本测试数据的测试标题。
57.举例而言,样本测试数据的文件名称可以用于指示样本测试数据的 测试标题,即可以通过样本测试数据的文件名称获取样本测试数据对应 的测试标题,或者,样本测试数据中包括测试标题名称项目,可以通过 测试标题名称项目获取样本测试数据对应的测试标题。
58.需要说明的是,本公开对于获取样本测试数据对应的测试标题的具 体方式并不做特殊限定。
59.步骤s220,将测试标题划分为多个测试标题分词,计算多个测试 标题分词对应的分词权重;
60.在本公开的一种示例实施例中,再通过上述步骤获取到样本测试数 据对应的测试标题之后,可以将测试标题划分为多个测试标题分词。具 体的,可以通过分词算法将测试标题划分为多个测试标题分词,其中, 分词算法可以识别句子中的各个词语,并将该多个词语分开得到分词结 果。
61.举例而言,通过上述步骤得到的测试标题为“a市区5g基站射频 传导测试”,此时可以将“a市区5g基站射频传导测试”划分为多个 测试标题分词:a市区、5g、基站、射频、传导、测试;再如,通过 上述步骤得到的测试标题为“a市区5g基站射频传导测试”,此时可 以将“b市区通信测试产品项目稳定性测试”划分为多个测试标题分 词:b市区、通信、测试、产品、项目、稳定性、测试。
62.在本公开的一种示例实施例中,在将测试标题划分为多个测试标题 分词时,可以通过基于语言模型的分词算法将测试标题划分为多个测试 标题分词,也可以通过基于统计机器学习的分词算法将测试标题划分为 多个测试标题分词,或者,还可以通过基于神经网络的分词算法将测试 标题划分为多个测试标题分词。
63.在本公开的一种示例实施例中,可以通过结巴分词算法将测试标题 划分为多个测试标题分词。具体的,结巴分词算法的原理为:基于前缀 词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的 有向无环图(dag,directed acyclic graph)、采用了动态规划查找最 大概率路径,找出基于词频的最大切分组合、对于未登录词,采用了基 于汉字成词能力的hmm(hidden markov model,隐马尔科夫模型)模 型,使用了viterbi(维特比)算法。其中,结巴分词算法包括三种模 式:精确模式:将句子最精确地切开;全模式:把句子中所有的可以成 词的词语都扫描出来,速度较快;搜索引擎模式:在精确模式的基础 上,对长词再次切分,提高召回率。在本公开的方案中,可以采用上述 任意一种模式。
64.需要说明的是,本公开对于通过结巴分词算法将测试标题划分为多 个测试标题
分词的具体方式并不做特殊限定。
65.需要说明的是,本公开对于将测试标题划分为多个测试标题分词的具体方式并不做特殊限定。
66.在本公开的一种示例实施例中,在通过上述步骤将测试标题划分为多个测试标题分词之后,可以计算多个测试标题分词对应的分词权重。具体的,测试标题分词权重可以用于指示该测试标题分词所输出的信息的重要程度,即测试标题分词权重越大,该测试标题分词所输出的信息的重要程度越高,测试标题分词权重越小,该测试标题分词所输出的信息的重要程度越低。
67.举例而言,可以计算测试标题分词在多个测试标题分词的占比,并通过该测试标题分词在多个测试标题分词的占比确定该测试标题对应的测试标题分词权重,例如,该测试标题分词在多个测试标题分词的占比越大,该测试标题分词对应的测试标题分词权重越高,测试标题分词在多个测试标题分词的占比越小,该测试标题分词对应的测试标题分词权重越低。
68.需要说明的是,本公开对于计算多个测试标题分词对应的分词权重的具体方式并不做特殊限定。
69.进一步的,在通过上述步骤将测试标题划分为多个测试标题分词之后,可以在多个测试标题分词中删除部分测试标题分词。举例而言,可以将出现频率大于预设频率的代词、介词、连词等词语从多个测试标题分词中删除。
70.需要说明的是,本公开对于在多个测试标题分词中删除部分测试标题分词的具体方式并不做特殊限定。
71.在本公开的一种示例实施例中,可以计算多个测试标题分词对应的词频以及多个测试标题分词对应的逆向文件频率,并根据多个测试标题分词对应的词频以及多个测试标题分词对应的逆向文件频率确定多个测试标题分词对应的分词权重。参照图3所示,根据多个测试标题分词对应的词频以及多个测试标题分词对应的逆向文件频率确定多个测试标题分词对应的分词权重,可以包括以下步骤s310~s320:
72.步骤s310,计算多个测试标题分词对应的词频以及多个测试标题分词对应的逆向文件频率;
73.在本公开的一种示例实施例中,在通过上述步骤得到多个测试标题分词之后,可以计算多个测试标题分词对应的词频(tf,termfrequency)以及多个测试标题分词对应的逆向文件频率(idf,inversedocumentfrequency)。具体的,测试标题分词对应的词频是指该测试标题分词出现的频率,可以通过某个测试标题分词的总数除以所有测试标题分词的数量得到该测试标题分词对应的词频,其表达式如下,其中,tf
i,j
为测试标题分词对应的词频,n
i,j
为该测试标题分词的总数,∑kn
k,j
为所有测试标题分词的数量:
[0074][0075]
测试标题分词对应的逆向文件频率可以用于指示包含该测试标题分词的文档的数量,可以由总文件数量除以包含测试标题分词的测试标题的数量,再将得到的商取对数得到该测试标题分词对应的逆向文件频率,其表达式如下,其中,|d|为总文件数量,|{j:ti∈dj}|为包含测试标题分词的测试标题的数量,idfi为测试标题分词对应的逆向文件频
率:
[0076][0077]
其中,测试标题分词对应的逆向文件频率越大,则表示该测试标题 分词具有更好的类别区分能力。
[0078]
需要说明的是,本公开对于计算多个测试标题分词对应的词频以及 多个测试标题分词对应的逆向文件频率的具体方式并不做特殊限定。
[0079]
步骤s320,根据多个测试标题分词对应的词频以及多个测试标题 分词对应的逆向文件频率确定多个测试标题分词对应的分词权重。 在本公开的一种示例实施例中,在通过上述步骤得到多个测试标题分词 对应的词频以及多个测试标题分词对应的逆向文件频率之后,可以根据 多个测试标题分词对应的词频以及多个测试标题分词对应的逆向文件频 率确定多个测试标题分词对应的分词权重。具体的,可以将测试标题分 词对应的词频以及该测试标题分词对应的逆向文件频率相乘得到,以确 定多个测试标题分词对应的分词权重,即通过tf-idf确定测试标题分 词对应的分词权重。
[0080]
举例而言,可以将测试标题分词对应的词频以及该测试标题分词对 应的逆向文件频率相乘得到权重值,并对多个测试标题分词对应的权重 值进行归一化得到多个测试标题分词对应的分词权重。
[0081]
需要说明的是,本公开对于根据多个测试标题分词对应的词频以及 多个测试标题分词对应的逆向文件频率确定多个测试标题分词对应的分 词权重的具体方式并不做特殊限定。
[0082]
步骤s230,根据测试标题分词对应的分词权重将多个样本测试数 据划分为多个测试类簇;
[0083]
在本公开的一种示例实施例中,在通过上述步骤得到多个测试标题 分词对应的分词权重之后,可以根据测试标题对应的分词权重将多个样 本测试数据划分为多个测试类簇。其中,测试类簇对应有至少一个数据 字段,各测试类簇对应的数据字段不同。具体的,测试标题分词对应的 分词权重可以用于指示该测试标题的重要程度,可以通过测试标题对应 的多个测试标题分词的权重确定测试标题对应的样本测试数据的数据特 征,并根据样本测试数据的数据特征将多个样本测试数据划分为多个测 试类簇,即各测试类簇中包括多个样本测试数据。
[0084]
具体而言,测试类簇具有对应的数据字段。其中,测试类簇对应有 至少一个数据字段,各测试类簇对应的数据字段不同。具体的,测试类 簇对应的数据字段可以用于指示该测试类簇中的所有样本测试数据对应 的数据字段,即可以通过测试类簇对应的数据字段了解该测试类簇中的 所有样本测试数据对应的数据字段。具体的,数据字段可以用于指示样 本测试数据的相关信息。举例而言,数据字段可以包括字段名称、字段 类型、字段长度、字段组合场景等。
[0085]
需要说明的是,本公开对于测试类簇对应的数据字段的具体类型并 不做特殊限定。
[0086]
在本公开的一种示例实施例中,可以通过k-means算法将多个样本 测试数据划分为多个测试类簇。具体的,k-means算法可以将没有标签 的数据划分为多个类簇,且同一类
簇中的数据具有相同的特征。
[0087]
或者,还可以通过hierarchical(层次)聚类算法将多个样本测试数 据划分为多个测试类簇。具体的,hierarchical聚类算法可以通过计算不 同类别数据点间的相似度来创建一棵有层次的嵌套聚类树。
[0088]
或者,还可以通过meanshift(均值漂移)聚类算法来聚类将多个 样本测试数据划分为多个测试类簇。具体的,meanshift聚类算法可以 假设不同的数据集符合不同的概率密度分布,找到任一样本点密度增大 的最快方向,样本密度高的区域对应于该分布的最大值,最终在局部密 度最大时收敛,且收敛到同一局部最大值的点组成同一类簇。
[0089]
在本公开的一种示例实施例中,可以将测试标题分词转化为分词向 量,通过测试标题分词对应的分词权重以及分词向量确定加权分词向 量,并根据加权分词向量将多个样本测试数据划分为多个测试类簇。参 照图4所示,根据加权分词向量将多个样本测试数据划分为多个测试类 簇,可以包括以下步骤s410~s420:
[0090]
步骤s410,将测试标题分词转化为分词向量,通过测试标题分词 对应的分词权重以及分词向量确定加权分词向量;
[0091]
步骤s420,根据加权分词向量将多个样本测试数据划分为多个测 试类簇。
[0092]
在本公开的一种示例实施例中,在通过上述步骤得到多个测试标题 分词之后,可以将测试标题分词转化为分词向量。具体的,可以通过现 有的算法将测试标题分词转化为分词向量,并将上述步骤得到的测试标 题分词对应的分词权重与分词向量进行融合得到测试标题分词对应的加 权分词向量。
[0093]
举例而言,可以通过word2vector(词向量)算法将测试标题分词 转化为分词向量。需要说明的是,本公开对于通过word2vector(词向 量)算法将测试标题分词转化为分词向量的具体方式并不做特殊限定。
[0094]
需要说明的是,本公开对于将测试标题分词转化为分词向量以及通 过测试标题分词对应的分词权重以及分词向量确定加权分词向量的具体 方式并不做特殊限定。
[0095]
在本公开的一种示例实施例中,可以根据加权分词向量将多个样本 测试数据划分为多个测试类簇。具体的,可以通过k-means算法将多个 样本测试数据划分为多个测试类簇。
[0096]
需要说明的是,本公开对于根据加权分词向量将多个样本测试数据 划分为多个测试类簇的具体方式并不做特殊限定。
[0097]
通过上述步骤s410~s420,可以将测试标题分词转化为分词向量, 通过测试标题分词对应的分词权重以及分词向量确定加权分词向量,并 根据加权分词向量将多个样本测试数据划分为多个测试类簇。
[0098]
在本公开的一种示例实施例中,可以选取预设数目的初始聚类中 心,在多个测试标题分词中选取未进行聚类的样本测试数据,根据分词 权重计算未进行聚类的样本测试数据与初始聚类中心的距离,将未进行 聚类的样本测试数据分配至距离最近的初始聚类中心,在样本测试数据 分配完毕时,根据初始聚类中心对应的样本测试数据重新计算聚类中 心,迭代计算聚类中心直至满足聚类条件得到聚类结果,根据聚类结果 确定多个测试类簇。参照图5所示,迭代计算聚类中心直至满足聚类条 件得到聚类结果,根据聚类结果确定多个测试类簇,可以包括以下步骤 s510~s550:
[0099]
步骤s510,选取预设数目的初始聚类中心,在多个测试标题分词 中选取未进行聚类的样本测试数据;
[0100]
在本公开的一种示例实施例中,在通过上述步骤得到多个测试标题 分词对应的分词权重之后,可以选取预设数目的初始聚类中心,在多个 测试标题分词中选取未进行聚类的样本测试数据。具体的,需要先确定 最终需要得到的测试类簇的数量,测试类簇的数量可以依经验确定,或 者也可以经过不断的迭代测试,确定合适数量的测试类簇。其中,最终 需要得到的测试类簇的数量即为初始聚类中心的预设数目。
[0101]
在本公开的一种示例实施例中,初始聚类中心选取的方式可以为人 工选取,或者,也可以通过随机选取的方式确定初始聚类中心。
[0102]
需要说明的是,本公开对于选取预设数目的初始聚类中心的具体方 式并不做特殊限定。
[0103]
在本公开的一种示例实施例中,在通过上述步骤确定初始聚类中心 之后,可以在多个测试标题分词中选取未进行聚类的样本测试数据。具 体的,可以将样本测试数据设置于与初始聚类中心所在的多维空间内, 并对样本测试数据进行分类,此时,可以在多个样本测试数据中选取未 进行聚类的样本测试数据。
[0104]
需啊说明的是,本公开对于在多个测试标题分词中选取未进行聚类 的样本测试数据的具体方式并不做特殊限定。
[0105]
步骤s520,根据分词权重计算未进行聚类的样本测试数据与初始 聚类中心的距离;
[0106]
在本公开的一种示例实施例中,在通过上述步骤确定初始聚类中心 以及未进行聚类的样本测试数据之后,可以根据分词权重计算未进行聚 类的样本测试数据与初始聚类中心的距离。
[0107]
举例而言,通过上述步骤得到4个初始聚类中心:a、b、c、d,此 时可以计算上述步骤中得到的选取的未进行聚类的样本测试数据n与 a、b、c、d之间的距离,例如,未进行聚类的样本测试数据n与a之 间的距离的表达式如下,其中,disa为样本测试数据n与a之间的距 离,n为样本测试数据,μa为初始聚类中心:
[0108]
disa=||n-μa||2[0109]
需要说明的是,在本示例实施方式中,计算的是欧式距离,但在本 公开的其他示例性实施例中,也可以计算马氏距离、余弦距离、曼哈顿 距离等,即本公开对于根据分词权重计算未进行聚类的样本测试数据与 初始聚类中心的距离的具体方式并不做特殊限定。
[0110]
步骤s530,将未进行聚类的样本测试数据分配至距离最近的初始 聚类中心;
[0111]
在本公开的一种示例实施例中,在通过上述步骤计算了样本测试数 据与各初始聚类中心之间的距离之后,可以将未进行聚类的样本测试数 据分配至距离最近的初始聚类中心。具体的,可以将样本测试数据与各 初始聚类中心之间的距离进行比较,将样本测试数据分配至样本测试数 据与初始聚类中心之间的距离最小的初始聚类中心,以形成初始类簇。
[0112]
举例而言,4个初始聚类中心:a、b、c、d,通过上述步骤得到了 样本测试数据与上述4个初始聚类中心a、b、c、d的距离分别为: disa、disb、disc、disd,其中,disb《disa《disc《disd,此时,样 本测试数据与初始聚类中心b的距离最短,因此,可以将该样本测试数 据
分配于最近的初始聚类中心,即初始聚类中心b。
[0113]
需要说明的是,本公开对于将未进行聚类的样本测试数据分配至距 离最近的初始聚类中心的具体方式并不做特殊限定。
[0114]
步骤s540,在样本测试数据分配完毕时,根据初始聚类中心对应 的样本测试数据重新计算聚类中心;
[0115]
在本公开的一种示例实施例中,可以在样本测试数据分配完毕时, 根据初始聚类中心对应的样本测试数据重新计算聚类中心。具体的,可 以通过上述步骤将所有的样本测试数据分配至各初始聚类中心,此时, 可以计算各初始聚类中心对应的初始类簇中的所有样本测试数据的平均 值,并将该平均值作为新的聚类中心。
[0116]
需要说明的是,本公开对于根据初始聚类中心对应的样本测试数据 重新计算聚类中心的具体方式并不做特殊限定。
[0117]
步骤s550,迭代计算聚类中心直至满足聚类条件得到聚类结果, 根据聚类结果确定多个测试类簇。
[0118]
在本公开的一种示例实施例中,可以迭代计算聚类中心直至满足聚 类条件得到聚类结果,根据聚类结果确定多个测试类簇。具体的,可以 不断重复上述计算过程,以使的当前的聚类方法满足聚类条件,停止聚 类。其中,聚类条件可以为聚类次数,即聚类预设次数时,停止聚类, 或者,可以通过误差平方和准则函数控制聚类结束,即当两次迭代计算 的差值小于差值阈值时,停止聚类。
[0119]
举例而言,聚类条件为在聚类次数达到150次时,终止聚类。即可 以统计聚类次数,当聚类次数达到150次时,当前聚类满足聚类条件。
[0120]
需要说明的是,本公开对于聚类条件的具体内容并不做特殊限定。
[0121]
在本公开的一种示例实施例中,在通过上述步骤得到聚类结果之 后,可以根据聚类结果确定多个测试类簇。具体的,聚类结果可以用于 指示最终确定的聚类中心以及与该聚类中心对应的测试类簇,测试类簇 的表达式如下,其中,j为测试类簇,μk为测试类簇对应的聚类中心, xi为测试类簇中的样本测试数据,k用于指示测试类簇,n为测试类簇 中的样本测试数据的数量:
[0122][0123]
通过上述步骤s510~s550,可以选取预设数目的初始聚类中心,在 多个测试标题分词中选取未进行聚类的样本测试数据,根据分词权重计 算未进行聚类的样本测试数据与初始聚类中心的距离,将未进行聚类的 样本测试数据分配至距离最近的初始聚类中心,在样本测试数据分配完 毕时,根据初始聚类中心对应的样本测试数据重新计算聚类中心,迭代 计算聚类中心直至满足聚类条件得到聚类结果,根据聚类结果确定多个 测试类簇。
[0124]
步骤s240,获取测试对象对应的数据字段模板,根据测试对象对 应的数据字段模板匹配测试类簇;
[0125]
在本公开的一种示例实施例中,在通过上述步骤将多个样本测试数 据划分为多个测试类簇之后,可以获取测试对象对应的数据字段模板。 具体的,测试对象是指所要进行测试应用程序或者系统,测试对象对应 的数据字段模板是指在对该测试对象进行测试所需要的数据字段项目, 举例而言,测试对象a对应的数据字段模板为字段名称、字段类型和 字段长度,即在对测试对象a进行测试时,需要字段名称、字段类型 和字段长度以生成
测试对象a对应的测试数据。
[0126]
需要说明的是,本公开对于测试对象对应的数据字段模板的具体类 型并不做特殊限定。
[0127]
在本公开的一种示例实施例中,可以获取测试对象对应的数据字段 模板。具体的,测试对象对应的数据字段模板可以由开发人员根据业务 场景进行配置并进行存储,在为测试对象生成测试数据时,可以获取开 发人员配置的测试对象对应的数据字段模板。
[0128]
需要说明的是,本公开对于获取测试对象对应的数据字段模板的具 体方式并不做特殊限定。
[0129]
在本公开的一种示例实施例中,在通过上述步骤得到测试对象对应 的数据字段模板之后,可以根据测试对象对应的数据字段模板匹配测试 类簇。具体的,可以将测试对象对应的数据字段模板与上述步骤得到的 多个测试类簇对应的数据字段进行比对,以确定与测试对象匹配的测试 类簇,在测试类簇对应的数据字段的字段种类与测试对象的数据字段模 板对应的字段种类相同时,可以将该测试类簇确定为测试对象匹配的测 试类簇,或者,在测试类簇对应的数据字段的字段种类大于测试对象的 数据字段模板对应的字段种类时,可以将该测试类簇确定为测试对象匹 配的测试类簇。
[0130]
举例而言,通过上述步骤得到了3个测试类簇以及该3个测试类簇 对应的字段种类分别为:测试类簇a-数据字段的字段种类(字段1、字 段2、字段3)、测试类簇b-数据字段的字段种类(字段2、字段4、 字段5)、测试类簇c-数据字段的字段种类(字段2、字段6、字段 7),测试对象对应的数据字段模板的字段种类(字段2、字段4、字段 5),此时,可以将测试类簇b确定为测试对象匹配的测试类簇。
[0131]
需要说明的是,本公开对于根据测试对象对应的数据字段模板匹配 测试类簇的具体方式并不做特殊限定。
[0132]
在本公开的一种示例实施例中,可以获取数据字段模板对应的字段 种类,获取测试类簇对应的字段种类,在测试类簇对应的字段种类包括 数据字段模板对应的字段种类时,将测试类簇确定为测试对象匹配的测 试类簇。参照图6所示,在测试类簇对应的字段种类包括数据字段模板 对应的字段种类时,将测试类簇确定为测试对象匹配的测试类簇,可以 包括以下步骤s610~s630:
[0133]
步骤s610,获取数据字段模板对应的字段种类;
[0134]
在本公开的一种示例实施例中,在通过上述步骤得到多个测试类簇 之后,可以获取测试对象的数据字段模板对应的字段种类。具体的,测 试对象的数据字段模板对应的字段种类是指在对该测试对象进行测试所 需要的数据字段项目,举例而言,测试对象b对应的数据字段模板为 字段名称、字段类型和字段长度,即在对测试对象b进行测试时,需 要字段名称、字段类型和字段长度以生成测试对象b对应的测试数 据。
[0135]
步骤s620,获取测试类簇对应的字段种类;
[0136]
在本公开的一种示例实施例中,可以获取测试类簇对应的字段种 类。具体的,测试类簇对应的字段种类是指该测试类簇中的样本测试数 据对应的字段种类,举例而言,测试类簇a中包括:样本测试数据a
‑ꢀ
字段种类1(字段值a)-字段种类2(字段值b)、样本测试数据b-字 段种类1(字段值c)-字段种类2(字段值d)、样本测试数据c-字段 种类1(字段值e)-字段种类2(字段值f),此时,该测试类簇a对 应的字段种类包括字段种类1与字段种类2。
[0137]
步骤s630,在测试类簇对应的字段种类包括数据字段模板对应的 字段种类时,将测试类簇确定为测试对象匹配的测试类簇。
[0138]
在本公开的一种示例实施例中,在通过上述步骤得到数据字段模板 对应的字段种类以及测试类簇对应的字段种类之后,可以根据测试对象 对应的数据字段模板匹配测试类簇。具体的,可以比对测试类簇对应的 字段种类以及数据字段模板对应的字段种类,在测试类簇对应的字段种 类包括数据字段模板对应的字段种类时,将测试类簇确定为测试对象匹 配的测试类簇。
[0139]
举例而言,数据字段模板对应的字段种类为:字段种类1-字段种类 2-字段种类4,通过上述步骤得到的测试类簇以及测试类簇对应的字段 种类为:测试类簇a-字段种类1-字段种类2-字段种类4、测试类簇b
‑ꢀ
字段种类1-字段种类2-字段种类3、测试类簇c-字段种类1-字段种类 2,此时,测试类簇a对应的字段种类与数据字段模板对应的字段种类 相同,即可以将测试类簇a确定为与测试对象匹配的测试类簇。
[0140]
进一步的,测试类簇对应的字段种类可以与数据字段模板对应的字 段种类部分相同。
[0141]
举例而言,数据字段模板对应的字段种类为:字段种类1-字段种类 2-字段种类4,通过上述步骤得到的测试类簇以及测试类簇对应的字段 种类为:测试类簇a-字段种类1-字段种类2-字段种类6、测试类簇b
‑ꢀ
字段种类1-字段种类2-字段种类3-字段种类4、测试类簇c-字段种类 1-字段种类2,此时,测试类簇b对应的字段种类以及与数据字段模板 对应的字段种类部分相同,即可以将测试类簇b确定为与测试对象匹 配的测试类簇。
[0142]
通过上述步骤s610~s630,可以获取数据字段模板对应的字段种 类,获取测试类簇对应的字段种类,在测试类簇对应的字段种类包括数 据字段模板对应的字段种类时,将测试类簇确定为测试对象匹配的测试 类簇。
[0143]
步骤s250,通过测试类簇生成测试对象对应的测试数据。
[0144]
在本公开的一种示例实施例中,在通过上述步骤得到与测试对象匹 配的测试类簇之后,可以通过测试类簇生成测试对象对应的测试数据。 具体的,测试类簇中包括多个样本测试数据,可以获取该些样本测试数 据对应的数据字段的字段值,并将该数据字段的字段值作为测试对象对 应的数据字段模板的字段值,以生成测试对象对应的测试数据。
[0145]
进一步的,测试类簇中的多个样本测试数据包括至少两个数据字 段,该些数据字段对应的字段值可以组成原字段值组合,针对各数据字 段,不同的样本测试数据对应的字段值可以相同,也可以不同,在获取 该些样本测试数据对应的数据字段的字段值之后,可以通过随机方式将 不同的样本测试数据对应的字段值进行组合得到多个不同于原样本测试 数据的字段值组合,此时,可以根据这些字段值组合生成测试对象对应 的测试数据。
[0146]
举例而言,通过上述步骤得到的测试类簇中包括:样本测试数据1
‑ꢀ
数据字段1(字段值a)-数据字段2(字段值b)、样本测试数据2-数 据字段1(字段值c)-数据字段2(字段值d)、样本测试数据3-数据 字段1(字段值e)-数据字段2(字段值f)、样本测试数据4-数据字 段1(字段值g)-数据字段2(字段值h),此时,该些样本测试数据 的数据字段对应的字段值可以组成原字段值组合:数据字段1(字段值 a)-数据字段2(字段值b)、数据字段1(字段值c)-数据字段2(字 段值d)、数据字段1(字段值e)-数据字段2(字段值f)、数据字段 1(字段值g)-数据字段2(字段值h),可以通过随机方式得到不同于 原样本测试数据的字段值组合
的字段值组合:数据字段1(字段值a)
‑ꢀ
数据字段2(字段值d)、数据字段1(字段值a)-数据字段2(字段值 f)、数据字段1(字段值a)-数据字段2(字段值h)、数据字段1 (字段值b)-数据字段2(字段值d)等字段值组合,此时,可以根据 这些字段值组合生成测试对象对应的测试数据,测试数据-数据字段1 (字段值a)-数据字段2(字段值d)、测试数据-数据字段1(字段值 a)-数据字段2(字段值f)、测试数据-数据字段1(字段值a)-数据 字段2(字段值h)、测试数据-数据字段1(字段值b)-数据字段2 (字段值d)。
[0147]
需要说明的是,本公开对于通过测试类簇生成测试对象对应的测试 数据的具体方式并不做特殊限定。
[0148]
在本公开的一种示例实施例中,可以获取测试类簇中的多个样本测 试数据,获取样本测试数据的字段种类以及字段种类对应的字段值,根 据字段种类对应的字段值生成测试对象对应的测试数据。参照图7所 示,根据字段种类对应的字段值生成测试对象对应的测试数据,可以包 括以下步骤s710~s720:
[0149]
步骤s710,获取测试类簇中的多个样本测试数据,获取样本测试 数据的字段种类以及字段种类对应的字段值;
[0150]
步骤s720,根据字段种类对应的字段值生成测试对象对应的测试 数据。
[0151]
在本公开的一种示例实施例中,在通过上述步骤得到与测试对象匹 配的测试类簇之后,可以获取测试类簇中的多个样本测试数据,获取该 多个样本测试数据的字段种类以及字段种类对应的字段值,并根据字段 种类对应的字段值生成测试对象的测试数据。具体的,可以将字段种类 对应的字段值作为测试对象的测试数据,
[0152]
举例而言,通过上述步骤得到的与测试对象匹配的测试类簇的样本 测试数据对应的字段种类以及字段种类对应的字段值为:样本测试数据 1-数据字段1(字段值a)-数据字段2(字段值b)、样本测试数据2
‑ꢀ
数据字段1(字段值c)-数据字段2(字段值d)、样本测试数据3-数 据字段1(字段值e)-数据字段2(字段值f)、样本测试数据4-数据 字段1(字段值g)-数据字段2(字段值h),此时,可以将数据字段1 (字段值a)-数据字段2(字段值b)、数据字段1(字段值c)-数据 字段2(字段值d)、数据字段1(字段值e)-数据字段2(字段值 f)、数据字段1(字段值g)-数据字段2(字段值h)作为测试对象的 测试数据,即在进行测试时,以测试数据1-数据字段1(字段值a)-数 据字段2(字段值b)、测试数据2-数据字段1(字段值c)-数据字段2 (字段值d)、测试数据3-数据字段1(字段值e)-数据字段2(字段 值f)、数据字段4(字段值g)-数据字段2(字段值h)对测试对象进 行测试。
[0153]
或者,可以采用随机方式处理字段种类对应的字段值得到多组字段 值作为测试对象的测试数据。
[0154]
举例而言,通过上述步骤得到的与测试对象匹配的测试类簇的样本 测试数据对应的字段种类以及字段种类对应的字段值为:样本测试数据 1-数据字段1(字段值a)-数据字段2(字段值b)、样本测试数据2
‑ꢀ
数据字段1(字段值c)-数据字段2(字段值d)、样本测试数据3-数 据字段1(字段值e)-数据字段2(字段值f)、样本测试数据4-数据 字段1(字段值g)-数据字段2(字段值h),此时,可以将样本测试 数据1、样本测试数据2、样本测试数据3、样本测试数据4中的字段1 与字段2进行随机组合,得到多个字段值组合,例如,数据字段1(字 段值a)-数据字段2(字段值b)、数据字段1(字段值a)-数据字段2 (字段值d)、数据字段1(字段值a)-数据字段2(字段值h)等,此 时,可以根据上述字段值组合确定测试对象对应
的测试数据,即可以将 测试数据1-数据字段1(字段值a)-数据字段2(字段值b)、测试数 据2-数据字段1(字段值a)-数据字段2(字段值d)、测试数据3-数 据字段1(字段值a)-数据字段2(字段值h)作为测试对象的测试数 据。
[0155]
或者,可以采用轮询方式处理字段种类对应的字段值得到多组字段 值作为测试对象的测试数据。
[0156]
需要说明的是,本公开对于根据字段种类对应的字段值生成测试对 象对应的测试数据的具体方式并不做特殊限定。
[0157]
通过上述步骤s710~s720,可以获取测试类簇中的多个样本测试数 据,获取样本测试数据的字段种类以及字段种类对应的字段值,根据字 段种类对应的字段值生成测试对象对应的测试数据。
[0158]
在本公开的一种示例实施例中,可以通过笛卡尔积方法扩展字段种 类对应的字段值得到扩展字段值组合,并将扩展字段值组合确定为测试 对象对应的测试数据。参照图8所示,通过笛卡尔积方法扩展字段种类 对应的字段值得到扩展字段值组合,并将扩展字段值组合确定为测试对 象对应的测试数据,可以包括以下步骤s810~s820:
[0159]
步骤s810,通过笛卡尔积方法扩展字段种类对应的字段值得到扩 展字段值组合;
[0160]
步骤s820,将扩展字段值组合确定为测试对象对应的测试数据。
[0161]
在本公开的一种示例实施例中,可以通过笛卡尔积方法扩展字段种 类对应的字段值得到扩展字段值组合,并将得到的扩展字段值组合作为 测试对象对应的测试数据。具体的,笛卡尔积是指在数学中,两个集合 x和y的笛卡尔积,又称直积,表示为x
×
y,其中,第一个对象是x 的成员而第二个对象是y的所有可能有序对的其中一个成员。
[0162]
举例而言,多个样本测试数据的字段种类以及字段种类对应的字段 值为:样本测试数据1-数据字段1(字段值a)-数据字段2(字段值 b)、样本测试数据2-数据字段1(字段值c)-数据字段2(字段值 d),此时,可以通过笛卡尔积方法进行扩展得到扩展字段值组合:数 据字段1(字段值a)-数据字段2(字段值b)、数据字段1(字段值 a)-数据字段2(字段值d)、数据字段1(字段值c)-数据字段2(字 段值b)、数据字段1(字段值c)-数据字段2(字段值d),即可以将 上述4组扩展字段值组合作为测试对象对应的测试数据。
[0163]
再如,多个样本测试数据的字段种类以及字段种类对应的字段值 为:样本测试数据1-地点字段(地点a)-运行状态字段(运行)、样本 测试数据2-地点字段(地点b)-运行状态字段(结束)、样本测试数 据3-地点字段(地点a)-运行状态字段(失败),此时,可以通过笛卡 尔积方法对上述多个样本测试数据的字段种类以及字段种类对应的字段 值进行扩展得到多个字段值组合,即得到地点字段(地点a)-运行状态 字段(运行)、地点字段(地点a)-运行状态字段(结束)、地点字段 (地点a)-运行状态字段(失败)、地点字段(地点b)-运行状态字段 (运行)、地点字段(地点b)-运行状态字段(结束)、地点字段(地 点b)-运行状态字段(失败),并将上述多个字段值组合作为测试数据 的字段,即得到了测试对象对应的测试数据:测试数据1-地点字段(地 点a)-运行状态字段(运行)、测试数据2-地点字段(地点a)-运行 状态字段(结束)、测试数据3-地点字段(地点a)-运行状态字段(失 败)、测试数据4-地点字段(地点b)-运行状态字段(运行)、测试 数据5-地点字段(地点b)-运行状态字段(结束)、测试数据6-地点 字段(地点b)-运行状态字段(失败)。
[0164]
需要说明的是,本公开对于通过笛卡尔积方法扩展字段种类对应的 字段值得到
扩展字段值组合的具体方式并不做特殊限定。
[0165]
通过上述步骤s810~s820,可以通过笛卡尔积方法扩展字段种类对 应的字段值得到扩展字段值组合,并将扩展字段值组合确定为测试对象 对应的测试数据。
[0166]
在本公开的一种示例实施例中,参照图9所示,可以将本公开的方 案区分为三个模块进行实现,包括:训练模块,匹配模块以及生成模 块。
[0167]
其中,在训练模块中,可以从测试数据知识库中获取样本测试数 据,获取样本测试数据对应的测试标题,将测试标题划分为多个测试标 题分词,计算多个测试标题分词对应的分词权重,根据测试标题分词对 应的分词权重将多个样本测试数据划分为k类测试类簇;在匹配模块 中,可以获取测试对象对应的数据字段模板,在匹配单元中根据测试对 象对应的数据字段模板匹配测试类簇,得到测试类簇对应的字段种类; 在生成模块中,可以根据测试类簇对应的字段种类生成测试对象对应的 测试数据,并将测试对象对应的测试数据发送给测试对象对应的测试数 据库。
[0168]
在本公开的一种示例实施例中,可以获取样本测试数据对应的测试 标题,将测试标题划分为多个测试标题分词,计算多个测试标题分词对 应的分词权重,根据测试标题分词对应的分词权重将多个样本测试数据 划分为多个测试类簇,获取测试对象对应的数据字段模板,根据测试对 象对应的数据字段模板匹配测试类簇,通过测试类簇生成测试对象对应 的测试数据。
[0169]
在本示例实施方式所提供的测试数据生产方法中,一方面,可以通 过测试标题对应的分词权重将样本测试数据划分为多个类簇,无需测试 人员手动标注,此外,在将样本测试数据划分为多个测试类簇之后,只 需要根据所要测试的应用程序的字段模板匹配对应的测试类簇,就可以 通过该测试类簇生成测试数据,从而提升了测试数据的生成效率,进而 提升了应用程序的开发效率;另一方面,在将样本测试数据划分为多个 测试类簇之后,通过测试类簇生成测试对象对应的测试数据,能够保证 测试数据的多样性,从而使得测试数据所涉及到的场景更全面,即测试 场景的覆盖率更高。
[0170]
需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包 括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的 处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处 理可以是例如在多个模块中同步或异步执行的。
[0171]
此外,在本公开的示例性实施方式中,还提供了一种测试数据生成 装置。参照图10所示,一种测试数据生成装置1000包括:测试标题获 取模块1010、分词权重计算模块1020、测试类簇划分模块1030、测试 类簇匹配模块1040和测试数据生成模块1050。
[0172]
其中,测试标题获取模块,用于获取样本测试数据对应的测试标 题;其中,测试标题用于指示测试标题对应的样本测试数据的相关信 息;分词权重计算模块,用于将测试标题划分为多个测试标题分词,计 算多个测试标题分词对应的分词权重;测试类簇划分模块,用于根据测 试标题分词对应的分词权重将多个样本测试数据划分为多个测试类簇; 其中,测试类簇对应有至少一个数据字段,各测试类簇对应的数据字段 不同;测试类簇匹配模块,用于获取测试对象对应的数据字段模板,根 据测试对象对应的数据字段模板匹配测试类簇;测试数据生成模块,用 于通过测试类簇生成测试对象对应的测试数据。
[0173]
在本公开的一种示例性实施例中,基于前述方案,计算多个测试标 题分词对应的分词权重,装置还包括:数据计算单元,用于计算多个测 试标题分词对应的词频以及多个
测试标题分词对应的逆向文件频率;分 词权重计算单元,用于根据多个测试标题分词对应的词频以及多个测试 标题分词对应的逆向文件频率确定多个测试标题分词对应的分词权重。
[0174]
在本公开的一种示例性实施例中,基于前述方案,根据测试标题分 词对应的分词权重将多个样本测试数据划分为多个测试类簇,装置还包 括:加权分词向量确定单元,用于将测试标题分词转化为分词向量,通 过测试标题分词对应的分词权重以及分词向量确定加权分词向量;第一 测试类簇划分单元,用于根据加权分词向量将多个样本测试数据划分为 多个测试类簇。
[0175]
在本公开的一种示例性实施例中,基于前述方案,根据测试标题分 词对应的分词权重将多个样本测试数据划分为多个测试类簇,装置还包 括:样本测试数据选取单元,用于选取预设数目的初始聚类中心,在多 个测试标题分词中选取未进行聚类的样本测试数据;距离计算单元,用 于根据分词权重计算未进行聚类的样本测试数据与初始聚类中心的距 离;样本测试数据分配单元,用于将未进行聚类的样本测试数据分配至 距离最近的初始聚类中心;聚类中心计算单元,用于在样本测试数据分 配完毕时,根据初始聚类中心对应的样本测试数据重新计算聚类中心; 第二测试类簇划分单元,用于迭代计算聚类中心直至满足聚类条件得到 聚类结果,根据聚类结果确定多个测试类簇。
[0176]
在本公开的一种示例性实施例中,基于前述方案,根据测试对象对 应的数据字段模板匹配测试类簇,装置还包括:模板字段种类获取单 元,用于获取数据字段模板对应的字段种类;类簇字段种类获取单元, 用于获取测试类簇对应的字段种类;测试类簇匹配单元,用于在测试类 簇对应的字段种类包括数据字段模板对应的字段种类时,将测试类簇确 定为测试对象匹配的测试类簇。
[0177]
在本公开的一种示例性实施例中,基于前述方案,通过测试类簇生 成测试对象对应的测试数据,装置还包括:字段值获取单元,用于获取 测试类簇中的多个样本测试数据,获取样本测试数据的字段种类以及字 段种类对应的字段值;第一测试数据生成单元,用于根据字段种类对应 的字段值生成测试对象对应的测试数据。
[0178]
在本公开的一种示例性实施例中,基于前述方案,根据字段种类对 应的字段值生成测试对象对应的测试数据,装置还包括:字段值得扩展 单元,用于通过笛卡尔积方法扩展字段种类对应的字段值得到扩展字段 值组合;第二测试数据生成单元,用于将扩展字段值组合确定为测试对 象对应的测试数据。
[0179]
由于本公开的示例实施例的测试数据生成装置的各个功能模块与上 述测试数据生成方法的示例实施例的步骤对应,因此对于本公开装置实 施例中未披露的细节,请参照本公开上述的测试数据生成方法的实施 例。
[0180]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若 干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的 实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一 个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征 和功能可以进一步划分为由多个模块或者单元来具体化。
[0181]
此外,在本公开的示例性实施例中,还提供了一种能够实现上述测 试数据生成方法的电子设备。
[0182]
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为 系统、方法或
程序产品。因此,本公开的各个方面可以具体实现为以下 形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码 等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、
ꢀ“
模块”或“系统”。
[0183]
下面参照图11来描述根据本公开的这种实施例的电子设备1100。 图11显示的电子设备1100仅仅是一个示例,不应对本公开实施例的功 能和使用范围带来任何限制。
[0184]
如图11所示,电子设备1100以通用计算设备的形式表现。电子设 备1100的组件可以包括但不限于:上述至少一个处理单元1110、上述 至少一个存储单元1120、连接不同系统组件(包括存储单元1120和处 理单元1110)的总线1130、显示单元1140。
[0185]
其中,存储单元存储有程序代码,程序代码可以被处理单元1110 执行,使得处理单元1110执行本说明书上述“示例性方法”部分中描 述的根据本公开各种示例性实施例的步骤。例如,处理单元1110可以 执行如图2中所示的步骤s210,获取样本测试数据对应的测试标题; 其中,测试标题用于指示测试标题对应的样本测试数据的相关信息;步 骤s220,将测试标题划分为多个测试标题分词,计算多个测试标题分 词对应的分词权重;步骤s230,根据测试标题分词对应的分词权重将 多个样本测试数据划分为多个测试类簇;其中,测试类簇中的样本测试 数据对应有至少一个数据字段,各测试类簇中的样本测试数据对应的数 据字段不同;步骤s240,获取测试对象对应的数据字段模板,根据测 试对象对应的数据字段模板匹配测试类簇;步骤s250,通过测试类簇 生成测试对象对应的测试数据。
[0186]
又如,电子设备可以实现如图2所示的各个步骤。
[0187]
存储单元1120可以包括易失性存储单元形式的可读介质,例如随 机存取存储单元(ram)1121和/或高速缓存存储单元1122,还可以进 一步包括只读存储单元(rom)1123。
[0188]
存储单元1120还可以包括具有一组(至少一个)程序模块1125的 程序/实用工具1124,这样的程序模块1125包括但不限于:操作系统、 一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每 一个或某种组合中可能包括网络环境的实现。
[0189]
总线1130可以为表示几类总线结构中的一种或多种,包括存储单 元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者 使用多种总线结构中的任意总线结构的局域总线。
[0190]
电子设备1100也可以与一个或多个外部设备1170(例如键盘、指 向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子 设备1100交互的设备通信,和/或与使得该电子设备1100能与一个或 多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等 等)通信。这种通信可以通过输入/输出(i/o)接口1150进行。并且, 电子设备1100还可以通过网络适配器1160与一个或者多个网络(例如 局域网(lan),广域网(wan)和/或公共网络,例如因特网)通 信。如图11所示,网络适配器1160通过总线1130与电子设备1100的 其它模块通信。应当明白,尽管图11中未示出,可以结合电子设备 1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动 器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及 数据备份存储系统等。
[0191]
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述 的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方 式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式 体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd
‑ꢀ
rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计 算
设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执 行根据本公开实施例的方法。
[0192]
在本公开的示例性实施例中,还提供了一种计算机可读存储介质, 其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施 例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程 序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执 行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实 施例的步骤。
[0193]
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的 数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多 种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可 读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可 以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与 其结合使用的程序。
[0194]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不 限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0195]
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开 操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或 类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部 分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算 设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器 上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种 类的网络,包括局域网(lan)或广域网(wan),连接到用户计算 设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来 通过因特网连接)。
[0196]
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理 的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不 表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是 例如在多个模块中同步或异步执行的。
[0197]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想 到本公开的其他实施例。本技术旨在涵盖本公开的任何变型、用途或者 适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理 并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明 书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指 出。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1