CN114721945A - 基于图数据库的分配方法及其装置、电子设备及存储介质 - Google Patents
基于图数据库的分配方法及其装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114721945A CN114721945A CN202210327305.8A CN202210327305A CN114721945A CN 114721945 A CN114721945 A CN 114721945A CN 202210327305 A CN202210327305 A CN 202210327305A CN 114721945 A CN114721945 A CN 114721945A
- Authority
- CN
- China
- Prior art keywords
- test
- code
- terminal
- calling
- graph database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于图数据库的分配方法及其装置、电子设备及存储介质,涉及金融科技领域,其中,该分配方法包括:基于预设图数据库,获取所有与目标修改策略相关的程序清单,执行与测试代码对应的测试案例,得到测试结果,在代码覆盖率低于预设比值阈值的情况下,查询代码覆盖率所指示的测试代码所对应的终端标识,并生成目标影响报告,将目标影响报告发送至终端标识所指示的终端,其中,终端基于源码文件修改测试代码。本发明解决了相关技术中无法自动分析与修改策略相关的测试代码的责任终端,导致无法及时修改相关测试代码以确保相关代码正确运行的技术问题。
Description
技术领域
本发明涉及金融科技领域,具体而言,涉及一种基于图数据库的分配方法及其装置、电子设备及存储介质。
背景技术
相关技术中,对于数据链路的调配方式,可以利用调用链拉取关联程序清单,然而,仅利用调用链拉取关联程序清单会使得后续的管理程序排查及对应责任用户(对应了责任终端)分配仍需人工处理,需要耗费宝贵的人力资源,增加了成本。或者,通过增加自动化测试代码来确保代码正确运行,但是自动化测试代码需要编写大量代码,并不存在写到某一个量之后就可以停止编写,而且写的越多,后续收益越低。
即现有技术中,无法自动分析与修改策略相关的测试代码的责任终端,导致无法及时修改相关测试代码以确保相关代码正确运行。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种基于图数据库的分配方法及其装置、电子设备及存储介质,以至少解决相关技术中无法自动分析与修改策略相关的测试代码的责任终端,导致无法及时修改相关测试代码以确保相关代码正确运行的技术问题。
根据本发明实施例的一个方面,提供了一种基于图数据库的分配方法,包括:基于预设图数据库,获取所有与目标修改策略相关的程序清单,其中,所述程序清单携带有测试代码;执行与所述测试代码对应的测试案例,得到测试结果,其中,所述测试结果中至少包括:代码覆盖率;在所述代码覆盖率低于预设比值阈值的情况下,查询所述代码覆盖率所指示的测试代码所对应的终端标识,并生成目标影响报告,其中,所述目标影响报告中携带有与所述测试代码相关的源码文件;将所述目标影响报告发送至所述终端标识所指示的终端,其中,所述终端基于所述源码文件修改所述测试代码。
可选地,在基于预设图数据库,获取所有与目标修改策略相关的程序清单之前,还包括:基于预设调用链生成工具,生成调用链信息,其中,所述调用链信息至少包括:调用策略、调用策略之间的调用关系;基于所述调用链信息,构建图数据库;基于代码提交记录,确定与所述调用策略对应的责任终端,生成映射关系,其中,所述映射关系为每个调用策略对应一个责任终端;将所述映射关系存储至所述图数据库。
可选地,基于所述调用链信息,构建图数据库的步骤,包括:将所述调用策略表征为数据点;将所述调用策略之间的调用关系表征为所述数据点之间的关联关系;基于所述数据点以及所述数据点之间的关联关系,构建所述图数据库,其中,所述图数据库存储有每个所述调用策略对应的测试代码。
可选地,确定与所述调用策略对应的责任终端的步骤,包括:获取在预设天数内的所述调用策略所在类的所述代码提交记录,其中,所述代码提交记录至少包括:提交终端、提交时间、提交代码行数;基于所述提交代码行数中的被修改行数,计算行数权重;基于所述行数权重、所述提交时间以及所述预设天数,计算提交终端权重;选择所述提交终端权重中最大权重值所指示的提交终端作为所述责任终端。
可选地,在确定与所述调用策略对应的责任终端之后,还包括:基于所述代码提交记录,将所述调用策略中的每行代码上标记出最后提交终端标识,并保存至所述图数据库中与所述调用策略对应的数据点。
可选地,获取所有与目标修改策略相关的程序清单的步骤,包括:从所述预设图数据库中获取直接调用或间接调用所述目标修改策略的程序清单;从所述预设图数据库中获取所述目标修改策略直接调用或间接调用的所有程序应用的程序清单。
可选地,在执行与所述测试代码对应的测试案例,得到测试结果之后,还包括:在所述测试结果指示所述测试案例执行失败的情况下,确定与所述测试案例对应的测试代码的目标责任终端;将所述测试结果发送至所述目标责任终端。
根据本发明实施例的另一方面,还提供了一种基于图数据库的分配装置,包括:获取单元,用于基于预设图数据库,获取所有与目标修改策略相关的程序清单,其中,所述程序清单携带有测试代码;执行单元,用于执行与所述测试代码对应的测试案例,得到测试结果,其中,所述测试结果中至少包括:代码覆盖率;生成单元,用于在所述代码覆盖率低于预设比值阈值的情况下,查询所述代码覆盖率所指示的测试代码所对应的终端标识,并生成目标影响报告,其中,所述目标影响报告中携带有与所述测试代码相关的源码文件;发送单元,用于将所述目标影响报告发送至所述终端标识所指示的终端,其中,所述终端基于所述源码文件修改所述测试代码。
可选地,所述分配装置还包括:第一生成模块,用于在基于预设图数据库,获取所有与目标修改策略相关的程序清单之前,基于预设调用链生成工具,生成调用链信息,其中,所述调用链信息至少包括:调用策略、调用策略之间的调用关系;第一构建模块,用于基于所述调用链信息,构建图数据库;第一确定模块,用于基于代码提交记录,确定与所述调用策略对应的责任终端,生成映射关系,其中,所述映射关系为每个调用策略对应一个责任终端;第一存储模块,用于将所述映射关系存储至所述图数据库。
可选地,所述第一构建模块包括:第一表征子模块,用于将所述调用策略表征为数据点;第二表征子模块,用于将所述调用策略之间的调用关系表征为所述数据点之间的关联关系;第一构建子模块,用于基于所述数据点以及所述数据点之间的关联关系,构建所述图数据库,其中,所述图数据库存储有每个所述调用策略对应的测试代码。
可选地,所述第一确定模块包括:第一获取子模块,用于获取在预设天数内的所述调用策略所在类的所述代码提交记录,其中,所述代码提交记录至少包括:提交终端、提交时间、提交代码行数;第一计算子模块,用于基于所述提交代码行数中的被修改行数,计算行数权重;第二计算子模块,用于基于所述行数权重、所述提交时间以及所述预设天数,计算提交终端权重;第一选择子模块,用于选择所述提交终端权重中最大权重值所指示的提交终端作为所述责任终端。
可选地,所述分配装置还包括:第一标记模块,用于在确定与所述调用策略对应的责任终端之后,基于所述代码提交记录,将所述调用策略中的每行代码上标记出最后提交终端标识,并保存至所述图数据库中与所述调用策略对应的数据点。
可选地,所述获取单元包括:第一获取模块,用于从所述预设图数据库中获取直接调用或间接调用所述目标修改策略的程序清单;第二获取模块,用于从所述预设图数据库中获取所述目标修改策略直接调用或间接调用的所有程序应用的程序清单。
可选地,所述分配装置还包括:第二确定模块,用于在执行与所述测试代码对应的测试案例,得到测试结果之后,在所述测试结果指示所述测试案例执行失败的情况下,确定与所述测试案例对应的测试代码的目标责任终端;第一发送模块,用于将所述测试结果发送至所述目标责任终端。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述所述的基于图数据库的分配方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述所述的基于图数据库的分配方法。
在本公开中,基于预设图数据库,获取所有与目标修改策略相关的程序清单,执行与测试代码对应的测试案例,得到测试结果,在代码覆盖率低于预设比值阈值的情况下,查询代码覆盖率所指示的测试代码所对应的终端标识,并生成目标影响报告,将目标影响报告发送至终端标识所指示的终端,其中,终端基于源码文件修改测试代码。在本申请中,可以通过预设图数据库,获取与目标修改策略相关的程序清单,并执行程序清单中携带的测试代码,若测试结果的代码覆盖率低于预设比值阈值时,找到相关测试代码的终端,并将生成的影响报告发送至该终端,能够自动分析与修改策略相关的测试代码的责任终端,使得相关责任终端能够及时修改相应的测试代码,完成代码维护过程中的任务分配工作自动化功能,进而解决了相关技术中无法自动分析与修改策略相关的测试代码的责任终端,导致无法及时修改相关测试代码以确保相关代码正确运行的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的基于图数据库的分配方法的流程图;
图2是根据本发明实施例的一种可选的基于图数据库的分配装置的示意图;
图3是根据本发明实施例的一种用于基于图数据库的分配方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于本领域技术人员理解本发明,下面对本发明各实施例中涉及的部分术语或名词做出解释:
调用链:是指代码策略/代码方法调用关系的图形结构。
图数据库:是以点、边为基础存储单元,以高效存储、查询图数据为设计原理的数据管理系统,图数据库属于非关系型数据库。
需要说明的是,本公开中的基于图数据库的分配方法及其装置可用于金融科技领域在基于图数据库进行任务分配的情况下,也可用于除金融科技领域之外的任意领域在基于图数据库进行任务分配的情况下,本公开中对基于图数据库的分配方法及其装置的应用领域不做限定。
需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本发明下述各实施例可应用于各种基于图数据库进行任务分配的系统/应用/设备中。本发明可以利用调用链生成工具(例如,jdk(Java Development Kit,Java语言的软件开发工具包)自带的API(Application Programming Interface,应用程序编程接口)等)和图数据库(例如,Neo4j等),周期性分析和存储调用链信息,并根据代码提交记录自动分析相关功能代码责任用户和相关功能代码对应的测试代码的责任用户,并且确保责任用户尽可能为当前最了解该功能全局的人,之后,可以利用系统进行自动通知和工作分配,从而实现代码维护过程中的任务分配工作自动化功能。
下面结合各个实施例来详细说明本发明。
实施例一
根据本发明实施例,提供了一种基于图数据库的分配方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的基于图数据库的分配方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,基于预设图数据库,获取所有与目标修改策略相关的程序清单,其中,程序清单携带有测试代码。
步骤S102,执行与测试代码对应的测试案例,得到测试结果,其中,测试结果中至少包括:代码覆盖率。
步骤S103,在代码覆盖率低于预设比值阈值的情况下,查询代码覆盖率所指示的测试代码所对应的终端标识,并生成目标影响报告,其中,目标影响报告中携带有与测试代码相关的源码文件。
步骤S104,将目标影响报告发送至终端标识所指示的终端,其中,终端基于源码文件修改测试代码。
通过上述步骤,可以基于预设图数据库,获取所有与目标修改策略相关的程序清单,执行与测试代码对应的测试案例,得到测试结果,在代码覆盖率低于预设比值阈值的情况下,查询代码覆盖率所指示的测试代码所对应的终端标识,并生成目标影响报告,将目标影响报告发送至终端标识所指示的终端,其中,终端基于源码文件修改测试代码。在本发明实施例中,可以通过预设图数据库,获取与目标修改策略相关的程序清单,并执行程序清单中携带的测试代码,若测试结果的代码覆盖率低于预设比值阈值时,找到相关测试代码的终端,并将生成的影响报告发送至该终端,能够自动分析与修改策略相关的测试代码的责任终端,使得相关责任终端能够及时修改相应的测试代码,完成代码维护过程中的任务分配工作自动化功能,进而解决了相关技术中无法自动分析与修改策略相关的测试代码的责任终端,导致无法及时修改相关测试代码以确保相关代码正确运行的技术问题。
下面结合上述各步骤对本发明实施例进行详细说明。
在本发明实施例中,一种可选的,在基于预设图数据库,获取所有与目标修改策略相关的程序清单之前,还包括:基于预设调用链生成工具,生成调用链信息,其中,调用链信息至少包括:调用策略、调用策略之间的调用关系;基于调用链信息,构建图数据库;基于代码提交记录,确定与调用策略对应的责任终端,生成映射关系,其中,映射关系为每个调用策略对应一个责任终端;将映射关系存储至图数据库。
在本发明实施例中,可以利用预设调用链生成工具(例如,jdk自带的api等)生成调用链信息,该调用链信息包括:调用策略(即方法)、调用策略之间的调用关系(例如,A类的a方法调用了B类的b方法),之后,可以基于调用链信息,构建图数据库,然后,根据代码的提交代码记录(即代码提交记录)确定代码的责任用户(即确定与调用策略对应的责任终端,本实施例中以方法为最小粒度,每个方法确定一个责任用户),从而得到映射关系,该映射关系为每个调用策略对应一个责任终端,并将该映射关系存储至图数据库中。
可选的,基于调用链信息,构建图数据库的步骤,包括:将调用策略表征为数据点;将调用策略之间的调用关系表征为数据点之间的关联关系;基于数据点以及数据点之间的关联关系,构建图数据库,其中,图数据库存储有每个调用策略对应的测试代码。
在本发明实施例中,可以将生成的调用链信息存储至图数据库,其中的每一个方法就是图数据库中的一个数据点(即将调用策略表征为数据点,并且对应的方法的完整代码也需要存储在内),数据点之间的关联关系就是方法的调用关系(即将调用策略之间的调用关系表征为数据点之间的关联关系),之后,可以基于数据点以及数据点之间的关联关系,构建图数据库,并且,该图数据库存储有每个调用策略对应的测试代码。
可选的,确定与调用策略对应的责任终端的步骤,包括:获取在预设天数内的调用策略所在类的代码提交记录,其中,代码提交记录至少包括:提交终端、提交时间、提交代码行数;基于提交代码行数中的被修改行数,计算行数权重;基于行数权重、提交时间以及预设天数,计算提交终端权重;选择提交终端权重中最大权重值所指示的提交终端作为责任终端。
在本发明实施例中,由于存在一个方法由多个用户终端轮流提交的可能性,因此,责任用户(即责任终端)的判断方法如下:
(1)获取该方法所在类的n天内的所有提交记录(获取在预设天数内的调用策略所在类的代码提交记录),本实施例中,n为预先配置的参数,可根据实际情况进行配置(本实施例中,代码太久没有修改要么是没人敢改、要么是相当稳定不需要改、要么是基本没人用不需要改,极高概率不需要知道对应责任用户是谁,而且隔着太久,原来的提交记录作为责任用户判断依据准确度也会变得很低,因此,可以使n=2*365),该代码提交记录包括:提交终端(即提交用户)、提交时间(可以设置为距离当前多少天,最小设为0,即当天提交)、提交代码行数等,如果查找结果没有提交用户,则提交用户信息为对应用的负责用户;如果有,进行以下计算。
(2)计算每一个提交用户的权重,公式如下:
其中,Px是当前计算的提交用户的权重结果,li是当前提交用户第i个提交记录修改的对应方法内的行数权重,di是当前提交用户第i个提交记录修改的提交时间距离目前的天数(最小为0,最大为n),n是查找提交记录的天数范围(即设置的预设天数n)
行数权重li的计算公式为:
其中,xm为被修改行的修改系数(本实施例中可以以等语法解析角度计算行数,不以回车计算行数),当该行为新增时,xm等于这一行新增后的所有方法、参数、运算符的数量之和;当该行为删除时,xm等于这一行删除前的所有方法、参数、运算符的数量之和;当该行为修改时,vc为这行代码变更过(新增、删除、改名)的参数个数,mc为这行代码变更过(新增、删除、改名)的方法和运算符个数,vk为修改后的参数个数,mk为修改后的方法和运算符个数,vl为修改前的参数个数,ml为修改前的方法和运算符个数。
(3)查找出所有提交用户中权重最高的用户作为主责任用户(即选择提交终端权重中最大权重值所指示的提交终端作为责任终端)。
另一种可选的,权重超过主责任用户的m%(该m%为预先设定的参数,本实施例可以设为50%、60%等)的为次责任用户,并按权重高低进行排序后,存储至图数据库中对应方法的节点内。
可选的,在确定与调用策略对应的责任终端之后,还包括:基于代码提交记录,将调用策略中的每行代码上标记出最后提交终端标识,并保存至图数据库中与调用策略对应的数据点。
在本发明实施例中,根据代码提交记录,将对应方法里每一行标记上最后改动人(即将调用策略中的每行代码上标记出最后提交终端标识),本实施例中,如果没有相关提交记录的可以空着,之后将该信息存储到图数据库的对应方法的节点内(即保存至图数据库中与调用策略对应的数据点)。
步骤S101,基于预设图数据库,获取所有与目标修改策略相关的程序清单,其中,程序清单携带有测试代码。
可选的,获取所有与目标修改策略相关的程序清单的步骤,包括:从预设图数据库中获取直接调用或间接调用目标修改策略的程序清单;从预设图数据库中获取目标修改策略直接调用或间接调用的所有程序应用的程序清单。
在本发明实施例中,当进行程序改动后,可以拉取上下游相关程序清单(即基于预设图数据库,获取所有与目标修改策略相关的程序清单,该程序清单携带有测试代码),具体为:从图数据库中读取所有直接或间接调用被修改方法的清单以及被修改方法直接或间接调用的清单(即从预设图数据库中获取直接调用或间接调用目标修改策略的程序清单,并且从预设图数据库中获取目标修改策略直接调用或间接调用的所有程序应用的程序清单),以及对应的自动化测试代码(例如,两个清单里在测试代码目录下的程序的清单,java/src/test等)。
步骤S102,执行与测试代码对应的测试案例,得到测试结果,其中,测试结果中至少包括:代码覆盖率。
在本发明实施例中,可以执行上下游相关程序清单内的功能程序对应的自动化测试案例(即执行与测试代码对应的测试案例),分析自动化测试案例的代码覆盖率,得到测试结果,该测试结果中包括:代码覆盖率等。
可选的,在执行与测试代码对应的测试案例,得到测试结果之后,还包括:在测试结果指示测试案例执行失败的情况下,确定与测试案例对应的测试代码的目标责任终端;将测试结果发送至目标责任终端。
在本发明实施例中,在测试结果指示测试案例执行失败的情况下,即如果其中有案例执行失败,则确定与测试案例对应的测试代码的目标责任终端(即主/次责任用户),并通知对应测试案例方法的主/次责任用户(即测试案例方法的主/次责任用户即测试人员)、被修改代码的提交用户、对应应用总责任用户等。
步骤S103,在代码覆盖率低于预设比值阈值的情况下,查询代码覆盖率所指示的测试代码所对应的终端标识,并生成目标影响报告,其中,目标影响报告中携带有与测试代码相关的源码文件。
在本发明实施例中,无论是否有案例执行失败,都需要根据测试案例执行的测试覆盖率进行分析(本实施例中,可以利用测试覆盖率计算工具进行统计,如jacoco等),并且,在代码覆盖率低于预设比值阈值(为预先设定的参数,可以根据实际情况进行设置,本实施例中可将高敏应用设为80,低敏应用设为50)的情况下,可以列出对应的主次责任用户(即查询代码覆盖率所指示的测试代码所对应的终端标识),并附上对应的源码文件(文件内每一行标注上对应的最后修改人),生成目标影响报告(其中,该报告的信息根据设置,可补上其他信息,例如,可以包括对应功能/代码行的位置标记测试人员、对应功能的测试覆盖率等),以低优先级发送给对应编码人员和开发经理。
步骤S104,将目标影响报告发送至终端标识所指示的终端,其中,终端基于源码文件修改测试代码。
在本发明实施例中,可以将目标影响报告发送至终端标识所指示的终端,该终端可以基于源码文件修改测试代码,还可以将该目标影响报告发送给相关人员(具体通知人员可设置,例如,测试案例不通过的时候加上测试经理,或者只通知主责任用户不通知次责任用户等)。
本实施例中,高优先级和低优先级的通知方式根据设置决定(例如,低优先级可以通过邮件通知,高优先级可以通过内部及时OA软件通知等)。
本发明实施例中,可以将代码维护过程中的任务分配工作自动化,并生产影响范围清单,不仅保证了将任务分配给比较熟悉的人进行维护(如果目标人员工作量饱和没空处理,则可以人工介入调整安排),还可以同步生成影响功能清单,便于评估改动风险,并且拉取对应测试功能清单,避免了因代码改造而对其他功能产生影响导致bug(因为改动影响到别的功能导致别的功能出bug的情况很多,所以尽可能避免该情况发生),同时,通过基于修改量和修改时间的公式进行责任用户推算,能较为准确的推断目前对这个功能了解最多的人作为责任用户进行咨询和排查,有利于及时解决问题。
实施例二
本实施例中提供的一种基于图数据库的分配装置包含了多个实施单元,每个实施单元对应于上述实施例一中的各个实施步骤。
图2是根据本发明实施例的一种可选的基于图数据库的分配装置的示意图,如图2所示,该分配装置可以包括:获取单元20,执行单元21,生成单元22,发送单元23,其中,
获取单元20,用于基于预设图数据库,获取所有与目标修改策略相关的程序清单,其中,程序清单携带有测试代码;
执行单元21,用于执行与测试代码对应的测试案例,得到测试结果,其中,测试结果中至少包括:代码覆盖率;
生成单元22,用于在代码覆盖率低于预设比值阈值的情况下,查询代码覆盖率所指示的测试代码所对应的终端标识,并生成目标影响报告,其中,目标影响报告中携带有与测试代码相关的源码文件;
发送单元23,用于将目标影响报告发送至终端标识所指示的终端,其中,终端基于源码文件修改测试代码。
上述分配装置,可以通过获取单元20基于预设图数据库,获取所有与目标修改策略相关的程序清单,通过执行单元21执行与测试代码对应的测试案例,得到测试结果,通过生成单元22在代码覆盖率低于预设比值阈值的情况下,查询代码覆盖率所指示的测试代码所对应的终端标识,并生成目标影响报告,通过发送单元23将目标影响报告发送至终端标识所指示的终端,其中,终端基于源码文件修改测试代码。在本发明实施例中,可以通过预设图数据库,获取与目标修改策略相关的程序清单,并执行程序清单中携带的测试代码,若测试结果的代码覆盖率低于预设比值阈值时,找到相关测试代码的终端,并将生成的影响报告发送至该终端,能够自动分析与修改策略相关的测试代码的责任终端,使得相关责任终端能够及时修改相应的测试代码,完成代码维护过程中的任务分配工作自动化功能,进而解决了相关技术中无法自动分析与修改策略相关的测试代码的责任终端,导致无法及时修改相关测试代码以确保相关代码正确运行的技术问题。
可选的,分配装置还包括:第一生成模块,用于在基于预设图数据库,获取所有与目标修改策略相关的程序清单之前,基于预设调用链生成工具,生成调用链信息,其中,调用链信息至少包括:调用策略、调用策略之间的调用关系;第一构建模块,用于基于调用链信息,构建图数据库;第一确定模块,用于基于代码提交记录,确定与调用策略对应的责任终端,生成映射关系,其中,映射关系为每个调用策略对应一个责任终端;第一存储模块,用于将映射关系存储至图数据库。
可选的,第一构建模块包括:第一表征子模块,用于将调用策略表征为数据点;第二表征子模块,用于将调用策略之间的调用关系表征为数据点之间的关联关系;第一构建子模块,用于基于数据点以及数据点之间的关联关系,构建图数据库,其中,图数据库存储有每个调用策略对应的测试代码。
可选的,第一确定模块包括:第一获取子模块,用于获取在预设天数内的调用策略所在类的代码提交记录,其中,代码提交记录至少包括:提交终端、提交时间、提交代码行数;第一计算子模块,用于基于提交代码行数中的被修改行数,计算行数权重;第二计算子模块,用于基于行数权重、提交时间以及预设天数,计算提交终端权重;第一选择子模块,用于选择提交终端权重中最大权重值所指示的提交终端作为责任终端。
可选的,分配装置还包括:第一标记模块,用于在确定与调用策略对应的责任终端之后,基于代码提交记录,将调用策略中的每行代码上标记出最后提交终端标识,并保存至图数据库中与调用策略对应的数据点。
可选的,获取单元包括:第一获取模块,用于从预设图数据库中获取直接调用或间接调用目标修改策略的程序清单;第二获取模块,用于从预设图数据库中获取目标修改策略直接调用或间接调用的所有程序应用的程序清单。
可选的,分配装置还包括:第二确定模块,用于在执行与测试代码对应的测试案例,得到测试结果之后,在测试结果指示测试案例执行失败的情况下,确定与测试案例对应的测试代码的目标责任终端;第一发送模块,用于将测试结果发送至目标责任终端。
上述的分配装置还可以包括处理器和存储器,上述获取单元20,执行单元21,生成单元22,发送单元23等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来将目标影响报告发送至终端标识所指示的终端。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:基于预设图数据库,获取所有与目标修改策略相关的程序清单,执行与测试代码对应的测试案例,得到测试结果,在代码覆盖率低于预设比值阈值的情况下,查询代码覆盖率所指示的测试代码所对应的终端标识,并生成目标影响报告,将目标影响报告发送至终端标识所指示的终端,其中,终端基于源码文件修改测试代码。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述的基于图数据库的分配方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的基于图数据库的分配方法。
图3是根据本发明实施例的一种用于基于图数据库的分配方法的电子设备(或移动设备)的硬件结构框图。如图3所示,电子设备可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图3所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于图数据库的分配方法,其特征在于,包括:
基于预设图数据库,获取所有与目标修改策略相关的程序清单,其中,所述程序清单携带有测试代码;
执行与所述测试代码对应的测试案例,得到测试结果,其中,所述测试结果中至少包括:代码覆盖率;
在所述代码覆盖率低于预设比值阈值的情况下,查询所述代码覆盖率所指示的测试代码所对应的终端标识,并生成目标影响报告,其中,所述目标影响报告中携带有与所述测试代码相关的源码文件;
将所述目标影响报告发送至所述终端标识所指示的终端,其中,所述终端基于所述源码文件修改所述测试代码。
2.根据权利要求1所述的分配方法,其特征在于,在基于预设图数据库,获取所有与目标修改策略相关的程序清单之前,还包括:
基于预设调用链生成工具,生成调用链信息,其中,所述调用链信息至少包括:调用策略、调用策略之间的调用关系;
基于所述调用链信息,构建图数据库;
基于代码提交记录,确定与所述调用策略对应的责任终端,生成映射关系,其中,所述映射关系为每个调用策略对应一个责任终端;
将所述映射关系存储至所述图数据库。
3.根据权利要求2所述的分配方法,其特征在于,基于所述调用链信息,构建图数据库的步骤,包括:
将所述调用策略表征为数据点;
将所述调用策略之间的调用关系表征为所述数据点之间的关联关系;
基于所述数据点以及所述数据点之间的关联关系,构建所述图数据库,其中,所述图数据库存储有每个所述调用策略对应的测试代码。
4.根据权利要3所述的分配方法,其特征在于,确定与所述调用策略对应的责任终端的步骤,包括:
获取在预设天数内的所述调用策略所在类的所述代码提交记录,其中,所述代码提交记录至少包括:提交终端、提交时间、提交代码行数;
基于所述提交代码行数中的被修改行数,计算行数权重;
基于所述行数权重、所述提交时间以及所述预设天数,计算提交终端权重;
选择所述提交终端权重中最大权重值所指示的提交终端作为所述责任终端。
5.根据权利要求4所述的分配方法,其特征在于,在确定与所述调用策略对应的责任终端之后,还包括:
基于所述代码提交记录,将所述调用策略中的每行代码上标记出最后提交终端标识,并保存至所述图数据库中与所述调用策略对应的数据点。
6.根据权利要求1所述的分配方法,其特征在于,获取所有与目标修改策略相关的程序清单的步骤,包括:
从所述预设图数据库中获取直接调用或间接调用所述目标修改策略的程序清单;
从所述预设图数据库中获取所述目标修改策略直接调用或间接调用的所有程序应用的程序清单。
7.根据权利要求1所述的分配方法,其特征在于,在执行与所述测试代码对应的测试案例,得到测试结果之后,还包括:
在所述测试结果指示所述测试案例执行失败的情况下,确定与所述测试案例对应的测试代码的目标责任终端;
将所述测试结果发送至所述目标责任终端。
8.一种基于图数据库的分配装置,其特征在于,包括:
获取单元,用于基于预设图数据库,获取所有与目标修改策略相关的程序清单,其中,所述程序清单携带有测试代码;
执行单元,用于执行与所述测试代码对应的测试案例,得到测试结果,其中,所述测试结果中至少包括:代码覆盖率;
生成单元,用于在所述代码覆盖率低于预设比值阈值的情况下,查询所述代码覆盖率所指示的测试代码所对应的终端标识,并生成目标影响报告,其中,所述目标影响报告中携带有与所述测试代码相关的源码文件;
发送单元,用于将所述目标影响报告发送至所述终端标识所指示的终端,其中,所述终端基于所述源码文件修改所述测试代码。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的基于图数据库的分配方法。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的基于图数据库的分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210327305.8A CN114721945A (zh) | 2022-03-30 | 2022-03-30 | 基于图数据库的分配方法及其装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210327305.8A CN114721945A (zh) | 2022-03-30 | 2022-03-30 | 基于图数据库的分配方法及其装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114721945A true CN114721945A (zh) | 2022-07-08 |
Family
ID=82240774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210327305.8A Pending CN114721945A (zh) | 2022-03-30 | 2022-03-30 | 基于图数据库的分配方法及其装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114721945A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112396A (zh) * | 2023-07-11 | 2023-11-24 | 海光信息技术(苏州)有限公司 | 覆盖率收集方法、组件、系统及相关设备 |
-
2022
- 2022-03-30 CN CN202210327305.8A patent/CN114721945A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112396A (zh) * | 2023-07-11 | 2023-11-24 | 海光信息技术(苏州)有限公司 | 覆盖率收集方法、组件、系统及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10824758B2 (en) | System and method for managing enterprise data | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
US20160267420A1 (en) | Process model catalog | |
CN108492005B (zh) | 项目数据处理方法、装置、计算机设备和存储介质 | |
US20080222098A1 (en) | Methods, systems, and computer program products for providing consolidated order information | |
JP5614843B2 (ja) | ソフトウェア設計・運用統合管理システム | |
CN110956269A (zh) | 数据模型的生成方法、装置、设备以及计算机存储介质 | |
CN110322143B (zh) | 模型实体化管理方法、装置、设备及计算机存储介质 | |
CN112288400A (zh) | 多系统数据交互方法、装置、计算机设备及存储介质 | |
CN108536356A (zh) | 坐席信息处理方法、装置及计算机可读存储介质 | |
CN110796342A (zh) | 一种基于典型维护项目的自动化管理方法和装置 | |
CN114721945A (zh) | 基于图数据库的分配方法及其装置、电子设备及存储介质 | |
CN112596723B (zh) | 数据库脚本生成方法、装置、设备及介质 | |
CN112732242A (zh) | 宽表加工脚本的生成方法及装置 | |
CN116304211A (zh) | 基于图计算的信息拦截方法、装置、设备及可读存储介质 | |
US20170154276A1 (en) | Event prediction system and method | |
CN114004542A (zh) | 一种企业任务管理方法、系统、计算机设备及存储介质 | |
CN110008098B (zh) | 评估业务流程中的节点的运行状况的方法和装置 | |
CN111429125A (zh) | 账户管理方法、装置、存储介质及电子设备 | |
CN112966974A (zh) | 一种项目配置方法、装置、设备及介质 | |
CN112965793A (zh) | 一种面向标识解析数据的数据仓库任务调度方法和系统 | |
CN112199371B (zh) | 一种数据迁移方法、装置、计算机设备和存储介质 | |
US20240311347A1 (en) | Intelligent cloud portal integration | |
US9535414B2 (en) | System and method for distributing and exchanging elements for planning and/or for operating automation operating equipment | |
CN108008966B (zh) | 一种资源更新方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |