基于云计算的分布式软件实例测试方法及软件开发平台转让专利

申请号 : CN202011333531.4

文献号 : CN112395199B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 罗嗣扬季明

申请人 : 罗嗣扬

摘要 :

本申请实施例提供一种基于云计算的分布式软件实例测试方法及软件开发平台,可先根据分布式应用程序包的应用业务实例执行图谱中的多个应用业务执行实例的实例参数信息,将至少两个应用业务执行实例聚类为目标聚类实例,该目标聚类实例用于指示对被聚类的应用业务执行实例所表示的业务实例的软件测试任务进行测试。然后,可采用目标聚类实例更新应用业务实例执行图谱,并将更新后的应用业务实例执行图谱发送至软件实例测试程序,使得软件实例测试程序在测试分布式应用程序包的过程中,可按照目标聚类实例的指示对被聚类的应用业务执行实例所表示的业务实例的软件测试任务进行测试,从而减少测试的重调用次数,以节省云计算资源并缩短测试总时长。

权利要求 :

1.一种基于云计算的分布式软件实例测试方法,其特征在于,应用于软件开发平台,所述软件开发平台与多个软件开发编辑终端通信连接,所述方法包括:获取基于不同软件功能分区的当前编译文件获得的分布式应用程序包;

获取所述分布式应用程序包的应用业务实例执行图谱中的多个应用业务执行实例的实例参数信息;每个应用业务执行实例用于表示所述分布式应用程序包在功能实现过程中需要被执行的一个或者多个业务实例,且所述每个应用业务执行实例所表示的业务实例的软件测试任务需要执行测试;任一应用业务执行实例的实例参数信息用于反映所述任一应用业务执行实例和其它应用业务执行实例之间的关联关系;

根据各应用业务执行实例的实例参数信息,将至少两个应用业务执行实例聚类为目标聚类实例,所述目标聚类实例用于指示对被聚类的应用业务执行实例所表示的业务实例的软件测试任务进行测试;

采用所述目标聚类实例更新所述应用业务实例执行图谱,并将更新后的应用业务实例执行图谱发送至软件实例测试程序,所述更新后的应用业务实例执行图谱用于指示所述软件实例测试程序按照所述目标聚类实例的指示,在所述分布式应用程序包的功能实现过程中对所述被聚类的应用业务执行实例所表示的业务实例的软件测试任务进行测试,并输出测试结果。

2.根据权利要求1所述的基于云计算的分布式软件实例测试方法,其特征在于,所述多个应用业务执行实例对应一个目标业务执行路径,所述目标业务执行路径是基于各应用业务执行实例在所述应用业务实例执行图谱中的业务路径关系,采用多条业务流向线路连接所述各应用业务执行实例得到的;

所述业务路径关系用于指示:一个应用业务执行实例沿着所述应用业务实例执行图谱中的至少一条执行路径访问其它应用业务执行实例的路径关系;

任一应用业务执行实例的实例测试信息包括以下至少一项:所述任一应用业务执行实例的实例测试点集和所述任一应用业务执行实例的反向实例测试点集;

所述任一应用业务执行实例的实例测试点集中的实例测试点为:从所述目标业务执行路径中的起始应用业务执行实例至所述任一应用业务执行实例的所有正向路径均经过的应用业务执行实例;

其中,所述任一应用业务执行实例的实例测试点集中距离所述任一应用业务执行实例最先的实例测试点,为所述任一应用业务执行实例的最先实例测试点;

所述任一应用业务执行实例的反向实例测试点集中的反向实例测试点为:从所述目标业务执行路径对应的反向路径关系中的起始应用业务执行实例至所述任一应用业务执行实例的所有反向路径均经过的应用业务执行实例;

其中,所述任一应用业务执行实例的反向实例测试点集中距离所述任一应用业务执行实例最先的反向实例测试点,为所述任一应用业务执行实例的最先反向实例测试点;

所述反向路径关系是指对所述目标业务执行路径中的各条业务流向线路进行反向处理所得到的路径关系;

所述根据各应用业务执行实例的实例参数信息,将至少两个应用业务执行实例聚类为目标聚类实例,包括:

根据各应用业务执行实例的实例参数信息,构建由所述多个应用业务执行实例构成的实例测试拓扑分布;

基于所述实例测试拓扑分布,提取聚类分布信息;

所述聚类分布信息包括:多层聚类所需的实例组,每个实例组中至少存在一个实例为所述应用业务执行实例;

按照所述聚类分布信息对所述多个应用业务执行实例进行至少一层聚类迭代处理,得到目标聚类实例。

3.根据权利要求2所述的基于云计算的分布式软件实例测试方法,其特征在于,所述根据各应用业务执行实例的实例参数信息,构建由所述多个应用业务执行实例构成的实例测试拓扑分布,包括:

将所述目标业务执行路径中的起始应用业务执行实例作为实例测试拓扑分布的基础实例,并确定所述多个应用业务执行实例中除所述目标业务执行路径中的起始应用业务执行实例以外的剩余应用业务执行实例;

从每个剩余应用业务执行实例的实例参数信息中的实例测试点集中,获取所述每个剩余应用业务执行实例的最先实例测试点;

根据所述每个剩余应用业务执行实例的最先实例测试点,确定各应用业务执行实例之间的最先关联关系;

按照所述最先关联关系将所述各剩余应用业务执行实例添加至所述基础实例下,以得到实例测试拓扑分布。

4.根据权利要求3所述的基于云计算的分布式软件实例测试方法,其特征在于,所述实例测试拓扑分布中除基础实例以外的每个应用业务执行实例的父实例为:所述每个应用业务执行实例的最先实例测试点;所述多个应用业务执行实例中存在P个实例测试对,一个实例测试对关联至少一层聚类所需的实例组;其中,P为正整数;

所述基于所述实例测试拓扑分布,提取聚类分布信息,包括:按照层次分布的遍历顺序,从所述实例测试拓扑分布中未被遍历的应用业务执行实例中选取第一应用业务执行实例;

根据除所述目标业务执行路径中的最后应用业务执行实例以外的各应用业务执行实例的反向实例测试点集,检测是否存在第二应用业务执行实例和所述第一应用业务执行实例构成第P个实例测试对,P∈[1,P];

所述第二应用业务执行实例满足如下条件:所述第二应用业务执行实例为所述第一应用业务执行实例的最先实例测试点,且所述第一应用业务执行实例为所述第二应用业务执行实例的最先反向实例测试点;

若存在,则根据所述第二应用业务执行实例从所述多个应用业务执行实例中,选取至少一个应用业务执行实例添加至与所述第P个实例测试对关联的目标层聚类所需的实例组中,并继续遍历所述实例测试拓扑分布; 若不存在,则重新选取第一应用业务执行实例,直至所述实例测试拓扑分布中的各应用业务执行实例均被遍历。

5.根据权利要求4所述的基于云计算的分布式软件实例测试方法,其特征在于,所述若存在,则根据所述第二应用业务执行实例从所述多个应用业务执行实例中,选取至少一个应用业务执行实例添加至与所述第P个实例测试对关联的目标层聚类所需的实例组中,包括:

若存在,则从所述实例测试拓扑分布中获取所述第二应用业务执行实例的衍生实例集;

若所述衍生实例集中只包括所述第一应用业务执行实例以及所述第一应用业务执行实例的衍生实例,则选取所述第一应用业务执行实例和所述第二应用业务执行实例,添加至与所述第P个实例测试对关联的目标层聚类所需的实例组中;

若所述衍生实例集中包括除所述第一应用业务执行实例以及所述第一应用业务执行实例的衍生实例以外的其它衍生实例,则选取所述其它衍生实例添加至所述目标层聚类所需的实例组中。

6.根据权利要求5所述的基于云计算的分布式软件实例测试方法,其特征在于,所述选取所述第一应用业务执行实例和所述第二应用业务执行实例,添加至与所述第P个实例测试对关联的目标层聚类所需的实例组中,包括:检测前P‑1个实例测试对关联的过往层聚类所需的实例组中,是否存在第一过往实例组包括所述第一应用业务执行实例;

若存在所述第一过往实例组,则将所述第一过往实例组对应的聚类实例和所述第二应用业务执行实例,添加至与所述第P个实例测试对关联的目标层聚类所需的实例组中;

若不存在所述第一过往实例组,则将所述第一应用业务执行实例和所述第二应用业务执行实例添加至所述目标层聚类所需的实例组中。

7.根据权利要求5所述的基于云计算的分布式软件实例测试方法,其特征在于,所述选取所述其它衍生实例添加至所述目标层聚类所需的实例组中,包括:检测前P‑1个实例测试对关联的过往层聚类所需的实例组中,是否存在第二过往实例组包括所述其它衍生实例所对应的聚类实例;

若存在所述第二过往实例组,则将所述第二过往实例组对应的聚类实例、所述第一应用业务执行实例以及所述第二应用业务执行实例,添加至所述目标层聚类所需的实例组中;

若不存在所述第二过往实例组,则将所述其它衍生实例添加至所述目标层聚类所需的实例组中,并将由所述其它衍生实例聚类的聚类实例、所述第一应用业务执行实例以及所述第二应用业务执行实例,添加至与所述第P个实例测试对关联的位于所述目标层聚类之下的下一层聚类所需的实例组中。

8.根据权利要求1‑7中任意一项所述的基于云计算的分布式软件实例测试方法,其特征在于,所述采用所述目标聚类实例更新所述应用业务实例执行图谱,包括:在所述应用业务实例执行图谱中增加所述目标聚类实例,并采用业务流向线路连接所述目标聚类实例和所述被聚类的应用业务执行实例;

在所述应用业务实例执行图谱中为未被聚类的应用业务执行实例增加一个匹配的实例,以及在所述应用业务实例执行图谱中为所述目标聚类实例增加一个匹配的实例。

9.根据权利要求1‑7中任意一项所述的基于云计算的分布式软件实例测试方法,其特征在于,所述获取基于不同软件功能分区的当前编译文件获得的分布式应用程序包的步骤,包括:

获取所述软件开发编辑终端的软件开发工具包配置文件,通过云计算软件开发服务对所述软件开发工具包配置文件进行分布式编译软件包解析,得到所述软件开发工具包配置文件中软件功能分区的分布式编译软件包信息,其中,所述软件开发工具包配置文件为基于软件开发统计需求进行生成的各个软件功能分区所编辑的软件开发工具包配置数据构成的配置文件;

基于所述软件功能分区的分布式编译软件包信息进行源编译特征分析,得到所述软件功能分区的目标源编译特征;

基于分布式编译程序对所述软件开发工具包配置文件进行分布式编译描述信息解析,得到所述软件功能分区的分布式编译描述信息;

将所述软件开发工具包配置文件中软件功能分区的目标源编译特征与所述软件功能分区的分布式编译描述信息进行编译依赖关系匹配,得到所述软件功能分区的编译依赖关系匹配信息,并基于所述软件功能分区的编译依赖关系匹配信息对所述分布式编译软件包进行源码文件编译,得到所述软件功能分区的当前编译文件;

根据所述软件功能分区的当前编译文件进行软件签名获得对应的分布式应用程序包;

所述获取所述分布式应用程序包的应用业务实例执行图谱中的多个应用业务执行实例的实例参数信息的步骤,包括:

提取所述分布式应用程序包中的每个应用业务实例,以根据所述每个应用业务实例的业务关系构建应用业务实例执行图谱,并将每个应用业务实例的,并根据每个所述应用业务执行实例和其它应用业务执行实例之间的关联关系获得所述每个应用业务实例的实例参数信息,其中,每个所述应用业务执行实例和其它应用业务执行实例之间的关联关系为所述分布式应用程序包中的头信息中获得。

10.一种软件开发平台,其特征在于,所述软件开发平台包括处理器、机器可读存储介质和网络接口,所述机器可读存储介质、所述网络接口以及所述处理器之间通过总线系统相连,所述网络接口用于与至少一个软件开发编辑终端通信连接,所述机器可读存储介质用于存储程序、指令或代码,所述处理器用于执行所述机器可读存储介质中的程序、指令或代码,以执行权利要求1‑9中任意一项的基于云计算的分布式软件实例测试方法。

说明书 :

基于云计算的分布式软件实例测试方法及软件开发平台

技术领域

[0001] 本申请涉及分布式软件开发技术领域,具体而言,涉及一种基于云计算的分布式软件实例测试方法及软件开发平台。

背景技术

[0002] 在分布式软件开发过程中,通常涉及到大范围的软件开发编译。相关技术中,在进行软件开发编译后,需要经过软件测试才能投入到实际项目更新中。然而,发明人研究发现
目前的测试方案中,需要循环对每个应用业务执行实例(例如针对某个订单业务的下单功
能的实例、付款功能的实例等)单独进行测试,这就导致每次测试的重调用次数较多。然而
发明人测试发现,事实上通常很多软件功能业务的开发和使用是聚类存在的,如何减少测
试的重调用次数,以节省云计算资源并缩短测试总时长,是本领域亟待解决的技术问题。

发明内容

[0003] 为了至少克服现有技术中的上述不足,本申请的目的在于提供一种基于云计算的分布式软件实例测试方法及软件开发平台,可按照目标聚类实例的指示对被聚类的应用业
务执行实例所表示的业务实例的软件测试任务进行测试,从而减少测试的重调用次数,以
节省云计算资源并缩短测试总时长。
[0004] 第一方面,本申请提供一种基于云计算的分布式软件实例测试方法,其特征在于,应用于软件开发平台,所述软件开发平台与多个软件开发编辑终端通信连接,所述方法包
括:
[0005] 获取基于不同软件功能分区的当前编译文件获得的分布式应用程序包;
[0006] 获取所述分布式应用程序包的应用业务实例执行图谱中的多个应用业务执行实例的实例参数信息;每个应用业务执行实例用于表示所述分布式应用程序包在功能实现过
程中需要被执行的一个或者多个业务实例,且所述每个应用业务执行实例所表示的业务实
例的软件测试任务需要执行测试;任一应用业务执行实例的实例参数信息用于反映所述任
一应用业务执行实例和其它应用业务执行实例之间的关联关系;
[0007] 根据各应用业务执行实例的实例参数信息,将至少两个应用业务执行实例聚类为目标聚类实例,所述目标聚类实例用于指示对被聚类的应用业务执行实例所表示的业务实
例的软件测试任务进行测试;
[0008] 采用所述目标聚类实例更新所述应用业务实例执行图谱,并将更新后的应用业务实例执行图谱发送至软件实例测试程序,所述更新后的应用业务实例执行图谱用于指示所
述软件实例测试程序按照所述目标聚类实例的指示,在所述分布式应用程序包的功能实现
过程中对所述被聚类的应用业务执行实例所表示的业务实例的软件测试任务进行测试,并
输出测试结果。
[0009] 在第一方面的一种可能的实现方式中,所述多个应用业务执行实例对应一个目标业务执行路径,所述目标业务执行路径是基于各应用业务执行实例在所述应用业务实例执
行图谱中的业务路径关系,采用多条业务流向线路连接所述各应用业务执行实例得到的;
[0010] 所述业务路径关系用于指示:一个应用业务执行实例沿着所述应用业务实例执行图谱中的至少一条执行路径访问其它应用业务执行实例的路径关系;
[0011] 任一应用业务执行实例的实例测试信息包括以下至少一项:所述任一应用业务执行实例的实例测试点集和所述任一应用业务执行实例的反向实例测试点集;
[0012] 所述任一应用业务执行实例的实例测试点集中的实例测试点为:从所述目标业务执行路径中的起始应用业务执行实例至所述任一应用业务执行实例的所有正向路径均经
过的应用业务执行实例;
[0013] 其中,所述任一应用业务执行实例的实例测试点集中距离所述任一应用业务执行实例最先的实例测试点,为所述任一应用业务执行实例的最先实例测试点;
[0014] 所述任一应用业务执行实例的反向实例测试点集中的反向实例测试点为:从所述目标业务执行路径对应的反向路径关系中的起始应用业务执行实例至所述任一应用业务
执行实例的所有反向路径均经过的应用业务执行实例;
[0015] 其中,所述任一应用业务执行实例的反向实例测试点集中距离所述任一应用业务执行实例最先的反向实例测试点,为所述任一应用业务执行实例的最先反向实例测试点;
[0016] 所述反向路径关系是指对所述目标业务执行路径中的各条业务流向线路进行反向处理所得到的路径关系;
[0017] 所述根据各应用业务执行实例的实例参数信息,将至少两个应用业务执行实例聚类为目标聚类实例,包括:
[0018] 根据各应用业务执行实例的实例参数信息,构建由所述多个应用业务执行实例构成的实例测试拓扑分布;
[0019] 基于所述实例测试拓扑分布,提取聚类分布信息;
[0020] 所述聚类分布信息包括:多层聚类所需的实例组,每个实例组中至少存在一个实例为所述应用业务执行实例;
[0021] 按照所述聚类分布信息对所述多个应用业务执行实例进行至少一层聚类迭代处理,得到目标聚类实例。
[0022] 在第一方面的一种可能的实现方式中,所述根据各应用业务执行实例的实例参数信息,构建由所述多个应用业务执行实例构成的实例测试拓扑分布,包括:
[0023] 将所述目标业务执行路径中的起始应用业务执行实例作为实例测试拓扑分布的基础实例,并确定所述多个应用业务执行实例中除所述目标业务执行路径中的起始应用业
务执行实例以外的剩余应用业务执行实例;
[0024] 从每个剩余应用业务执行实例的实例参数信息中的实例测试点集中,获取所述每个剩余应用业务执行实例的最先实例测试点;
[0025] 根据所述每个剩余应用业务执行实例的最先实例测试点,确定各应用业务执行实例之间的最先关联关系;
[0026] 按照所述最先关联关系将所述各剩余应用业务执行实例添加至所述基础实例下,以得到实例测试拓扑分布。
[0027] 在第一方面的一种可能的实现方式中,所述实例测试拓扑分布中除基础实例以外的每个应用业务执行实例的父实例为:所述每个应用业务执行实例的最先实例测试点;所
述多个应用业务执行实例中存在P个实例测试对,一个实例测试对关联至少一层聚类所需
的实例组;其中,P为正整数;
[0028] 所述基于所述实例测试拓扑分布,提取聚类分布信息,包括:
[0029] 按照层次分布的遍历顺序,从所述实例测试拓扑分布中未被遍历的应用业务执行实例中选取第一应用业务执行实例;
[0030] 根据除所述目标业务执行路径中的最后应用业务执行实例以外的各应用业务执行实例的反向实例测试点集,检测是否存在第二应用业务执行实例和所述第一应用业务执
行实例构成第P个实例测试对,P∈[1,P];
[0031] 所述第二应用业务执行实例满足如下条件:所述第二应用业务执行实例为所述第一应用业务执行实例的最先实例测试点,且所述第一应用业务执行实例为所述第二应用业
务执行实例的最先反向实例测试点;
[0032] 若存在,则根据所述第二应用业务执行实例从所述多个应用业务执行实例中,选取至少一个应用业务执行实例添加至与所述第P个实例测试对关联的目标层聚类所需的实
例组中,并继续遍历所述实例测试拓扑分布; 若不存在,则重新选取第一应用业务执行实
例,直至所述实例测试拓扑分布中的各应用业务执行实例均被遍历。
[0033] 在第一方面的一种可能的实现方式中,所述若存在,则根据所述第二应用业务执行实例从所述多个应用业务执行实例中,选取至少一个应用业务执行实例添加至与所述第
P个实例测试对关联的目标层聚类所需的实例组中,包括:
[0034] 若存在,则从所述实例测试拓扑分布中获取所述第二应用业务执行实例的衍生实例集;
[0035] 若所述衍生实例集中只包括所述第一应用业务执行实例以及所述第一应用业务执行实例的衍生实例,则选取所述第一应用业务执行实例和所述第二应用业务执行实例,
添加至与所述第P个实例测试对关联的目标层聚类所需的实例组中;
[0036] 若所述衍生实例集中包括除所述第一应用业务执行实例以及所述第一应用业务执行实例的衍生实例以外的其它衍生实例,则选取所述其它衍生实例添加至所述目标层聚
类所需的实例组中。
[0037] 在第一方面的一种可能的实现方式中,所述选取所述第一应用业务执行实例和所述第二应用业务执行实例,添加至与所述第P个实例测试对关联的目标层聚类所需的实例
组中,包括:
[0038] 检测前P‑1个实例测试对关联的过往层聚类所需的实例组中,是否存在第一过往实例组包括所述第一应用业务执行实例;
[0039] 若存在所述第一过往实例组,则将所述第一过往实例组对应的聚类实例和所述第二应用业务执行实例,添加至与所述第P个实例测试对关联的目标层聚类所需的实例组中;
[0040] 若不存在所述第一过往实例组,则将所述第一应用业务执行实例和所述第二应用业务执行实例添加至所述目标层聚类所需的实例组中。
[0041] 在第一方面的一种可能的实现方式中,所述选取所述其它衍生实例添加至所述目标层聚类所需的实例组中,包括:
[0042] 检测前P‑1个实例测试对关联的过往层聚类所需的实例组中,是否存在第二过往实例组包括所述其它衍生实例所对应的聚类实例;
[0043] 若存在所述第二过往实例组,则将所述第二过往实例组对应的聚类实例、所述第一应用业务执行实例以及所述第二应用业务执行实例,添加至所述目标层聚类所需的实例
组中;
[0044] 若不存在所述第二过往实例组,则将所述其它衍生实例添加至所述目标层聚类所需的实例组中,并将由所述其它衍生实例聚类的聚类实例、所述第一应用业务执行实例以
及所述第二应用业务执行实例,添加至与所述第P个实例测试对关联的位于所述目标层聚
类之下的下一层聚类所需的实例组中。
[0045] 在第一方面的一种可能的实现方式中,所述采用所述目标聚类实例更新所述应用业务实例执行图谱,包括:
[0046] 在所述应用业务实例执行图谱中增加所述目标聚类实例,并采用业务流向线路连接所述目标聚类实例和所述被聚类的应用业务执行实例;
[0047] 在所述应用业务实例执行图谱中为未被聚类的应用业务执行实例增加一个匹配的实例,以及在所述应用业务实例执行图谱中为所述目标聚类实例增加一个匹配的实例。
[0048] 在第一方面的一种可能的实现方式中,所述获取基于不同软件功能分区的当前编译文件获得的分布式应用程序包的步骤,包括:
[0049] 获取所述软件开发编辑终端的软件开发工具包配置文件,通过云计算软件开发服务对所述软件开发工具包配置文件进行分布式编译软件包解析,得到所述软件开发工具包
配置文件中软件功能分区的分布式编译软件包信息,其中,所述软件开发工具包配置文件
为基于软件开发统计需求进行生成的各个软件功能分区所编辑的软件开发工具包配置数
据构成的配置文件;
[0050] 基于所述软件功能分区的分布式编译软件包信息进行源编译特征分析,得到所述软件功能分区的目标源编译特征;
[0051] 基于分布式编译程序对所述软件开发工具包配置文件进行分布式编译描述信息解析,得到所述软件功能分区的分布式编译描述信息;
[0052] 将所述软件开发工具包配置文件中软件功能分区的目标源编译特征与所述软件功能分区的分布式编译描述信息进行编译依赖关系匹配,得到所述软件功能分区的编译依
赖关系匹配信息,并基于所述软件功能分区的编译依赖关系匹配信息对所述分布式编译软
件包进行源码文件编译,得到所述软件功能分区的当前编译文件;
[0053] 根据所述软件功能分区的当前编译文件进行软件签名获得对应的分布式应用程序包;
[0054] 所述获取所述分布式应用程序包的应用业务实例执行图谱中的多个应用业务执行实例的实例参数信息的步骤,包括:
[0055] 提取所述分布式应用程序包中的每个应用业务实例,以根据所述每个应用业务实例的业务关系构建应用业务实例执行图谱,并将每个应用业务实例的,并根据每个所述应
用业务执行实例和其它应用业务执行实例之间的关联关系获得所述每个应用业务实例的
实例参数信息,其中,每个所述应用业务执行实例和其它应用业务执行实例之间的关联关
系为所述分布式应用程序包中的头信息中获得
[0056] 第二方面,本申请实施例还提供一种基于云计算的分布式软件实例测试装置,应用于软件开发平台,所述软件开发平台与多个软件开发编辑终端通信连接,所述装置包括:
[0057] 第一获取模块,用于获取基于不同软件功能分区的当前编译文件获得的分布式应用程序包;
[0058] 第二获取模块,用于获取所述分布式应用程序包的应用业务实例执行图谱中的多个应用业务执行实例的实例参数信息;每个应用业务执行实例用于表示所述分布式应用程
序包在功能实现过程中需要被执行的一个或者多个业务实例,且所述每个应用业务执行实
例所表示的业务实例的软件测试任务需要执行测试;任一应用业务执行实例的实例参数信
息用于反映所述任一应用业务执行实例和其它应用业务执行实例之间的关联关系;
[0059] 聚类模块,用于根据各应用业务执行实例的实例参数信息,将至少两个应用业务执行实例聚类为目标聚类实例,所述目标聚类实例用于指示对被聚类的应用业务执行实例
所表示的业务实例的软件测试任务进行测试;
[0060] 测试模块,用于采用所述目标聚类实例更新所述应用业务实例执行图谱,并将更新后的应用业务实例执行图谱发送至软件实例测试程序,所述更新后的应用业务实例执行
图谱用于指示所述软件实例测试程序按照所述目标聚类实例的指示,在所述分布式应用程
序包的功能实现过程中对所述被聚类的应用业务执行实例所表示的业务实例的软件测试
任务进行测试,并输出测试结果。
[0061] 第三方面,本申请实施例还提供一种基于云计算的分布式软件实例测试系统,所述基于云计算的分布式软件实例测试系统包括软件开发平台以及与所述软件开发平台通
信连接的多个软件开发编辑终端;
[0062] 所述软件开发平台,用于:
[0063] 获取基于不同软件功能分区的当前编译文件获得的分布式应用程序包;
[0064] 获取所述分布式应用程序包的应用业务实例执行图谱中的多个应用业务执行实例的实例参数信息;每个应用业务执行实例用于表示所述分布式应用程序包在功能实现过
程中需要被执行的一个或者多个业务实例,且所述每个应用业务执行实例所表示的业务实
例的软件测试任务需要执行测试;任一应用业务执行实例的实例参数信息用于反映所述任
一应用业务执行实例和其它应用业务执行实例之间的关联关系;
[0065] 根据各应用业务执行实例的实例参数信息,将至少两个应用业务执行实例聚类为目标聚类实例,所述目标聚类实例用于指示对被聚类的应用业务执行实例所表示的业务实
例的软件测试任务进行测试;
[0066] 采用所述目标聚类实例更新所述应用业务实例执行图谱,并将更新后的应用业务实例执行图谱发送至软件实例测试程序,所述更新后的应用业务实例执行图谱用于指示所
述软件实例测试程序按照所述目标聚类实例的指示,在所述分布式应用程序包的功能实现
过程中对所述被聚类的应用业务执行实例所表示的业务实例的软件测试任务进行测试,并
输出测试结果。
[0067] 第四方面,本申请实施例还提供一种软件开发平台,所述软件开发平台包括处理器、机器可读存储介质和网络接口,所述机器可读存储介质、所述网络接口以及所述处理器
之间通过总线系统相连,所述网络接口用于与至少一个软件开发编辑终端通信连接,所述
机器可读存储介质用于存储程序、指令或代码,所述处理器用于执行所述机器可读存储介
质中的程序、指令或代码,以执行第一方面或者第一方面中任意一个可能的实现方式中的
基于云计算的分布式软件实例测试方法。
[0068] 第五方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其被执行时,使得计算机执行上述第一方面或者第一方面中任意一个可能
的实现方式中的基于云计算的分布式软件实例测试方法。
[0069] 基于上述任意一个方面,本申请可先根据分布式应用程序包的应用业务实例执行图谱中的多个应用业务执行实例的实例参数信息,将至少两个应用业务执行实例聚类为目
标聚类实例,该目标聚类实例用于指示对被聚类的应用业务执行实例所表示的业务实例的
软件测试任务进行测试。然后,可采用目标聚类实例更新应用业务实例执行图谱,并将更新
后的应用业务实例执行图谱发送至软件实例测试程序,使得软件实例测试程序在测试分布
式应用程序包的过程中,可按照目标聚类实例的指示对被聚类的应用业务执行实例所表示
的业务实例的软件测试任务进行测试,从而减少测试的重调用次数,以节省云计算资源并
缩短测试总时长。

附图说明

[0070] 为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要调用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对
范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这
些附图获得其它相关的附图。
[0071] 图1为本申请实施例提供的基于云计算的分布式软件实例测试系统的应用场景示意图;
[0072] 图2为本申请实施例提供的基于云计算的分布式软件实例测试方法的流程示意图;
[0073] 图3为本申请实施例提供的基于云计算的分布式软件实例测试装置的功能模块示意图;
[0074] 图4为本申请实施例提供的用于实现上述的基于云计算的分布式软件实例测试方法的软件开发平台的结构组件示意框图。

具体实施方式

[0075] 下面结合说明书附图对本申请进行具体说明,方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。
[0076] 图1是本申请一种实施例提供的基于云计算的分布式软件实例测试系统10的交互示意图。基于云计算的分布式软件实例测试系统10可以包括软件开发平台100以及与软件
开发平台100通信连接的软件开发编辑终端200。图1所示的基于云计算的分布式软件实例
测试系统10仅为一种可行的示例,在其它可行的实施例中,该基于云计算的分布式软件实
例测试系统10也可以仅包括图1所示组成部分的其中一部分或者还可以包括其它的组成部
分。
[0077] 基于本申请提供的技术方案的发明构思出发,本申请提供的软件开发平台100可以应用在例如智慧医疗、智慧城市管理、智慧工业互联网、通用业务监控管理等可以应用大
数据技术或者是云计算技术等的场景中,再比如,还可以应用在包括但不限于新能源汽车
系统管理、智能云办公、云平台数据处理、云游戏数据处理、云直播处理、云汽车管理平台、
区块链金融数据服务平台等,但不限于此。
[0078] 本实施例中,基于云计算的分布式软件实例测试系统10中的软件开发平台100和软件开发编辑终端200可以通过配合执行以下方法实施例所描述的基于云计算的分布式软
件实例测试方法,具体软件开发平台100和软件开发编辑终端200的执行步骤部分可以参照
以下方法实施例的详细描述。
[0079] 为了解决前述背景技术中的技术问题,图2为本申请实施例提供的基于云计算的分布式软件实例测试方法的流程示意图,本实施例提供的基于云计算的分布式软件实例测
试方法可以由图1中所示的软件开发平台100执行,下面对该基于云计算的分布式软件实例
测试方法进行详细介绍。
[0080] 步骤S110,获取基于不同软件功能分区的当前编译文件获得的分布式应用程序包。
[0081] 步骤S120,获取分布式应用程序包的应用业务实例执行图谱中的多个应用业务执行实例的实例参数信息。
[0082] 本实施例中,每个应用业务执行实例可以用于表示分布式应用程序包在功能实现过程中需要被执行的一个或者多个业务实例,且每个应用业务执行实例所表示的业务实例
的软件测试任务需要执行测试。
[0083] 本实施例中,业务实例表示是指在面向对象的编程中,把用一个抽象概念类创建对象的过程所表示的业务实际功能。
[0084] 本实施例中,任一应用业务执行实例的实例参数信息用于反映任一应用业务执行实例和其它应用业务执行实例之间的关联关系。例如,针对订单业务而言,订单下单业务的
应用业务执行实例与订单付款业务的应用业务执行实例以及订单确认业务的应用业务执
行实例存在关联关系,及在订单下单后,需要进行订单付款,在订单付款后,需要进行订单
收货信息的确认。
[0085] 步骤S130,根据各应用业务执行实例的实例参数信息,将至少两个应用业务执行实例聚类为目标聚类实例。
[0086] 本实施中,目标聚类实例用于指示对被聚类的应用业务执行实例所表示的业务实例的软件测试任务进行测试。
[0087] 步骤S140,采用目标聚类实例更新应用业务实例执行图谱,并将更新后的应用业务实例执行图谱发送至软件实例测试程序。
[0088] 本实施中,更新后的应用业务实例执行图谱可以用于指示软件实例测试程序按照目标聚类实例的指示,在分布式应用程序包的功能实现过程中对被聚类的应用业务执行实
例所表示的业务实例的软件测试任务进行测试,并输出测试结果。
[0089] 详细的,在一些可能的实现方式中,软件测试任务可以依据实际软件功能的需求进行配置,具体可以自定义,或者参照现有技术中的常规测试任务即可,在此不做限定。此
外,软件实例测试程序具体的测试逻辑可以参照软件测试任务进行自适应性配置,具体测
试的内容和形式不是本申请实施例旨在解决的技术问题,此处不作详细描述。
[0090] 基于上述步骤,本实施例可先根据分布式应用程序包的应用业务实例执行图谱中的多个应用业务执行实例的实例参数信息,将至少两个应用业务执行实例聚类为目标聚类
实例,该目标聚类实例用于指示对被聚类的应用业务执行实例所表示的业务实例的软件测
试任务进行测试。然后,可采用目标聚类实例更新应用业务实例执行图谱,并将更新后的应
用业务实例执行图谱发送至软件实例测试程序,使得软件实例测试程序在测试分布式应用
程序包的过程中,可按照目标聚类实例的指示对被聚类的应用业务执行实例所表示的业务
实例的软件测试任务进行测试,从而减少测试的重调用次数,以节省云计算资源并缩短测
试总时长。
[0091] 在一种可能的实现方式中,在对本申请实施例进行详细描述之前,下面首先针对各自定义属于进行解释,以使得本领域技术人员能够清楚完整地实现本申请实施例的方
案。
[0092] 详细地,上述的多个应用业务执行实例对应一个目标业务执行路径。其中,目标业务执行路径是基于各应用业务执行实例在应用业务实例执行图谱中的业务路径关系,采用
多条业务流向线路连接各应用业务执行实例得到的。
[0093] 这样,在本领域中,业务路径关系可以用于指示:一个应用业务执行实例沿着应用业务实例执行图谱中的至少一条执行路径访问其它应用业务执行实例的路径关系。
[0094] 任一应用业务执行实例的实例测试信息包括以下至少一项:任一应用业务执行实例的实例测试点集和任一应用业务执行实例的反向实例测试点集。
[0095] 值得说明的是,任一应用业务执行实例的实例测试点集中的实例测试点可以理解为:从目标业务执行路径中的起始应用业务执行实例至任一应用业务执行实例的所有正向
路径均经过的应用业务执行实例。
[0096] 其中,任一应用业务执行实例的实例测试点集中距离任一应用业务执行实例最先的实例测试点,为任一应用业务执行实例的最先实例测试点。
[0097] 本实施例中,任一应用业务执行实例的反向实例测试点集中的反向实例测试点可以理解为:从目标业务执行路径对应的反向路径关系中的起始应用业务执行实例至任一应
用业务执行实例的所有反向路径均经过的应用业务执行实例。
[0098] 本实施例中,任一应用业务执行实例的反向实例测试点集中距离任一应用业务执行实例最先的反向实例测试点,为任一应用业务执行实例的最先反向实例测试点。
[0099] 本实施例中,反向路径关系是指对目标业务执行路径中的各条业务流向线路进行反向处理所得到的路径关系。
[0100] 这样,针对步骤S130而言,在根据各应用业务执行实例的实例参数信息,将至少两个应用业务执行实例聚类为目标聚类实例的过程中,可以通过以下示例性的子步骤来实
现,详细描述如下。
[0101] 子步骤S131,根据各应用业务执行实例的实例参数信息,构建由多个应用业务执行实例构成的实例测试拓扑分布。
[0102] 子步骤S132,基于实例测试拓扑分布,提取聚类分布信息。
[0103] 本实施例中,聚类分布信息可以包括:多层聚类所需的实例组,每个实例组中至少存在一个实例为应用业务执行实例。
[0104] 子步骤S133,按照聚类分布信息对多个应用业务执行实例进行至少一层聚类迭代处理,得到目标聚类实例。
[0105] 例如,在一种可能的实现方式中,可以按照聚类分布信息确定第n层聚类所需的第n实例组,并根据第n实例组中的每个实例的实例跳转次数确定第n实例组的实例跳转次数
总和;n∈[1,N],N为聚类分布信息的分布层级数。当第n实例组的实例跳转次数总和小于或
等于实例跳转次数阈值时,对第n实例组中的各实例进行聚类处理,得到第n聚类实例。若n
的当前取值小于N,且按照聚类层次信息获取的第n+1层聚类所需的第n+1实例组的实例跳
转次数总和大于实例跳转次数阈值,则根据第n聚类实例得到目标聚类实例。
[0106] 在一种可能的实现方式中,针对子步骤S131而言,可以通过以下实施方式来实现。
[0107] (1)将目标业务执行路径中的起始应用业务执行实例作为实例测试拓扑分布的基础实例,并确定多个应用业务执行实例中除目标业务执行路径中的起始应用业务执行实例
以外的剩余应用业务执行实例。
[0108] (2)从每个剩余应用业务执行实例的实例参数信息中的实例测试点集中,获取每个剩余应用业务执行实例的最先实例测试点。
[0109] (3)根据每个剩余应用业务执行实例的最先实例测试点,确定各应用业务执行实例之间的最先关联关系。
[0110] (4)按照最先关联关系将各剩余应用业务执行实例添加至基础实例下,以得到实例测试拓扑分布。
[0111] 在一种可能的实现方式中,上述的实例测试拓扑分布中除基础实例以外的每个应用业务执行实例的父实例为:每个应用业务执行实例的最先实例测试点。多个应用业务执
行实例中存在P个实例测试对,一个实例测试对关联至少一层聚类所需的实例组。其中,P为
正整数。
[0112] 这样,针对子步骤S132而言,可以通过以下实施方式来实现。
[0113] (1)按照层次分布的遍历顺序,从实例测试拓扑分布中未被遍历的应用业务执行实例中选取第一应用业务执行实例。
[0114] (2)根据除目标业务执行路径中的最后应用业务执行实例以外的各应用业务执行实例的反向实例测试点集,检测是否存在第二应用业务执行实例和第一应用业务执行实例
构成第P个实例测试对,P∈[1,P]。
[0115] (3)第二应用业务执行实例满足如下条件:第二应用业务执行实例为第一应用业务执行实例的最先实例测试点,且第一应用业务执行实例为第二应用业务执行实例的最先
反向实例测试点。
[0116] (4)若存在,则根据第二应用业务执行实例从多个应用业务执行实例中,选取至少一个应用业务执行实例添加至与第P个实例测试对关联的目标层聚类所需的实例组中,并
继续遍历实例测试拓扑分布。若不存在,则重新选取第一应用业务执行实例,直至实例测试
拓扑分布中的各应用业务执行实例均被遍历。
[0117] 例如,若存在,则可以从实例测试拓扑分布中获取第二应用业务执行实例的衍生实例集,若衍生实例集中只包括第一应用业务执行实例以及第一应用业务执行实例的衍生
实例,则选取第一应用业务执行实例和第二应用业务执行实例,添加至与第P个实例测试对
关联的目标层聚类所需的实例组中。或者,若衍生实例集中包括除第一应用业务执行实例
以及第一应用业务执行实例的衍生实例以外的其它衍生实例,则选取其它衍生实例添加至
目标层聚类所需的实例组中。
[0118] 示例性地,在选取第一应用业务执行实例和第二应用业务执行实例,添加至与第P个实例测试对关联的目标层聚类所需的实例组中的过程中,可以检测前P‑1个实例测试对
关联的过往层聚类所需的实例组中,是否存在第一过往实例组包括第一应用业务执行实
例。
[0119] 例如,若存在第一过往实例组,则将第一过往实例组对应的聚类实例和第二应用业务执行实例,添加至与第P个实例测试对关联的目标层聚类所需的实例组中。
[0120] 又例如,若不存在第一过往实例组,则将第一应用业务执行实例和第二应用业务执行实例添加至目标层聚类所需的实例组中。
[0121] 在一种可能的实现方式中,在选取其它衍生实例添加至目标层聚类所需的实例组中的过程中,具体可以检测前P‑1个实例测试对关联的过往层聚类所需的实例组中,是否存
在第二过往实例组包括其它衍生实例所对应的聚类实例。
[0122] 例如,若存在第二过往实例组,则将第二过往实例组对应的聚类实例、第一应用业务执行实例以及第二应用业务执行实例,添加至目标层聚类所需的实例组中。
[0123] 又例如,若不存在第二过往实例组,则将其它衍生实例添加至目标层聚类所需的实例组中,并将由其它衍生实例聚类的聚类实例、第一应用业务执行实例以及第二应用业
务执行实例,添加至与第P个实例测试对关联的位于目标层聚类之下的下一层聚类所需的
实例组中。
[0124] 在一种可能的实现方式中,针对步骤S140,在采用目标聚类实例更新应用业务实例执行图谱的过程中,可以通过以下示例性的子步骤来实现,详细描述如下。
[0125] 子步骤S141,在应用业务实例执行图谱中增加目标聚类实例,并采用业务流向线路连接目标聚类实例和被聚类的应用业务执行实例。
[0126] 子步骤S142,在应用业务实例执行图谱中为未被聚类的应用业务执行实例增加一个匹配的实例,以及在应用业务实例执行图谱中为目标聚类实例增加一个匹配的实例。
[0127] 在一种可能的实现方式中,针对步骤S110,在获取基于不同软件功能分区的当前编译文件获得的分布式应用程序包的过程中,可以通过以下示例性的子步骤来实现,详细
描述如下。
[0128] 子步骤S111,获取软件开发编辑终端200的软件开发工具包配置文件,通过云计算软件开发服务对软件开发工具包配置文件进行分布式编译软件包解析,得到软件开发工具
包配置文件中软件功能分区的分布式编译软件包信息。
[0129] 子步骤S112,基于软件功能分区的分布式编译软件包信息进行源编译特征分析,得到软件功能分区的目标源编译特征。
[0130] 子步骤S113,基于分布式编译程序对软件开发工具包配置文件进行分布式编译描述信息解析,得到软件功能分区的分布式编译描述信息。
[0131] 子步骤S114,将软件开发工具包配置文件中软件功能分区的目标源编译特征与软件功能分区的分布式编译描述信息进行编译依赖关系匹配,得到软件功能分区的编译依赖
关系匹配信息,并基于软件功能分区的编译依赖关系匹配信息对分布式编译软件包进行源
码文件编译,得到软件功能分区的当前编译文件。
[0132] 本实施例中,云计算软件开发服务可以理解为在云端运行的软件开发服务,例如可以预先在云端配置软件开发过程中的各个软件开发模块,例如在本申请实施例中需要使
用到的分布式编译软件包解析的功能模块,进而执行此操作。关于具体分布式编译软件包
解析的功能模块的操作可以参见后续针对步骤S111的详细描述。
[0133] 本实施例中,软件开发工具包配置文件可以理解为基于软件开发统计需求进行生成的各个软件功能分区所编辑的软件开发工具包配置数据构成的配置文件。其中,分布式
编译软件包可以是指软件开发编辑终端200在使用进行任意软件开发编译时通过使用软件
开发工具包进行代码配置而生成的软件包。软件功能分区可以是指分布式编译软件包下形
成的某个新增软件功能,或者更新软件功能,或者已有软件功能构成的代码文件目录区。
[0134] 本实施例中,源编译特征可以用于表征针对各个软件功能分区所对应的源代码的编译策略信息,分布式编译描述信息可以用于描述在分布式编译过程中针对各个分布式节
点的编译策略信息。
[0135] 本实施例中,编译依赖关系可以是指在编译过程中,一个类使用另一个类的对象作为操作的参数,一个类用另一个类的对象作为该类的数据成员,一个类向另一个类传递
信息等,这样的两个类之间都存在依赖关系。因此在编译过程中,需要考虑到编译依赖关
系,由此按照编译依赖关系的特征分布进行针对性的软件编译的操作。这样,本实施例通过
编译依赖关系匹配软件功能分区的目标源编译特征与软件功能分区的分布式编译描述信
息,以综合软件功能分区的分布式编译软件包信息与软件功能分区的分布式编译描述信
息,提取到丰富的软件功能分区的编译依赖关系,从而便于在编译过程中基于编译依赖的
关系进行高效地分布式编译;另外,通过软件功能分区的目标源编译特征,对软件功能分区
进行源码文件编译,得到软件功能分区的当前编译文件,从而便于模块化单元编译,减少编
译失败后的编译重启时间。
[0136] 在一种可能的实现方式中,针对步骤S112而言,在获取分布式应用程序包的应用业务实例执行图谱中的多个应用业务执行实例的实例参数信息的过程中,可以提取所述分
布式应用程序包中的每个应用业务实例,以根据所述每个应用业务实例的业务关系构建应
用业务实例执行图谱,并将每个应用业务实例的,并根据每个所述应用业务执行实例和其
它应用业务执行实例之间的关联关系获得所述每个应用业务实例的实例参数信息。
[0137] 其中,值得说明的是,每个所述应用业务执行实例和其它应用业务执行实例之间的关联关系为所述分布式应用程序包中的头信息中获得。
[0138] 在此基础上,接下来将对本申请实施例的一些可替代的实施方式进行说明,应当理解在接下来的实施例的描述中仅为示例,不应理解为实现本方案所必不可少的技术特
征。
[0139] 在一种可能的实现方式中,针对步骤S111而言,在通过云计算软件开发服务对软件开发工具包配置文件进行分布式编译软件包解析,得到软件开发工具包配置文件中软件
功能分区的分布式编译软件包信息的过程中,可以通过以下示例性的子步骤来实现,详细
描述如下。
[0140] 子步骤S1111,获取软件开发工具包配置文件中的每个配置源码文件的软件开发编辑器所编辑的变化源码文件集。
[0141] 本实施例中,值得说明的是,变化源码文件集包括以每个镜像文件为一参考单元的变化源码文件,变化源码文件包括该镜像文件的调用代码条件、调用代码结果以及该镜
像文件内的调用代码更新记录。譬如,镜像文件可以用于表示代码编辑配置过程中相关的
业务范围,调用代码条件可以用于表征调用代码时的条件(例如某个功能代码被调用时,可
以作为一个条件),调用代码结果可以用于表征调用代码后所指示的运行结果。
[0142] 譬如,在本实施例中,软件开发编辑器可以是软体程序,软件开发编辑器是指具有编辑功能的程序。能把存在计算机中的源程序显示在屏幕上,然后根据需要进行增加、删
除、替换和联结等操作。
[0143] 例如,用户利用此程序对存储在计算机中的文卷进行增加、删除、修改、剪贴等加工处理。增加是指在旧文卷中插入若干行记录,或者在一行记录里添加若干字符。
[0144] 例如,Aptana是一个基于Eclipse的集成开发环境,包括JavaScript编辑器和调试器,可以包括JavaScript,JavaScript函数,HTML,CSS语言的Code Assist功能。
[0145] 子步骤S1112,针对每个镜像文件,根据每个配置源码文件在该镜像文件的调用代码更新记录中的多个更新记录行中的每一个更新记录行,根据该更新记录行中代码更新解
释信息的解释向量表示,确定该更新记录行中每个代码更新解释信息是否为新编译代码实
例,根据该更新记录行中新编译代码实例的实例类型,确定该更新记录行对应的每个代码
资源包的索引代码片段,针对每个代码资源包的索引代码片段,将该代码资源包的索引代
码片段划分为多个子索引代码片段,根据每个子索引代码片段内各代码更新解释信息的解
释标签及预设的标签区间,确定代码资源包的索引代码片段是否为目标索引程序包的索引
代码片段。
[0146] 其中,值得说明的是,每个代码更新解释信息对应于每个编译分类代码更新行为。
[0147] 子步骤S1113,获取预设编译分类模板匹配目标索引程序包的索引代码片段内每个代码更新解释信息的编译分类模板块信息,编译分类模板块信息包括编译分类代码功能
标签和编译分类代码应用标签,预设编译分类模板包括不同编译分类代码使用类型所对应
的匹配策略。
[0148] 子步骤S1114,根据变化源码文件集中的各个不同镜像文件的每个调用代码更新记录的编译分类模板块信息确定每个编译分类代码的编译遍历变量的变量信息和每个编
译遍历常量的常量信息,并根据目标索引程序包的索引代码片段内每个编译分类代码的编
译遍历变量的变量信息和每个编译遍历常量的常量信息,确定每个配置源码文件在该镜像
文件的编译分类代码标签对象,将位于编译分类代码标签对象的编译分类代码的头信息区
间内的软件包信息以及位于编译分类代码标签对象的编译分类代码的头信息区间外而关
联于编译分类代码标签对象的编译分类代码的头信息区间的软件包信息作为每个配置源
码文件在该镜像文件内的分布式编译程序信息后,将每个配置源码文件在所有镜像文件内
的分布式编译程序信息进行汇总后,得到软件开发工具包配置文件中软件功能分区的分布
式编译软件包信息。
[0149] 譬如,编译遍历常量是指在整个操作过程中其值保持不变的数据,通常在命令或程序中直接给出其值,用做常量的数据类型有数值型、字符型、日期型、逻辑型和货币型等
类型。又例如,编译遍历变量是指在整个操作过程中其值变化的数据,具有存储空间的抽
象,编译遍历变量是一种使用方便的占位符,用于引用内存地址,该地址可以存储Script运
行时可更改的程序信息。
[0150] 在一种可能的实现方式中,针对步骤S112而言,在基于软件功能分区的分布式编译软件包信息进行源编译特征分析,得到软件功能分区的目标源编译特征的过程中,可以
通过以下示例性的子步骤来实现,详细描述如下。
[0151] 子步骤S1121,获取软件功能分区的分布式编译软件包信息中的每个分布式编译程序信息的调用代码描述信息上添加的依赖声明代码集合的依赖声明代码调度信息,并确
定与依赖声明代码调度信息对应的第一依赖声明源码集。
[0152] 譬如,依赖声明可以是在代码需要依赖另一个类对象的描述解释信息,依赖声明代码可以是指描述解释信息的代码化信息,可以包括依赖方式,或者依赖对象等代码表示
信息。
[0153] 值得说明的是,依赖声明代码调度信息包括根据依赖声明代码集合的依赖规则输入信息和依赖规则输出信息所确定出的依赖规则计算关系信息的依赖实例对象信息,第一
依赖声明源码集包括依赖实例对象信息的多个依赖实例优先级的高低顺序。
[0154] 子步骤S1122,确定每个分布式编译程序信息的调用代码描述信息基于依赖规则输入信息的第一依赖规则分量和基于依赖规则输出信息的第二依赖规则分量。
[0155] 子步骤S1123,根据第一依赖规则分量和第二依赖规则分量的依赖实例优先级关系确定用于对第一依赖声明源码集进行逻辑回归解析的逻辑回归解析参数。
[0156] 子步骤S1124,基于逻辑回归解析参数对第一依赖声明源码集进行逻辑回归解析获得第二依赖声明源码集。
[0157] 子步骤S1125,对第二依赖声明源码集进行依赖方式划分得到多个依赖方式划分集,对每个依赖方式划分集进行特征提取得到依赖方式划分变量。
[0158] 子步骤S1126,根据第二依赖声明源码集对应的多个依赖方式划分变量所对应的源编译特征,确定为每个分布式编译程序信息的源编译特征。
[0159] 子步骤S1127,基于每个分布式编译程序信息的源编译特征获得软件功能分区的目标源编译特征。
[0160] 进一步地,在一种可能的实现方式中,针对步骤S113而言,在基于分布式编译程序对软件开发工具包配置文件进行分布式编译描述信息解析,得到软件功能分区的分布式编
译描述信息的过程中,可以通过以下示例性的子步骤来实现,详细描述如下。
[0161] 子步骤S1131,将软件开发工具包配置文件输入到预设的分布式编译程序中,获得软件开发工具包配置文件匹配于每个预设编译环境的匹配度。
[0162] 子步骤S1132,根据软件开发工具包配置文件匹配于每个预设编译环境的匹配度确定软件开发工具包配置文件对应的目标编译环境。
[0163] 譬如,可以将匹配度大于预设匹配度阈值的预设编译环境确定为软件开发工具包配置文件对应的目标编译环境。
[0164] 子步骤S1133,从软件开发工具包配置文件对应的目标编译环境的编译环境描述信息中提取匹配于每个软件功能分区的分布式编译描述信息。
[0165] 譬如,在提取过程中,可以具体提取编译环境描述信息中匹配于每个软件功能分区的具有结构化描述信息的特征信息。
[0166] 在一种可能的实现方式中,针对步骤S114而言,在将软件开发工具包配置文件中软件功能分区的目标源编译特征与软件功能分区的分布式编译描述信息进行编译依赖关
系匹配,得到软件功能分区的编译依赖关系匹配信息的过程中,可以通过以下示例性的子
步骤来实现,详细描述如下。
[0167] 子步骤S1141,将软件功能分区的目标源编译特征和分布式编译描述信息添加到编译依赖关系匹配程序中,从编译依赖关系匹配程序中确定出各编译依赖组件所对应软件
功能分区的目标源编译特征和分布式编译描述信息的依赖关系分布圈。
[0168] 子步骤S1142,依据各不同依赖关系分布圈中编译依赖组件之间的组件关系的关系标签对各依赖关系分布圈进行依赖方式划分,得到至少一个依赖关系分布圈序列。
[0169] 本实施例中,同一依赖关系分布圈序列中任意两个依赖关系分布圈中的编译依赖组件的组件关系的关系标签覆盖预设标签区间。
[0170] 子步骤S1143,针对每一依赖关系分布圈序列,基于该依赖关系分布圈序列中各依赖关系分布圈,从编译依赖关系匹配程序中确定该依赖关系分布圈序列针对软件功能分区
的目标源编译特征和分布式编译描述信息对应的程序依赖调用信息。
[0171] 本实施例中,程序依赖调用信息至少包括依赖关系分布圈序列中各依赖关系分布圈针对软件功能分区的目标源编译特征和分布式编译描述信息的每个依赖程序编码表项
的特征信息数据,程序依赖调用信息用于确定该依赖关系分布圈序列中各依赖关系分布圈
中的编译依赖组件对应软件功能分区的目标源编译特征和分布式编译描述信息的依赖关
系的代码输出结果。
[0172] 子步骤S1144,基于程序依赖调用信息确定该依赖关系分布圈序列中各依赖关系分布圈中的编译依赖组件对应的依赖关系的代码输出结果,采用预设组件关系分类模型对
依赖关系的代码输出结果进行分类得到分类结果,根据分类结果,得到软件功能分区的编
译依赖关系匹配信息。
[0173] 示例性地,在一种可能的示例中,对于子步骤S1144而言,在基于程序依赖调用信息确定该依赖关系分布圈序列中各依赖关系分布圈中的编译依赖组件对应的依赖关系的
代码输出结果的过程中,可以通过以下可替代的实施方式来实现。
[0174] 子步骤S11441,确定程序依赖调用信息的依赖调用开发信息和依赖调用类别,根据过往组件关系分量结果中的多个组件关系分布,确定多个依赖调用联动组合,根据每个
依赖调用联动组合中各个组件关系分布在依赖调用开发信息内与依赖调用类别的依赖参
数,进行依赖业务关系计算,得到分别与多个依赖调用联动组合对应的多个依赖业务关系
计算结果,并将每个依赖业务关系计算结果对应的依赖调用联动组合的联动参数作为每个
依赖业务关系计算结果的依赖联动参数。
[0175] 子步骤S11442,基于多个依赖业务关系计算结果,分别获取在依赖调用开发信息内确定与依赖调用类别对应的各依赖关系分布圈的模拟组件关系节点,得到多个模拟组件
关系节点,根据每个依赖业务关系计算结果的依赖联动参数,对基于多个依赖业务关系计
算结果获取到的多个模拟组件关系节点进行整合,得到第一模拟组件关系节点集。
[0176] 其中,值得说明的是,每个依赖调用联动组合中任两个组件关系分布之间的联动参数相等,且不同依赖调用联动组合对应的联动参数不等,每个依赖业务关系计算结果用
于确定在任一设定时序段内与依赖调用类别对应的各依赖关系分布圈中的编译依赖组件
对应的共同编译依赖信息,依赖业务关系计算结果通过根据过往组件关系分量结果进行依
赖业务关系计算后得到。
[0177] 子步骤S11443,根据过往组件关系分量结果和依赖调用类别对应的多个编译依赖组件的共同编译依赖信息,获取多个编译依赖组件在依赖调用开发信息内与依赖调用类别
的之间的编译依赖结果,将多个编译依赖组件对应的编译依赖结果的对应的应用业务执行
实例作为第二模拟组件关系节点。
[0178] 子步骤S11444,比对第一模拟组件关系节点集与第二模拟组件关系节点的组件关系相关参数,根据组件关系相关参数以及每个编译依赖组件的共同编译依赖信息确定每个
编译依赖组件对应的依赖关系的代码输出结果。
[0179] 例如,在一种可替代的实施例中,对于子步骤S11444,可以通过以下实施例来实现。
[0180] (1)基于组件关系相关参数确定每个编译依赖组件对应的组件关系圈网络的编译字段信息,通过每个编译依赖组件的共同编译依赖信息在对应的依赖关系分布圈中的覆盖
关系确定每个编译依赖组件的编译兼容信息。
[0181] (2)提取编译字段信息对应的第一源编译特征序列以及编译兼容信息对应的第二源编译特征序列,并确定第一源编译特征序列和第二源编译特征序列中分别包括的若干个
具有不同的编译特征片段的编译度量模型。
[0182] 其中,编译度量模型可以理解为第一源编译特征序列和第二源编译特征序列中的存在关联关系的源编译特征构成的模型。
[0183] (3)在第一源编译特征序列的函数组件关系和第二源编译特征序列的函数组件关系相同的前提下,获得编译字段信息在第一源编译特征序列的任一编译度量模型的接口关
系信息,并行地将第二源编译特征序列中具有最小编译特征片段的编译度量模型确定为目
标编译度量模型。
[0184] (4)基于每个编译依赖组件的提取策略,将接口关系信息添加到目标编译度量模型,在目标编译度量模型中确定出与接口关系信息对应的数据字典信息。
[0185] (5)通过接口关系信息和数据字典信息之间的接口关系字典对象,生成编译字段信息和编译兼容信息之间的编译兼容点。
[0186] (6)以数据字典信息为参考信息在目标编译度量模型中获取目标编译度量多元组信息,根据编译兼容点对应的多个兼容点路径,将目标编译度量多元组信息添加到接口关
系信息所在编译度量模型,以在接口关系信息所在编译度量模型中得到目标编译度量多元
组信息对应的依赖抽象类结果,并根据参考信息确定依赖抽象类结果为依赖程序编码结
果。
[0187] 其中,目标编译度量多元组信息可以理解为编译操作对应的编译度量多元组的信息。
[0188] (7)确定将接口关系信息添加到目标编译度量模型时对应的组件关系结果。
[0189] (8)根据依赖抽象类结果与组件关系结果中的多个组件关系溯源节点对应的组件关系特征标签之间的关联度,在第二源编译特征序列中按照时序权重的由大到小的顺序依
次获取依赖程序编码结果对应的依赖程序编码标签,直至获取到的依赖程序编码标签所在
编译度量模型的软件框架更新节点数量与依赖程序编码结果在第一源编译特征序列中的
软件框架更新节点数量一致时,停止获取下一编译度量模型中的依赖程序编码标签,并建
立依赖程序编码结果与最后一次获取到的依赖程序编码标签之间的溯源关联信息,基于溯
源关联信息确定每个编译依赖组件对应的依赖关系的代码输出结果。
[0190] 在一种可能的实现方式中,仍旧针对步骤S114,在基于软件功能分区的编译依赖关系匹配信息对分布式编译软件包进行源码文件编译,得到软件功能分区的当前编译文件
的过程中,可以通过以下示例性的子步骤来实现,详细描述如下。
[0191] 子步骤S1145,获取软件功能分区在分布式编译软件包下的源码文件编译信息。
[0192] 子步骤S1146,获取源码文件编译信息下的源码文件编译项目以及每个源码文件编译项目对应的组件关系配置信息。
[0193] 子步骤S1147,将软件功能分区的编译依赖关系匹配信息覆盖配置于每个源码文件编译项目对应的组件关系配置信息下,得到软件功能分区的当前编译文件。
[0194] 图3为本公开实施例提供的基于云计算的分布式软件实例测试装置300的功能模块示意图,本实施例可以根据上述软件开发平台100执行的方法实施例对该基于云计算的
分布式软件实例测试装置300进行功能模块的划分,也即该基于云计算的分布式软件实例
测试装置300所对应的以下各个功能模块可以用于执行上述软件开发平台100执行的各个
方法实施例。其中,该基于云计算的分布式软件实例测试装置300可以包括第一获取模块
310、第二获取模块320、聚类模块330以及测试模块340,下面分别对该基于云计算的分布式
软件实例测试装置300的各个功能模块的功能进行详细阐述。
[0195] 第一获取模块310,用于获取基于不同软件功能分区的当前编译文件获得的分布式应用程序包。其中,第一获取模块310可以用于执行上述的步骤S110,关于第一获取模块
310的详细实现方式可以参照上述针对步骤S110的详细描述即可。
[0196] 第二获取模块320,用于获取所述分布式应用程序包的应用业务实例执行图谱中的多个应用业务执行实例的实例参数信息;每个应用业务执行实例用于表示所述分布式应
用程序包在功能实现过程中需要被执行的一个或者多个业务实例,且所述每个应用业务执
行实例所表示的业务实例的软件测试任务需要执行测试;任一应用业务执行实例的实例参
数信息用于反映所述任一应用业务执行实例和其它应用业务执行实例之间的关联关系。其
中,第二获取模块320可以用于执行上述的步骤S120,关于第二获取模块320的详细实现方
式可以参照上述针对步骤S120的详细描述即可。
[0197] 聚类模块330,用于根据各应用业务执行实例的实例参数信息,将至少两个应用业务执行实例聚类为目标聚类实例,所述目标聚类实例用于指示对被聚类的应用业务执行实
例所表示的业务实例的软件测试任务进行测试。其中,聚类模块330可以用于执行上述的步
骤S130,关于聚类模块330的详细实现方式可以参照上述针对步骤S130的详细描述即可。
[0198] 测试模块340,用于采用所述目标聚类实例更新所述应用业务实例执行图谱,并将更新后的应用业务实例执行图谱发送至软件实例测试程序,所述更新后的应用业务实例执
行图谱用于指示所述软件实例测试程序按照所述目标聚类实例的指示,在所述分布式应用
程序包的功能实现过程中对所述被聚类的应用业务执行实例所表示的业务实例的软件测
试任务进行测试,并输出测试结果。其中,测试模块340可以用于执行上述的步骤S140,关于
测试模块340的详细实现方式可以参照上述针对步骤S140的详细描述即可。
[0199] 需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以
全部以软件通过处理元件调用的形式实现。也可以全部以硬件的形式实现。还可以部分模
块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,第一获取模块
310可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可
以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执
行以上第一获取模块310的功能。其它模块的实现与之类似。此外这些模块全部或部分可以
集成在一起,也可以独立实现。这里所描述的处理元件可以是一种集成电路,具有信号的处
理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件
的集成逻辑电路或者软件形式的指令完成。
[0200] 图4示出了本公开实施例提供的用于实现上述的基于云计算的分布式软件实例测试方法的软件开发平台100的硬件结构示意图,如图4所示,软件开发平台100可包括处理器
110、机器可读存储介质120、总线130以及收发器140。
[0201] 在具体实现过程中,至少一个处理器110执行机器可读存储介质120存储的计算机执行指令(例如图3中所示的基于云计算的分布式软件实例测试装置300包括的第一获取模
块310、第二获取模块320、聚类模块330以及测试模块340),使得处理器110可以执行如上方
法实施例的基于云计算的分布式软件实例测试方法,其中,处理器110、机器可读存储介质
120以及收发器140通过总线130连接,处理器110可以用于控制收发器140的收发动作,从而
可以与前述的软件开发编辑终端200进行数据收发。
[0202] 处理器110的具体实现过程可参见上述软件开发平台100执行的各个方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
[0203] 在上述的图4所示的实施例中,应理解,处理器可以是中央处理器(英文:Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(英文:Digital 
Signal Processor,DSP)、专用集成电路(英文:Application SpecificIntegrated 
Circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器
等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中
的硬件及软件模块组合执行完成。
[0204] 机器可读存储介质120可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
[0205] 总线130可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系
结构(Extended Industry Standard Architecture,EISA)总线等。总线130可以分为地址
总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或
一种类型的总线。
[0206] 此外,本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上基于云计算的分布式软件实
例测试方法。
[0207] 上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来
执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺
序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可
以的或者可能是有利的。
[0208] 上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能
会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所
以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
[0209] 同时,本说明书使用了特定推送要素来描述本说明书的实施例。如“一个实施例”、“一实施例”和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或
特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或
“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或
多个实施例中的某些特征、结构或特点可以进行适当的组合。
[0210] 此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或
对它们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以
完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件
或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的
各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可
读程序编码。
[0211] 计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或
合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介
质,该介质可以通过连接至一个指令执行系统、系统或设备以实现通讯、传播或传输供使用
的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线
电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
[0212] 本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、
VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、
COBOL2002、PHP、ABAP,被动编程语言如Python、Ruby和Groovy,或其它编程语言等。该程序
编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在
用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种
情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网
(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软
件即服务(SaaS)。
[0213] 此外,除非权利要求中明确说明,本说明书处理元素和序列的顺序、数字字母的使用、或其它名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各
种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的
目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明
书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件
设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上
安装所描述的系统。
[0214] 同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附
图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要
求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
[0215] 最后,应当理解的是,本说明书中实施例仅用以说明本说明书实施例的原则。其它的变形也可能属于本说明书范围。因此,作为示例而非限制,本说明书实施例的替代配置可
视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描
述的实施例。