掌桥专利:专业的专利平台
掌桥专利
首页

程序测试方法、电子设备、存储介质

文献发布时间:2024-04-18 19:59:31


程序测试方法、电子设备、存储介质

技术领域

本申请涉及金融领域、测试技术领域,尤其是涉及一种程序测试方法、电子设备、存储介质。

背景技术

在大数据软件项目的整体研发中,一个大的项目会拆分成多个类型的子任务程序,例如hive、Sqoop、Spark等类型的任务。在此基础上,大批量数据通过这些子任务程序的清洗,处理,加工,分类,压缩等动作,产生出符合业务需求的数据。由于大数据软件项目的多个子任务程序之间存在亲缘关系,因此在大数据软件项目的迭代和维护中,对任一子任务程序的维护和修改时都需要考虑其关联影响,是否会出现下游任务数据结算异常或者无法对接上游任务数据等问题。需要指出,金融行业对于上下游数据的一致性要求较高,在金融领域中上游任务数据与下游任务数据的关联尤为紧密,若针对子任务程序的维护和修改影响到上游任务数据或者下游任务数据,将会对项目整体带来较大影响。

相关技术中,为了保证对子任务程序的修改不会影响整个项目的运作,每个版本的项目在发布前需要依靠程序员的人力对整个项目的子任务程序进行回归,核对一些关键任务运行是否正常、结果数据是否正确等问题,以确保整个项目上线之后能够正常运作。在这个任务回归过程中,往往会遭遇由于集群资源问题、平台任务调度问题等各种问题导致的任务回归失败,后续任务无法运行,只能等待运维人员发现后检测任务失败原因并重新下发任务,回归才能继续运行,导致回归耗时长,浪费人力。因此,如何高效地对任务程序进行漏洞测试,已经成为业内亟待解决的一个问题。

发明内容

本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种程序测试方法、电子设备、存储介质,能够高效地对任务程序进行漏洞测试

根据本申请的第一方面实施例的程序测试方法,包括:

获取同一金融业务项目对应的多个目标程序与亲缘程序信息,所述亲缘程序信息用于表征多个所述目标程序之间的数据亲缘关系;

基于所述亲缘程序信息,确定多个所述目标程序的测试运行顺序;

按照所述测试运行顺序对多个所述目标程序进行运行测试,得到测试记录信息;

将所述测试记录信息与预设的测试基准信息进行比对,得到程序测试结果。

根据本申请的一些实施例,所述将所述测试记录信息与预设的测试基准信息进行比对,得到程序测试结果,包括:

针对每个所述目标程序,当所述测试记录信息反映所述目标程序在运行测试中异常运行,从所述测试记录信息中提取所述目标程序对应的测试状态信息;

将所述测试状态信息与所述测试基准信息进行比对,得到所述程序测试结果。

根据本申请的一些实施例,所述测试基准信息包括历史日志信息,所述历史日志信息包括多个历史报错记录,所述历史报错记录配置有对应的报错归因信息;

所述将所述测试状态信息与所述测试基准信息进行比对,得到所述程序测试结果,包括:

基于所述测试状态信息,在所述历史日志信息的多个所述历史报错记录中进行搜索;

当在所述历史日志信息中搜索到与所述测试状态信息匹配的所述历史报错记录,根据所述历史报错记录对应的所述报错归因信息生成所述程序测试结果。

根据本申请的一些实施例,所述基于所述测试状态信息,在所述历史日志信息的多个所述历史报错记录中进行搜索之后,所述方法还包括:

当在所述历史日志信息中未搜索到与所述测试状态信息匹配的所述历史报错记录,基于所述测试状态信息生成程序报错记录;

对所述程序报错记录进行报错解析处理,得到与所述程序报错记录对应的所述报错归因信息;

根据与所述程序报错记录对应的所述报错归因信息,确定所述程序测试结果。

根据本申请的一些实施例,所述对所述程序报错记录进行报错解析处理,得到与所述程序报错记录对应的所述报错归因信息,包括:

将所述程序报错记录输入预训练的程序诊断模型进行漏洞筛查处理,得到漏洞筛查结果;

根据所述漏洞筛查结果,确定与所述程序报错记录对应的所述报错归因信息。

根据本申请的一些实施例,所述目标程序按照运行周期执行;所述测试基准信息包括所述目标程序在当前运行周期之前的多个所述运行周期的历史返回参数;

所述将所述测试记录信息与预设的测试基准信息进行比对,得到程序测试结果,包括:

当所述测试记录信息反映所述目标程序在运行测试中正常运行,从所述测试记录信息中提取所述目标程序对应的测试返回参数;

将所述测试返回参数与所述历史返回参数进行比对,得到参数比对信息;

基于所述参数比对信息进行差异解析处理,得到所述程序测试结果。

根据本申请的一些实施例,所述基于所述参数比对信息进行差异解析处理,得到所述程序测试结果,包括:

基于所述参数比对信息,确定所述测试返回参数与所述历史返回参数之间是否存在差异返回参数;

当所述测试返回参数与所述历史返回参数之间存在所述差异返回参数,对所述差异返回参数进行异常参数检测,得到异常检测信息;

基于所述异常检测信息确定所述程序测试结果。

根据本申请的一些实施例,所述对所述差异返回参数进行异常参数检测,得到异常检测信息,包括:

将所述差异返回参数输入预训练的返回参数处理模型进行异常参数筛查,得到参数筛查结果;

根据所述参数筛查结果,确定与所述差异返回参数对应的所述异常检测信息。

第二方面,本申请实施例提供了一种电子设备,包括:存储器、处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如本申请第一方面实施例中任意一项所述的程序测试方法。

第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行实现如本申请第一方面实施例中任意一项所述的程序测试方法。

根据本申请实施例的程序测试方法、电子设备、存储介质,至少具有如下

有益效果:

根据本申请的程序测试方法,需要先获取同一金融业务项目对应的多个目标程序与亲缘程序信息,所述亲缘程序信息用于表征多个所述目标程序之间的数据亲缘关系;再基于所述亲缘程序信息,确定多个所述目标程序的测试运行顺序;进一步,按照所述测试运行顺序对多个所述目标程序进行运行测试,得到测试记录信息;最终将所述测试记录信息与预设的测试基准信息进行比对,得到程序测试结果。由于亲缘程序信息用于表征多个所述目标程序之间的数据亲缘关系,因此基于亲缘程序信息,有助于合理确定多个目标程序的测试运行顺序,如此一来,便能够高效地对任务程序进行漏洞测试。

本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1为本申请实施例提供的程序测试方法的流程示意图;

图2为本申请实施例图1中步骤S104的流程示意图;

图3为本申请实施例图2中步骤S202的流程示意图;

图4为本申请实施例提供的程序测试方法的另一流程示意图;

图5为本申请实施例图4中步骤S402的流程示意图;

图6为本申请实施例图1中步骤S104的另一流程示意图;

图7为本申请实施例图6中步骤S603的流程示意图;

图8为本申请实施例图7中步骤S702的流程示意图;

图9是本申请实施例提供的电子设备的硬件结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。

在本申请的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。

在本申请的描述中,需要理解的是,涉及到方位描述,例如上、下、左、右、前、后等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

本申请的描述中,需要说明的是,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本申请中的具体含义。另外,下文中对于具体步骤的标识并不代表对于步骤顺序与执行逻辑的限定,各个步骤之间的执行顺序与执行逻辑应参照实施例所表述的内容进行理解与推定。

在大数据软件项目的整体研发中,一个大的项目会拆分成多个类型的子任务程序,例如hive、Sqoop、Spark等类型的任务。在此基础上,大批量数据通过这些子任务程序的清洗,处理,加工,分类,压缩等动作,产生出符合业务需求的数据。由于大数据软件项目的多个子任务程序之间存在亲缘关系,因此在大数据软件项目的迭代和维护中,对任一子任务程序的维护和修改时都需要考虑其关联影响,是否会出现下游任务数据结算异常或者无法对接上游任务数据等问题。需要指出,金融行业对于上下游数据的一致性要求较高,在金融领域中上游任务数据与下游任务数据的关联尤为紧密,若针对子任务程序的维护和修改影响到上游任务数据或者下游任务数据,将会对项目整体带来较大影响。

相关技术中,为了保证对子任务程序的修改不会影响整个项目的运作,每个版本的项目在发布前需要依靠程序员的人力对整个项目的子任务程序进行回归,核对一些关键任务运行是否正常、结果数据是否正确等问题,以确保整个项目上线之后能够正常运作。在这个任务回归过程中,往往会遭遇由于集群资源问题、平台任务调度问题等各种问题导致的任务回归失败,后续任务无法运行,只能等待运维人员发现后检测任务失败原因并重新下发任务,回归才能继续运行,导致回归耗时长,浪费人力。另一方面,任务回归过程中可能会出现部分任务由于版本修改或者任务环境问题导致跑数结果不正确,下游任务用这一不正确的数据继续跑数,导致任务处理结果异常,等待运维人员进行验证并修正问题的耗时较长。

本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种程序测试方法、电子设备、存储介质,能够高效地对任务程序进行漏洞测试

下面以附图为依据作出进一步说明。

参照图1,根据本申请的第一方面实施例的程序测试方法,可以包括,但不限于下述步骤S101至步骤S104。

步骤S101,获取同一金融业务项目对应的多个目标程序与亲缘程序信息,亲缘程序信息用于表征多个目标程序之间的数据亲缘关系;

步骤S102,基于亲缘程序信息,确定多个目标程序的测试运行顺序;

步骤S103,按照测试运行顺序对多个目标程序进行运行测试,得到测试记录信息;

步骤S104,将测试记录信息与预设的测试基准信息进行比对,得到程序测试结果。

根据本申请程序测试方法的步骤S101至步骤S104,需要先获取同一金融业务项目对应的多个目标程序与亲缘程序信息,亲缘程序信息用于表征多个目标程序之间的数据亲缘关系;再基于亲缘程序信息,确定多个目标程序的测试运行顺序;进一步,按照测试运行顺序对多个目标程序进行运行测试,得到测试记录信息;最终将测试记录信息与预设的测试基准信息进行比对,得到程序测试结果。由于亲缘程序信息用于表征多个目标程序之间的数据亲缘关系,因此基于亲缘程序信息,有助于合理确定多个目标程序的测试运行顺序,如此一来,便能够高效地对任务程序进行漏洞测试。

需要强调的是,金融行业对于上下游数据的一致性要求较高,在金融领域中上游任务数据与下游任务数据的关联尤为紧密,若针对子任务程序的维护和修改影响到上游任务数据或者下游任务数据,将会对项目整体带来较大影响。因此,本公开实施例主要是针对金融领域用于执行任务的程序进行测试。

一些实施例的步骤S101中,获取同一金融业务项目对应的多个目标程序与亲缘程序信息,亲缘程序信息用于表征多个目标程序之间的数据亲缘关系。需要说明的是,目标程序指的是作为测试目标的程序,获取同一金融业务项目对应的多个目标程序,旨在对同一金融业务项目下相关联的多个用于执行任务的程序进行测试。需要指出,亲缘程序信息用于表征多个目标程序之间的数据亲缘关系。具体而言,数据亲缘关系是指数据在产生、处理、流转到消亡过程中,数据之间形成的一种类似于人类社会亲缘关系的关系。需要指出,亲缘程序信息可以通过针对多个目标程序进行数据亲缘分析得到。

需要说明的是,数据亲缘分析旨在梳理系统、表、视图、存储过程、ETL、程序代码、字段等之间的关系,并采用图数据库进行可视化展示;可以理解为通过可视化展示数据的来源、流转过程、最终归宿及计算逻辑。应理解,数据血缘分析是贯穿数据生命周期的过程,涉及流程、技术、产品等多维度的内容。

一些实施例中,数据亲缘分析的具体实现可以包括三大部分:数据亲缘建设,数据亲缘分析,数据亲缘可视化。

其一,数据亲缘建设。数据亲缘建设是一种管理流程和数据意识,需要延伸到数据产生之前,从数据存储的设计开始。数据亲缘建设的目标是当这些生而有之的数据亲缘关系产生时,能被及时、准确地记录和存储下来。数据亲缘建设是数据亲缘分析的前提条件,准确、完整、及时记录信息才能带来有效的亲缘分析效果。

其二,数据亲缘关系分析。数据亲缘分析针对数据流转过程中产生并记录的各种信息进行采集、处理和分析,对数据之间的亲缘关系进行系统性梳理、关联、并将梳理完成信息进行存储。其目标是实现数据来源的精确追踪、流转过程的准确还原、数据去向的精准定位。

其三,数据亲缘关系可视化。亲缘分析完成后,需要依靠可视化技术将分析结果清晰、直观地呈现出来,以便进行二次分析和具体应用。

一些实施例的步骤S102中,基于亲缘程序信息,确定多个目标程序的测试运行顺序。需要说明的是,在对目标程序进行的迭代和维护中,由于目标程序间存在亲缘关系,对任一目标程序的维护和修改时都需要考虑关联影响,例如,对一个目标程序的维护或者修改,是否会产生下游任务数据结算异常或者无法对接上游任务数据等问题。基于此,正因为亲缘程序信息用于表征多个目标程序之间的数据亲缘关系,因此通过亲缘程序信息可以明确多个目标程序之间的关联,根据多个目标程序之间的前后置依赖关系来依次调起任务运行,确定出多个目标程序的测试运行顺序。应理解,如此确定出的测试运行顺序是较为合理的,有助于提升对多个目标程序的测试效率。

一些实施例的步骤S103中,按照测试运行顺序对多个目标程序进行运行测试,得到测试记录信息。需要说明的是,在确定出测试运行顺序之后,就可以进一步按照测试运行顺序对多个目标程序进行运行测试。由于测试运行顺序是根据多个目标程序之间的前后置依赖关系来依次调起任务运行而确定得到的,因此按照测试运行顺序对多个目标程序进行运行测试,考虑了对任一目标任务进行测试时维护操作和修改操作不会产生异常的关联影响,从而提升了测试效率。

一些实施例的步骤S104中,将测试记录信息与预设的测试基准信息进行比对,得到程序测试结果。需要说明的是,测试记录信息用于记录目标程序的测试数据,预设的测试基准信息用于为目标程序的测试提供比对基准,将测试记录信息与预设的测试基准信息进行比对,即可明确测试记录信息与预设的测试基准信息之间的差异,从而得到程序测试结果。

一些实施例中,测试基准信息具体可以用于对测试记录信息进行定性分析,例如判断出目标程序在测试中是否合格、是否通过测试;另一些实施例中,测试基准信息具体也可以用于对测试记录信息进行定量分析,例如确定出目标程序在测试中的表现情况、运行状态等。应理解,程序测试结果的表现形式多种多样,可以包括,但不限于上述举出的具体实施例。

参照图2,根据本申请的一些实施例,步骤S104可以包括,但不限于下述步骤S201至步骤S202。

步骤S201,针对每个目标程序,当测试记录信息反映目标程序在运行测试中异常运行,从测试记录信息中提取目标程序对应的测试状态信息;

步骤S202,将测试状态信息与测试基准信息进行比对,得到程序测试结果。

需要说明的是,测试记录信息用于记录目标程序的测试数据;具体而言,测试记录信息可以记录有反映目标程序在运行测试中是否异常运行的测试数据,测试记录信息还可以记录有反映目标程序测试状态的测试数据,也即测试状态信息。

一些实施例的步骤S201至步骤S202中,针对每个目标程序,当测试记录信息反映目标程序在运行测试中异常运行,从测试记录信息中提取目标程序对应的测试状态信息。将测试状态信息与测试基准信息进行比对,得到程序测试结果。需要说明的是,当测试记录信息反映目标程序在运行测试中异常运行,意味着目标程序中存在漏洞。应理解,目标程序所存在的漏洞,在执行之后会体现在反映目标程序测试状态的测试状态信息之中。因此,为了对目标程序进行测试,需要从测试记录信息中提取目标程序对应的测试状态信息,再将测试状态信息与测试基准信息进行比对。由于测试基准信息用于为目标程序的测试提供比对基准,因此将测试状态信息与测试基准信息进行比对,即可明确测试状态信息与预设的测试基准信息之间的差异,从而得到程序测试结果。

一些实施例中,当测试记录信息反映目标程序在运行测试中正常运行,意味着目标程序没有发现漏洞。此情形下,则无需从测试记录信息中提取目标程序对应的测试状态信息,与测试基准信息进行比对。

经由步骤S201至步骤S202示出的本申请实施例,针对每个目标程序,当测试记录信息反映目标程序在运行测试中异常运行,从测试记录信息中提取目标程序对应的测试状态信息,将测试状态信息与测试基准信息进行比对,得到程序测试结果。在测试记录信息反映目标程序在运行测试中异常运行之后,再提取测试记录信息中提取目标程序对应的测试状态信息用于进行比对,意味着本申请实施例只需要对异常运行的目标程序查找漏洞,相较于将每一测试记录信息与测试基准信息进行比对的技术方案,进一步提升了测试效率。

参照图3,根据本申请的一些实施例,测试基准信息包括历史日志信息,历史日志信息包括多个历史报错记录,历史报错记录配置有对应的报错归因信息。步骤S202可以包括,但不限于下述步骤S301至步骤S302。

步骤S301,基于测试状态信息,在历史日志信息的多个历史报错记录中进行搜索;

步骤S302,当在历史日志信息中搜索到与测试状态信息匹配的历史报错记录,根据历史报错记录对应的报错归因信息生成程序测试结果。

需要强调的是,测试基准信息用于为目标程序的测试提供比对基准。而根据本申请一些实施例,历史日志信息中记录有过往历史生成过的测试数据,其中历史日志信息包括多个历史报错记录,历史报错记录配置有对应的报错归因信息。需要指出,历史报错记录是过往历史曾经发生过的异常运行的数据记录,针对每一异常运行的数据记录也都会配置有对应的报错归因信息,用于标识该异常运行的异常原因。因此,历史日志信息可以为目标程序的测试提供比对基准,也即测试基准信息可以包括历史日志信息。

一些实施例的步骤S301中,基于测试状态信息,在历史日志信息的多个历史报错记录中进行搜索。需要强调的是,测试状态信息用于反映目标程序测试状态的测试数据,又由于历史日志信息中记录有过往历史生成过的测试数据,其中历史日志信息包括多个历史报错记录,历史报错记录配置有对应的报错归因信息。需要指出,历史报错记录是过往历史曾经发生过的异常运行的数据记录,针对每一异常运行的数据记录也都会配置有对应的报错归因信息,用于标识该异常运行的异常原因。因此,可以基于测试状态信息,在历史日志信息的多个历史报错记录中进行搜索,其目的在于,确定历史日志信息中是否存在与测试状态信息匹配的历史报错记录。

一些实施例的步骤S302中,当在历史日志信息中搜索到与测试状态信息匹配的历史报错记录,根据历史报错记录对应的报错归因信息生成程序测试结果。需要说明的是,当在历史日志信息中搜索到与测试状态信息匹配的历史报错记录,意味着过往历史执行过的测试中,曾经发生过与本次异常运行的测试状态信息相匹配的情况。因此,明确与测试状态信息匹配的历史报错记录,并将其对应的报错归因信息用于生成程序测试结果,即可确定这一次目标程序异常运行的异常原因。

需要强调,一些实施例中,程序测试结果具体可以反映对测试记录信息进行定性分析结果,例如判断出目标程序在测试中是否合格、是否通过测试;另一些实施例中,程序测试结果具体也可以反映对测试记录信息进行定量分析结果,例如确定出目标程序在测试中的表现情况、运行状态等。

一些较为具体的实施例中,当历史日志信息中搜索到与测试状态信息匹配的历史报错记录A,且历史报错记录A对应的报错归因信息指向A类漏洞,则程序测试结果可以表示为:目标程序在运行测试中异常运行,并且目标程序中存在A类漏洞,请遵循反馈流程将上述内容进行反馈。

一些较为具体的实施例中,当历史日志信息中、未搜索到与测试状态信息匹配的历史报错记录,则程序测试结果可以表示为:目标程序在运行测试中异常运行,并且未查询到与当前异常运行匹配的历史报错记录,请遵循反馈流程将上述内容进行反馈,并重启目标程序。

经由步骤S301至步骤S302示出的本申请实施例,先基于测试状态信息,在历史日志信息的多个历史报错记录中进行搜索,当在历史日志信息中搜索到与测试状态信息匹配的历史报错记录,根据历史报错记录对应的报错归因信息生成程序测试结果。需要指出,由于历史报错记录是过往历史曾经发生过的异常运行的数据记录,历史日志信息包括多个历史报错记录,历史报错记录配置有对应的报错归因信息。因此,将历史报错记录作为测试基准信息用于与测试状态信息进行比对,有助于更为快捷地确定出当前针对目标程序的测试中,目标程序异常运行的原因,进一步提升了测试效率。

参照图4,根据本申请的一些实施例,步骤S301之后,程序测试方法还可以包括,但不限于下述步骤S401至步骤S403。

步骤S401,当在历史日志信息中未搜索到与测试状态信息匹配的历史报错记录,基于测试状态信息生成程序报错记录;

步骤S402,对程序报错记录进行报错解析处理,得到与程序报错记录对应的报错归因信息;

步骤S403,根据与程序报错记录对应的报错归因信息,确定程序测试结果。

一些实施例的步骤S401中,当在历史日志信息中未搜索到与测试状态信息匹配的历史报错记录,基于测试状态信息生成程序报错记录。需要说明的是,当在历史日志信息中未搜索到与测试状态信息匹配的历史报错记录,意味着过往历史执行过的测试中,并没有发生过与本次异常运行的测试状态信息相匹配的情况。可以明确,本次异常运行的状况是首次发生,因此需要基于测试状态信息生成程序报错记录,以记录此次异常运行。需要指出,程序报错记录可以用于记录针对目标程序进行运行测试得到的运行状态详情。

一些实施例的步骤S402中,对程序报错记录进行报错解析处理,得到与程序报错记录对应的报错归因信息。需要说明的是,报错解析处理指的是对程序报错记录进行解析,从中确定出此次异常运行的原因,并生成程序报错记录对应的报错归因信息。需要强调的是,当测试记录信息反映目标程序在运行测试中异常运行,意味着目标程序中存在漏洞。而程序报错记录可以用于记录针对目标程序进行运行测试得到的运行状态详情。因此,针对程序报错记录中目标程序在运行测试过程中的运行状态详情进行解析,即可明确哪些运行状态是基于目标程序中存在的漏洞所导致的。

根据本申请一些较为具体的实施例,可以预先构建程序漏洞对照表,用于记载报错数据与程序漏洞的映射关系。对程序报错记录进行报错解析处理的过程中,若程序报错记录在程序漏洞对照表中可以找到与某一日志信息对应的程序漏洞,那么即可根据基于该程序漏洞来确定出与程序报错记录对应的报错归因信息。

本申请另一些较为具体的实施例中,可以预先构建训练程序诊断数据集,程序诊断数据集包括多个异常状态数据,每一异常状态数据都配置有对应的程序漏洞标签,其中程序漏洞标签用于标识导致异常状态数据产生的程序漏洞。进一步,基于程序诊断数据集对神经网络模型进行预训练,得到程序诊断模型,使得这一程序诊断模型具备依照异常状态数据确定对应程序漏洞的程序诊断能力。然后将预训练好的程序诊断模型用于对程序报错记录进行报错解析处理,即可得到对应的程序漏洞,再根据这一程序漏洞确定出程序报错记录对应的报错归因信息。

应理解,对程序报错记录进行报错解析处理,得到与程序报错记录对应的报错归因信息的实施方式多种多样,可以包括,但不限于上述举出的具体实施例。

一些实施例的步骤S403中,根据与程序报错记录对应的报错归因信息,确定程序测试结果。需要说明的是,在得到与程序报错记录对应的报错归因信息之后,即可依照这一报错归因信息,确定出程序测试结果。

需要强调,一些实施例中,程序测试结果具体可以反映对测试记录信息进行定性分析结果,例如判断出目标程序在测试中是否合格、是否通过测试;另一些实施例中,程序测试结果具体也可以反映对测试记录信息进行定量分析结果,例如确定出目标程序在测试中的表现情况、运行状态等。

一些较为具体的实施例中,当报错归因信息反映出目标程序存在B类漏洞,则程序测试结果可以表示为:目标程序在运行测试中异常运行,并且目标程序中存在B类漏洞,请遵循反馈流程将上述内容进行反馈。

一些较为具体的实施例中,当报错归因信息反映出目标程序未查询到漏洞,则程序测试结果可以表示为:目标程序在运行测试中异常运行,并且目标程序中未查询到漏洞,请遵循反馈流程将上述内容进行反馈,并核查测试流程是否其他异常。

应理解,程序测试结果的表示方式多种多样,可以包括,但不限于上述举出的具体实施例。

参照图5,根据本申请的一些实施例,步骤S402可以包括,但不限于下述步骤S501至步骤S502。

步骤S501,将程序报错记录输入预训练的程序诊断模型进行漏洞筛查处理,得到漏洞筛查结果;

步骤S502,根据漏洞筛查结果,确定与程序报错记录对应的报错归因信息。

一些较为具体的实施例中,可以预先构建训练程序诊断数据集,程序诊断数据集包括多个异常状态数据,每一异常状态数据都配置有对应的程序漏洞标签,其中程序漏洞标签用于标识导致异常状态数据产生的程序漏洞。进一步,基于程序诊断数据集对神经网络模型进行预训练,得到程序诊断模型,使得这一程序诊断模型具备依照异常状态数据确定对应程序漏洞的程序诊断能力。

一些实施例的步骤S501中,将程序报错记录输入预训练的程序诊断模型进行漏洞筛查处理,得到漏洞筛查结果。需要说明的是,将预训练好的程序诊断模型用于对程序报错记录进行报错解析处理,即可得到对应的程序漏洞,再根据这一程序漏洞确定出程序报错记录对应的报错归因信息。具体而言,可以将程序报错记录输入预训练的程序诊断模型进行漏洞筛查处理,由于程序诊断模型经过预训练而具备了依照异常状态数据确定对应程序漏洞的程序诊断能力,故而可以得到程序报错记录对应的漏洞筛查结果。

一些实施例的步骤S502中,根据漏洞筛查结果,确定与程序报错记录对应的报错归因信息。需要说明的是,在确定出漏洞筛查结果之后,方可明确目标程序中存在的代码漏洞,即可进一步将这一代码漏洞的相关信息确定为与程序报错记录对应的报错归因信息。

通过步骤S501至步骤S502示出的本申请实施例,将程序报错记录输入预训练的程序诊断模型进行漏洞筛查处理,得到漏洞筛查结果,然后根据漏洞筛查结果,确定与程序报错记录对应的报错归因信息。利用程序诊断模型在于预训练过程中具备的程序诊断能力,可以依照程序报错记录中的异常状态数据确定出目标程序所存在的程序漏洞,得到漏洞筛查结果,进而根据漏洞筛查结果,确定与程序报错记录对应的报错归因信息。如此一来,便可以进一步提高对目标程序的测试效率。

参照图6,根据本申请的一些实施例,目标程序按照运行周期执行;测试基准信息包括目标程序在当前运行周期之前的多个运行周期的历史返回参数。步骤S104可以包括,但不限于下述步骤S601至步骤S603。

步骤S601,当测试记录信息反映目标程序在运行测试中正常运行,从测试记录信息中提取目标程序对应的测试返回参数;

步骤S602,将测试返回参数与历史返回参数进行比对,得到参数比对信息;

步骤S603,基于参数比对信息进行差异解析处理,得到程序测试结果。

需要说明的是,目标程序按照运行周期执行,可以指的是每隔一段运行周期就执行一次目标程序。测试基准信息包括目标程序在当前运行周期之前的多个运行周期的历史返回参数,应理解,将当前运行周期之前的多个运行周期的历史返回参数,与当前运行周期的返回参数进行比对,方可判断出当前运行周期的返回参数相较于过往是否存在差异。一些实施例中,在确定目标程序在运行测试中能够正常运行之后,还需要测试目标程序在运行测试中与过往周期的运行测试有何不同。

一些实施例的步骤S601中,当测试记录信息反映目标程序在运行测试中正常运行,从测试记录信息中提取目标程序对应的测试返回参数。需要说明的是,当测试记录信息反映目标程序在运行测试中正常运行,意味着目标程序中没有发现漏洞。此情形下,本申请一些实施例可以从测试记录信息中提取目标程序对应的测试返回参数。需要说明的是,测试返回参数值得是针对目标程序进行运行测试之后得到的返回参数。

一些实施例的步骤S602中,将测试返回参数与历史返回参数进行比对,得到参数比对信息。需要说明的是,将测试返回参数与历史返回参数进行比对,其目的在于,通过测试返回参数与历史返回参数的比对,得到参数比对信息。其中,参数比对信息可以用于在后续步骤中进一步解析,以明确当前运行周期中目标程序的运行状况与过往运行周期中目标程序的运行状况是否存在差异。

一些实施例的步骤S603中,基于参数比对信息进行差异解析处理,得到程序测试结果。需要说明的是,基于参数比对信息进行差异解析处理,可以明确当前运行周期中目标程序的运行状况与过往运行周期中目标程序的运行状况是否存在差异,以确定目标程序在能够正常运行的情况下的测试情况。

一些实施例中,如果发现差异,可以针对差异部分的目标程序以及返回参数进行分析核准,以明确是否存在异常情况。一些更为具体的实施例中,若发现存在异常情况,也可以根据对应的异常情况执行异常修复操作,然后再重启目标程序,实现对目标程序得以正常运行的情况下的测试。

经由步骤S601至步骤S603示出的本申请实施例,当测试记录信息反映目标程序在运行测试中正常运行,从测试记录信息中提取目标程序对应的测试返回参数,将测试返回参数与历史返回参数进行比对,得到参数比对信息,基于参数比对信息进行差异解析处理,得到程序测试结果。如此一来,便可以确定对目标程序在能够正常运行的情况下的测试情况。进一步提升了对目标程序进行测试的全面性。

参照图7,根据本申请的一些实施例,步骤S603可以包括,但不限于下述步骤S701至步骤S703。

步骤S701,基于参数比对信息,确定测试返回参数与历史返回参数之间是否存在差异返回参数;

步骤S702,当测试返回参数与历史返回参数之间存在差异返回参数,对差异返回参数进行异常参数检测,得到异常检测信息;

步骤S703,基于异常检测信息确定程序测试结果。

一些实施例的步骤S701至步骤S703中,基于参数比对信息,确定测试返回参数与历史返回参数之间是否存在差异返回参数。当测试返回参数与历史返回参数之间存在差异返回参数,对差异返回参数进行异常参数检测,得到异常检测信息,然后基于异常检测信息确定程序测试结果。需要说明的是,需要说明的是,基于参数比对信息进行差异解析处理,可以明确当前运行周期中目标程序的运行状况与过往运行周期中目标程序的运行状况是否存在差异,以确定目标程序在能够正常运行的情况下的测试情况。具体而言,需要先基于参数比对信息,确定测试返回参数与历史返回参数之间是否存在差异返回参数。若测试返回参数与历史返回参数之间存在差异返回参数,意味着目标程序在当前运行周期的运行状况与过往不同,此时需要对差异返回参数进行异常参数检测,得到异常检测信息,基于异常检测信息确定程序测试结果,以明确这部分差异返回参数是否表示异常情况出现。

经由步骤S701至步骤S703示出的本申请实施例,基于参数比对信息,确定测试返回参数与历史返回参数之间是否存在差异返回参数,当测试返回参数与历史返回参数之间存在差异返回参数,对差异返回参数进行异常参数检测,得到异常检测信息,基于异常检测信息确定程序测试结果。如此一来,便可以在目标程序能够正常运行的情况下较为准确地得出目标程序的测试情况。进一步提升了对目标程序进行测试的全面性。

参照图8,根据本申请的一些实施例,步骤S702可以包括,但不限于下述步骤S801至步骤S802。

步骤S801,将差异返回参数输入预训练的返回参数处理模型进行异常参数筛查,得到参数筛查结果;

步骤S802,根据参数筛查结果,确定与差异返回参数对应的异常检测信息。

一些较为具体的实施例中,可以预先构建训练返回参数诊断数据集,返回参数诊断数据集包括多个训练返回参数,每一训练返回参数都配置有对应的异常原因标签,其中异常原因标签用于标识导致训练返回参数异常的异常原因。进一步,基于返回参数诊断数据集对神经网络模型进行预训练,得到返回参数处理模型,使得这一返回参数处理模型具备依照训练返回参数确定对应异常原因的返回参数诊断能力。

一些实施例的步骤S801中,将差异返回参数输入预训练的返回参数处理模型进行参数筛查处理,得到参数筛查结果。需要说明的是,将预训练好的返回参数处理模型用于对差异返回参数进行报错解析处理,即可得到对应的异常原因,再根据这一异常原因确定出差异返回参数对应的异常检测信息。具体而言,可以将差异返回参数输入预训练的返回参数处理模型进行参数筛查处理,由于返回参数处理模型经过预训练而具备了依照训练返回参数确定对应异常原因的返回参数诊断能力,故而可以得到差异返回参数对应的参数筛查结果。

一些实施例的步骤S802中,根据参数筛查结果,确定与差异返回参数对应的异常检测信息。需要说明的是,在确定出参数筛查结果之后,方可明确目标程序中存在的瑕疵代码,即可进一步将这一瑕疵代码的相关信息确定为与差异返回参数对应的异常检测信息。

通过步骤S801至步骤S802示出的本申请实施例,将差异返回参数输入预训练的返回参数处理模型进行参数筛查处理,得到参数筛查结果,然后根据参数筛查结果,确定与差异返回参数对应的异常检测信息。利用返回参数处理模型在于预训练过程中具备的返回参数诊断能力,可以依照差异返回参数中的训练返回参数确定出目标程序所存在的异常原因,得到参数筛查结果,进而根据参数筛查结果,确定与差异返回参数对应的异常检测信息。如此一来,便可以进一步提高对目标程序的测试效率。

图9示出了本申请实施例提供的电子设备900。电子设备900包括:处理器901、存储器902及存储在存储器902上并可在处理器901上运行的计算机程序,计算机程序运行时用于执行上述的程序测试方法。

处理器901和存储器902可以通过总线或者其他方式连接。

存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本申请实施例描述的程序测试方法。处理器901通过运行存储在存储器902中的非暂态软件程序以及指令,从而实现上述的程序测试方法。

存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序。存储数据区可存储执行上述的程序测试方法。此外,存储器902可以包括高速随机存取存储器902,还可以包括非暂态存储器902,例如至少一个储存设备存储器件、闪存器件或其他非暂态固态存储器件。在一些实施方式中,存储器902可选包括相对于处理器901远程设置的存储器902,这些远程存储器902可以通过网络连接至该电子设备900。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

实现上述的程序测试方法所需的非暂态软件程序以及指令存储在存储器902中,当被一个或者多个处理器901执行时,执行上述的程序测试方法,例如,执行图1中的方法步骤S101至步骤S104、图2中的方法步骤S201至步骤S202、图3中的方法步骤S301至步骤S302、图4中的方法步骤S401至步骤S403、图5中的方法步骤S501至步骤S502、图6中的方法步骤S601至步骤S603、图7中的方法步骤S701至步骤S703、图8中的方法步骤S801至步骤S802。

本申请实施例还提供了计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令用于执行上述的程序测试方法。

在一实施例中,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,执行图1中的方法步骤S101至步骤S104、图2中的方法步骤S201至步骤S202、图3中的方法步骤S301至步骤S302、图4中的方法步骤S401至步骤S403、图5中的方法步骤S501至步骤S502、图6中的方法步骤S601至步骤S603、图7中的方法步骤S701至步骤S703、图8中的方法步骤S801至步骤S802。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、储存设备存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。还应了解,本申请实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。

以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本申请权利要求所限定的范围内。

相关技术
  • 一种轨道车辆救援用停放制动控制系统及控制方法
  • 一种车桥系统风洞试验车辆制动装置及其制作方法
  • 车辆制动性能检测装置、车辆及车辆的控制方法
  • 用于控制车辆的制动设备的控制装置、车辆的制动设备、用于运行控制装置的方法和用于以制动压力加载车辆的制动设备的至少一个制动装置的方法
  • 用于车辆的制动系统的电磁装置、用于运行用于车辆的制动系统的电磁装置的方法和控制器以及用于车辆的制动系统
技术分类

06120116518339