程序错误信息识别方法、装置、设备及介质与流程

    专利查询2022-08-20  102



    1.本发明涉及智能决策技术领域,属于智慧城市中对应用程序中的错误信息进行快速识别的应用场景,尤其涉及一种程序错误信息识别方法、装置、设备及介质。


    背景技术:

    2.企业为了发展线上业务,通常会开发具有不同功能的应用程序以满足客户在线上对相应功能业务进行办理的实际需求。对于同一应用程序,企业通常会开发多个版本,通过版本迭代以逐步丰富应用程序的使用功能,为提高应用程序的开发效率,企业在开发不同版本的应用程序时需要进行大量测试,并通过测试对开发过程中的错误信息进行识别并进行后续处理。然而现有技术方法均是采用程序员对错误信息进行识别后查找相应解决方法,这一对错误信息进行识别的过程需要耗费大量的人力资源,从而导致后续对应用程序中错误信息进行处理的效率较低,影响了应用程序的开发效率。因此,现有技术方法中的错误信息识别方法存在识别效率较低的问题。


    技术实现要素:

    3.本发明实施例提供了一种程序错误信息识别方法、装置、设备及介质,旨在解决现有技术中错误信息识别方法所存在的识别效率较低的问题。
    4.第一方面,本发明实施例提供了一种程序错误信息识别方法,该方法应用于管理服务器,所述管理服务器与用户终端建立网络连接以实现数据信息的传输,方法包括:
    5.若接收到来自所述用户终端输入的待测试程序,根据预存的测试用例对所述待测试程序进行测试并判断所述测试用例执行过程是否出现报错信息;
    6.若所述测试用例执行过程出现报错信息,根据预置的特征提取规则从所述测试用例的执行记录及所述待测试程序中获取与所述报错信息对应的执行特征信息;
    7.获取预存的历史测试数据库中与所述待测试程序对应的历史测试信息;
    8.根据所述特征提取规则获取所述历史测试信息与所述执行特征信息之间的执行差异特征信息;
    9.根据预置的关联分析模型对所述报错信息与所述执行差异特征信息进行关联分析,以得到是否存在关联的分析结果;
    10.若所述分析结果为存在关联,获取所述待测试程序中与所述执行差异特征信息对应的代码差异信息反馈至所述用户终端。
    11.第二方面,本发明实施例提供了一种程序错误信息识别装置,其包括:
    12.程序测试单元,用于若接收到来自所述用户终端输入的待测试程序,根据预存的测试用例对所述待测试程序进行测试并判断所述测试用例执行过程是否出现报错信息;
    13.执行特征信息获取单元,用于若所述测试用例执行过程出现报错信息,根据预置的特征提取规则从所述测试用例的执行记录及所述待测试程序中获取与所述报错信息对应的执行特征信息;
    14.历史测试信息获取单元,用于获取预存的历史测试数据库中与所述待测试程序对应的历史测试信息;
    15.执行差异特征信息获取单元,用于根据所述特征提取规则获取所述历史测试信息与所述执行特征信息之间的执行差异特征信息;
    16.关联分析结果获取单元,用于根据预置的关联分析模型对所述报错信息与所述执行差异特征信息进行关联分析,以得到是否存在关联的分析结果;
    17.代码差异信息反馈单元,用于若所述分析结果为存在关联,获取所述待测试程序中与所述执行差异特征信息对应的代码差异信息反馈至所述用户终端。
    18.第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的程序错误信息识别方法。
    19.第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的程序错误信息识别方法。
    20.本发明实施例提供了一种程序错误信息识别方法、装置、设备及介质。根据测试用例对待测试程序进行测试并判断是否出现报错信息,若出现报错信息则从测试用例的执行纪律及待测试应用程序中获取执行特征信息,获取与待测试程序对应的历史测试信息并提取与执行特征信息之间的执行差异特征信息,根据关联分析模型对报错信息与执行差异特征信息进行关联分析,若存在关联则获取与执行差异特征信息对应的代码差异信息反馈至用户终端。通过上述方法,可对报错信息与执行差异特征信息进行关联分析,以获取报错信息是否代码差异之间存在关联性,可实现快速对程序错误信息进行识别,从而快速确定引起报错信息的程序代码的具体位置。
    附图说明
    21.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
    22.图1为本发明实施例提供的程序错误信息识别方法的流程示意图;
    23.图2为本发明实施例提供的程序错误信息识别方法的应用场景示意图;
    24.图3为本发明实施例提供的程序错误信息识别方法的子流程示意图;
    25.图4为本发明实施例提供的程序错误信息识别方法的另一子流程示意图;
    26.图5为本发明实施例提供的程序错误信息识别方法的另一子流程示意图;
    27.图6为本发明实施例提供的程序错误信息识别方法的另一子流程示意图;
    28.图7为本发明实施例提供的程序错误信息识别方法的另一子流程示意图;
    29.图8为本发明实施例提供的程序错误信息识别方法的另一流程示意图;
    30.图9为本发明实施例提供的程序错误信息识别装置的示意性框图;
    31.图10为本发明实施例提供的计算机设备的示意性框图。
    具体实施方式
    32.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
    33.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
    34.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
    35.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
    36.请参阅图1及图2,图1为本发明实施例提供的程序错误信息识别方法的流程示意图;图2为本发明实施例提供的程序错误信息识别方法的应用场景示意图;该程序错误信息识别方法应用于管理服务器10中,该程序错误信息识别方法通过安装于管理服务器10中的应用软件进行执行,管理服务器10与用户终端20进行网络连接以实现数据信息的传输;管理服务器10即是用于执行程序错误信息识别方法以对应用程序中的错误信息进行快速识别的服务器端,如企业或政府部门所构建的服务器,用户终端20即是可接收用户输入的待测试程序并发送至管理服务器10的终端设备,例如台式电脑、笔记本电脑、平板电脑或手机等,用户终端的使用者可以是应用程序的开发人员或测试人员,图2中仅仅示意出管理服务器10与一台用户终端20进行信息传输,在实际应用中,该管理服务器10也可同时与多台用户终端20建立通信连接以实现数据信息的传输。如图1所示,该方法包括步骤s110~s170。
    37.s110、若接收到来自所述用户终端输入的待测试程序,根据预存的测试用例对所述待测试程序进行测试并判断所述测试用例执行过程是否出现报错信息。
    38.若接收到来自所述用户终端输入的待测试程序,根据预存的测试用例对所述待测试程序进行测试并判断所述测试用例执行过程是否出现报错信息。用户终端可用于接收用户输入的待测试程序并发送至管理服务器,管理服务器接收到待测试程序后,即可通过预先存储的测试用例对待测试程序进行测试,也即是通过待测试程序执行测试用例,同时管理服务器对测试用例的执行过程及管理服务器的运行状态进行实时监测,以判断测试用例在执行过程中是否出现报错,若测试用例在执行过程中出现报错信息,则管理服务器可立即终止测试用例的执行过程,并收集执行过程中对执行过程及管理服务器运行状态进行监测时记录得到的执行记录。若当前测试用例在执行过程中未出现报错信息,则可获取管理服务器中预存的下一测试用例继续对待测试程序进行测试,并重复整个方法流程,直至预存的所有测试用例均执行完毕。
    39.s120、若所述测试用例执行过程出现报错信息,根据预置的特征提取规则从所述测试用例的执行记录及所述待测试程序中获取与所述报错信息对应的执行特征信息。
    40.若所述测试用例执行过程出现报错信息,根据预置的特征提取规则从所述测试用例的执行记录中获取对应的执行特征信息。若测试用例在执行过程中出现报错信息,则可
    对应获取得到与测试用例对应的执行记录,并通过特征提取规则从执行记录及待测试程序中获取对应的执行特征信息。其中,特征提取规则包括特征编码映射集合、编译特征提取项及资源特征提取项;执行特征信息中包括代码特征信息、编译特征信息及资源消耗信息。
    41.在一实施例中,如图3所示,步骤s120包括子步骤s121、s122、s123和s124。
    42.s121、获取所述待测试程序中与所述报错信息对应的报错代码。
    43.可根据报错信息从待测试程序中获取对应的报错代码,待测试程序由程序代码组合而成,报错代码即为待测试程序中与报错信息相对应的一段程序代码。具体的,报错信息中包含报错字段,报错字段可以是待测试程序对测试用例进行执行过程中出现错误的参数字段、接口字段、函数字段等报错字段,可根据报错信息中包含的报错字段,获取待测试程序中与每一报错字段相匹配的代码段并组合得到报错代码。
    44.s122、根据所述特征编码映射集合对所述报错代码进行映射处理,得到对应的代码特征信息。
    45.可根据特征编码映射即可对报错代码中包含的代码信息进行映射处理,其中,特征编码映射集合中包含字段与编码值之间的映射关系,通过这一映射关系即可将报错代码中包含的代码字段映射为对应的特征值,获取报错代码中每一代码字段对应的特征值进行组合即可得到对应的代码特征信息。具体的,若报错代码中包含的代码字段为数据值,则直接将该数据值作为相对应的特征值;若报错代码中包含的代码字段为单词,则通过特征编码映射集合对该代码字段进行映射处理得到对应的特征值。
    46.s123、根据所述编译特征提取项从所述执行记录中获取与所述待测试程序对应的编译特征信息。
    47.具体的,编译特征提取项可对待测试程序的编译特征信息进行提取,编译特征提取项中包括编译时长、编译代码长度等提取项,则可根据其中的提取项从执行记录中提取对应的特征值得到编译特征信息,则所得到的编译特征信息中包含与编译时长及编译代码长度分别对应的特征值,编译时长即为对待测试程序进行编译处理的整体时长,待测试程序被计算机执行之前需要先进行编译处理,编译代码长度即为对待测试程序进行编译处理后所得到的编译代码的长度信息。
    48.s124、根据所述资源特征提取项从所述执行记录中获取与所述待测试程序对应的资源消耗信息。
    49.资源特征提取项可对待测试程序执行过程中管理服务器的资源消耗信息进行特征提取,其中,资源特征提取项包括内存占用、cpu占用、处理流数量等提取项,则可根据其中的提取项从执行记录信息中提取对应的特征值得到资源消耗信息,则所得到的资源消耗信息中包含与内存占用、cpu占用、处理流数量分别对应的特征值,处理流数量即为在对待测试程序进行执行过程中所占用的数据处理流的数量信息。
    50.s130、获取预存的历史测试数据库中与所述待测试程序对应的历史测试信息。
    51.获取预存的历史测试数据库中与所述待测试程序对应的历史测试信息。管理服务器中配置有历史测试数据库,历史测试数据库即为对与待测试程序相对应的历史版本程序的历史测试数据进行存储的数据库。同一程序可对应多个不同的版本,在对应用程序进行迭代开发过程中,每一版本的应用程序均需要通过测试才能上线发布,则可将应用程序执行测试用例并测试通过的测试数据存储至历史测试数据库中。可从历史测试数据库中获取
    与待测试程序对应的其它版本程序,并获取其他版本程序对应的测试数据作为历史测试信息。
    52.在一实施例中,如图4所示,步骤s130包括子步骤s131、s132、s133和s134。
    53.s131、根据所述待测试程序的程序标识获取所述历史测试数据库中对应的历史版本程序。
    54.与待测试程序相匹配的上一版本的程序即为历史版本程序,即可根据待测试程序的程序标识及版本号,获取历史测试数据库中与程序标识相同且版本号略小于待测试程序的程序作为历史版本程序,则历史版本程序的版本号小于待测试程序且在所有其它版本程序中与待测试程序的版本号最接近。
    55.s132、获取所述历史版本程序中与所述报错代码相匹配的目标代码。
    56.具体的,可获取待测试程序中报错代码对应的模块标识,模块标识即为对报错代码在待测试程序中所属功能模块进行标识的信息,即可根据报错代码对应的模块标识获取历史版本程序中与该模板标识相对应的程序代码,作为与报错代码相匹配的目标代码。
    57.s133、获取所述历史测试数据库中与所述目标代码相匹配的代码执行记录。
    58.历史测试数据库中包含历史版本程序对各种测试用例进行执行并执行成功的测试数据,则可从历史测试数据库所记载的测试数据中获取与当前测试用例及目标代码相匹配的测试记录信息作为对应的代码执行记录,则代码执行记录即为目标代码对当前测试用例进行执行及监测管理服务器运行状态所得到的记录信息。
    59.s134、将所述目标代码及所述代码执行记录进行组合,得到与所述待测试程序对应的历史测试信息。
    60.将所得到的目标代码与代码执行记录进行组合后,所得到的组合信息即为与待测试程序对应的历史测试信息。
    61.s140、根据所述特征提取规则获取所述历史测试信息与所述执行特征信息之间的执行差异特征信息。
    62.根据所述特征提取规则获取所述历史测试信息与所述执行特征信息之间的执行差异特征信息。可根据特征提取规则从历史测试信息中提取得到历史测试特征信息,并基于提取得到的历史测试特征信息及执行特征信息获取对应的直线差异特征信息,执行差异特征信息即可用于对待测试程序与历史版本程序对同一测试用例进行执行的过程中所存在的差异性进行表征。
    63.在一实施例中,如图5所示,步骤s140包括子步骤s141和s142。
    64.s141、根据所述特征提取规则从所述历史测试信息中获取对应的历史测试特征信息。
    65.可根据特征提取规则从历史测试信息中获取得到历史测试特征信息,则历史测试特征信息可用于对历史测试信息的特征进行表征,其中,特征提取规则包括特征编码映射集合、编译特征提取项及资源特征提取项,历史测试特征信息中包括历史代码特征信息、历史编译特征信息及历史资源消耗信息。获取历史测试特征信息的具体过程包括:根据所述特征编码映射集合对所述历史测试信息中的目标代码进行映射处理,得到对应的历史代码特征信息;根据所述编译特征提取项从所述历史测试信息的代码执行记录中获取对应的历史编译特征信息;根据所述资源特征提取项从所述历史测试信息的代码执行记录中获取对
    应的历史资源消耗信息。具体的,从目标代码中获取历史代码特征信息的具体方法与获取代码特征信息的具体方法相同,从代码执行记录中获取历史编译特征信息的具体方法与获取编译特征信息的具体方法相同,从代码执行记录中获取历史资源消耗信息的具体方法与获取资源消耗信息的具体方法相同,在此均不作赘述。
    66.s142、对所述历史测试特征信息与所述执行特征信息进行差异性对比,得到对应的执行差异特征信息。
    67.可对所得到的历史测试特征信息与待测试程序的执行特征信息进行差异性对比,得到执行差异特征信息,具体的,可分别对其中的历史代码特征信息与代码特征信息、历史编译特征信息与编译特征信息及历史资源消耗信息与资源消耗信息进行差异性对比,得到包含全方面差异性特征的执行差异特征信息。其中,执行差异特征信息包括代码差异特征、编译差异特征及资源消耗差异特征。
    68.在一实施例中,如图6所示,步骤s142包括子步骤s1421、s1422和s1423。
    69.s1421、获取所述执行特征信息中代码特征信息与所述历史测试特征信息中历史代码特征信息之间的差异特征值,得到代码差异特征。
    70.历史代码特征信息及代码特征信息中均包含多个特征值,则可获取历史代码特征信息及代码特征信息存在差异的特征值作为代码差异特征。具体的,将历史代码特征信息及代码特征信息中相同的特征值删除,相同的特征值也即对应报错代码与目标代码中相重复的代码内容,将历史代码特征信息中剩余的特征值取负数,例如特征值“3741”则取负数为
    “‑
    3741”,将取负数后的特征值与代码特征信息中剩余的特征值进行组合,组合后所包含的特征值即为代码差异特征。
    71.s1422、获取所述执行特征信息中编译特征信息与所述历史测试特征信息中历史编译特征信息之间的差值,得到编译差异特征;s1423、获取所述执行特征信息中资源消耗信息与所述历史测试特征信息中历史资源消耗信息之间的差值,得到资源消耗差异特征。
    72.历史编译特征信息及编译特征信息中均包含至少一个特征值,且历史编译特征信息与编译特征信息所包含特征值的数量相等,则可获取编译特征信息及历史编译特征信息中与编译特征提取项的每一提取项相对应的两个特征值,并计算同一提取项的两个特征值之间的差值,每一提取项分别对应的差值组合后即作为对应的变异差异特征。采用相同方法即可从资源消耗信息及历史资源消耗信息中对应获取得到资源消耗差异特征。
    73.s150、根据预置的关联分析模型对所述报错信息与所述执行差异特征信息进行关联分析,以得到是否存在关联的分析结果。
    74.可根据关联分析模型对报错信息及所得到的执行差异特征信息进行关联分析,得到报错信息与执行差异特征信息之间是否存在关联的分析结果。具体的,关联分析模型即为对保存信息与执行差异特征信息之间的关联性进行分析的具体模型。关联分析模型中包括报错信息数据库、关联分析神经网络及关联阈值,报错信息数据库即为用于对各种报错信息进行记载的数据库,报错信息中包括报错类型与特征编码之间的对应关系,关联分析神经网络即为基于人工智能构建得到的智能分析神经网络,关联阈值即为预先配置的阈值信息。
    75.在一实施例中,如图7所示,步骤s150包括子步骤s151、s152和s153。
    76.s151、根据所述报错信息数据库获取与所述报错信息对应的报错特征编码。
    77.首先可根据报错信息确定其中所包含的报错类型,并根据报错信息数据库中每一报错类型与相应特征编码的对应关系。具体的,可根据报错信息中所包含的报错关键词确定对应的报错类型,报错类型信息中可同时包含一种或多种报错类型,如报错类型信息中同时包含栈溢出错误及文件结束异常两种报错类型。可对报错信息中每一段报错内容与报错信息数据库中与待测试程序对应的历史报错数据进行匹配,以确定每一段报错内容所对应的报错类型,例如,某一段报错内容为:{user-appp,java.sql.batchupdateexception:column
    78.'to_user_id'cannot be null},则可将上述报错内容的字符序列与历史报错数据逐一进行匹配,若字符序列与某一历史报错数据相匹配,则将该历史报错数据的报错类型确定为与该段报错内容相匹配的报错类型;若字符序列不与任意一条历史报错数据相匹配,则将字符序列按空格拆分成短语和短语组合后再与历史报错数据逐一进行匹配。不同的报错类型在报错信息数据库中分别对应不同的特征编码,可获取与报错信息中每一报错类型相匹配的特征编码,作为与报错信息相对应的报错特征编码。
    79.s152、将所述报错特征编码与所述执行差异特征信息同时输入所述关联分析神经网络进行关联分析,以得到对应的关联系数。
    80.具体的,关联分析神经网络可由两个输入层、多个中间层及一个输出层组成,每一输入层与首个中间层之间、中间层与前后相邻的其他中间层之间、末尾中间层与输出层之间均通过关联公式进行关联,关联公式均可采用一次函数进行表示。每一输入层中包含多个输入节点,第一个输入层用于输入报错特征编码,则第一输入层中包含的输入节点的数量不小于报错特征编码所包含的特征编码数量;第二个输入层用于输入执行差异特征信息,则第一输入层中包含的输入节点的数量不小于执行差异特征信息所包含的特征值数量;输出层中包含一个输出节点,输出节点的输出值即为所得到的关联系数。将报错特征编码及执行差异特征信息分别由两个输入层输入关联分析神经网络进行关联分析,即可从唯一的输出节点中获取相应的关联系数,关联系数的取值范围为[0,1]。
    [0081]
    s153、判断所述关联系数是否大于所述关联阈值,得到是否存在关联的分析结果。
    [0082]
    可判断获取到的关联系数是否大于关联阈值,若关联系数大于关联阈值,则得到报错信息与执行差异特征信息存在关联的分析结果;否则得到不存在关联的分析结果。
    [0083]
    s160、若所述分析结果为存在关联,获取所述待测试程序中与所述执行差异特征信息对应的代码差异信息反馈至所述用户终端。
    [0084]
    若所述分析结果为存在关联,获取所述待测试程序中与所述执行差异特征信息对应的代码差异信息反馈至所述用户终端。若分析结果为存在关联,则表明报错信息即是由待测试程序与历史版本程序之间的代码差异所导致的,可基于差异特征信息中的代码差异特征从待测试程序中获取对应的代码差异信息,并将获取到的代码差异信息反馈至用户终端,代码差异信息包含待测试程序在历史版本程序中增加的代码信息、删除的代码信息及代码长度变化信息等内容,用户通过用户终端察看所接收到的代码差异信息,即可获取导致报错信息的具体代码差异。
    [0085]
    若所述分析结果为不存在关联,则反馈不存在关联的提示信息至用户终端,用户通过用户终端察看所接收到的提示信息即可清楚得知报错信息与执行差异特征信息之间不存在关联性。
    [0086]
    在一实施例中,如图8所示,步骤s160之后还包括步骤s170。
    [0087]
    s170、将所述代码差异信息上传至区块链中。
    [0088]
    基于代码差异信息得到对应的摘要信息,具体来说,摘要信息由代码差异信息进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该摘要信息,以便查证代码差异信息是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
    [0089]
    本技术中的技术方法可应用于对应用程序中的错误信息进行快速识别的应用场景中,从而推动智慧城市的建设。
    [0090]
    在本发明实施例所提供的程序错误信息识别方法中,根据测试用例对待测试程序进行测试并判断是否出现报错信息,若出现报错信息则从测试用例的执行纪律及待测试应用程序中获取执行特征信息,获取与待测试程序对应的历史测试信息并提取与执行特征信息之间的执行差异特征信息,根据关联分析模型对报错信息与执行差异特征信息进行关联分析,若存在关联则获取与执行差异特征信息对应的代码差异信息反馈至用户终端。通过上述方法,可对报错信息与执行差异特征信息进行关联分析,以获取报错信息是否代码差异之间存在关联性,可实现快速对程序错误信息进行识别,从而快速确定引起报错信息的程序代码的具体位置。
    [0091]
    本发明实施例还提供一种程序错误信息识别装置,该程序错误信息识别装置可配置于管理服务器中,该程序错误信息识别装置用于执行前述的程序错误信息识别方法的任一实施例。具体地,请参阅图9,图9为本发明实施例提供的程序错误信息识别装置的示意性框图。
    [0092]
    如图9所示,程序错误信息识别装置100包括程序测试单元110、执行特征信息获取单元120、历史测试信息获取单元130、执行差异特征信息获取单元140、关联分析结果获取单元150和代码差异信息反馈单元160。
    [0093]
    程序测试单元110,用于若接收到来自所述用户终端输入的待测试程序,根据预存的测试用例对所述待测试程序进行测试并判断所述测试用例执行过程是否出现报错信息。
    [0094]
    执行特征信息获取单元120,用于若所述测试用例执行过程出现报错信息,根据预置的特征提取规则从所述测试用例的执行记录及所述待测试程序中获取与所述报错信息对应的执行特征信息。
    [0095]
    在一具体实施例中,所述执行特征信息获取单元120包括子单元:报错代码获取单元,用于获取所述待测试程序中与所述报错信息对应的报错代码;代码特征信息获取单元,用于根据所述特征编码映射集合对所述报错代码进行映射处理,得到对应的代码特征信息;编译特征信息获取单元,用于根据所述编译特征提取项从所述执行记录中获取与所述待测试程序对应的编译特征信息;资源消耗信息获取单元,用于根据所述资源特征提取项从所述执行记录中获取与所述待测试程序对应的资源消耗信息。
    [0096]
    历史测试信息获取单元130,用于获取预存的历史测试数据库中与所述待测试程
    序对应的历史测试信息。
    [0097]
    在一具体实施例中,所述历史测试信息获取单元130包括子单元:历史版本程序获取单元,用于根据所述待测试程序的程序标识获取所述历史测试数据库中对应的历史版本程序;目标代码获取单元,用于获取所述历史版本程序中与所述报错代码相匹配的目标代码;代码执行记录获取单元,用于获取所述历史测试数据库中与所述目标代码相匹配的代码执行记录;组合单元,用于将所述目标代码及所述代码执行记录进行组合,得到与所述待测试程序对应的历史测试信息。
    [0098]
    执行差异特征信息获取单元140,用于根据所述特征提取规则获取所述历史测试信息与所述执行特征信息之间的执行差异特征信息。
    [0099]
    在一具体实施例中,所述执行差异特征信息获取单元140包括子单元:历史测试特征信息获取单元,用于根据所述特征提取规则从所述历史测试信息中获取对应的历史测试特征信息;差异对比单元,用于对所述历史测试特征信息与所述执行特征信息进行差异性对比,得到对应的执行差异特征信息。
    [0100]
    在一具体实施例中,所述历史测试特征信息获取单元包括子单元:代码差异特征获取单元,用于获取所述执行特征信息中代码特征信息与所述历史测试特征信息中历史代码特征信息之间的差异特征值,得到代码差异特征;编译差异特征获取单元,用于获取所述执行特征信息中编译特征信息与所述历史测试特征信息中历史编译特征信息之间的差值,得到编译差异特征;资源消耗差异特征获取单元,用于获取所述执行特征信息中资源消耗信息与所述历史测试特征信息中历史资源消耗信息之间的差值,得到资源消耗差异特征。
    [0101]
    关联分析结果获取单元150,用于根据预置的关联分析模型对所述报错信息与所述执行差异特征信息进行关联分析,以得到是否存在关联的分析结果。
    [0102]
    在一具体实施例中,所述关联分析结果获取单元150包括子单元:报错特征编码获取单元,用于根据所述报错信息数据库获取与所述报错信息对应的报错特征编码;关联系数获取单元,用于将所述报错特征编码与所述执行差异特征信息同时输入所述关联分析神经网络进行关联分析,以得到对应的关联系数;关联系数判断单元,用于判断所述关联系数是否大于所述关联阈值,得到是否存在关联的分析结果。
    [0103]
    代码差异信息反馈单元160,用于若所述分析结果为存在关联,获取所述待测试程序中与所述执行差异特征信息对应的代码差异信息反馈至所述用户终端。
    [0104]
    在一具体实施例中,所述程序错误信息识别装置100还包括子单元:代码差异信息存储单元,用于将所述代码差异信息上传至区块链中。
    [0105]
    在本发明实施例所提供的程序错误信息识别装置应用上述程序错误信息识别方法,根据测试用例对待测试程序进行测试并判断是否出现报错信息,若出现报错信息则从测试用例的执行纪律及待测试应用程序中获取执行特征信息,获取与待测试程序对应的历史测试信息并提取与执行特征信息之间的执行差异特征信息,根据关联分析模型对报错信息与执行差异特征信息进行关联分析,若存在关联则获取与执行差异特征信息对应的代码差异信息反馈至用户终端。通过上述方法,可对报错信息与执行差异特征信息进行关联分析,以获取报错信息是否代码差异之间存在关联性,可实现快速对程序错误信息进行识别,从而快速确定引起报错信息的程序代码的具体位置。
    [0106]
    上述程序错误信息识别装置可以实现为计算机程序的形式,该计算机程序可以在
    如图10所示的计算机设备上运行。
    [0107]
    请参阅图10,图10是本发明实施例提供的计算机设备的示意性框图。该计算机设备可以是用于执行程序错误信息识别方法以对应用程序中的错误信息进行快速识别的管理服务器。
    [0108]
    参阅图10,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括存储介质503和内存储器504。
    [0109]
    该存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行程序错误信息识别方法,其中,存储介质503可以为易失性的存储介质或非易失性的存储介质。
    [0110]
    该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
    [0111]
    该内存储器504为存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行程序错误信息识别方法。
    [0112]
    该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图10中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
    [0113]
    其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现上述的程序错误信息识别方法中对应的功能。
    [0114]
    本领域技术人员可以理解,图10中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图10所示实施例一致,在此不再赘述。
    [0115]
    应当理解,在本发明实施例中,处理器502可以是中央处理单元(central processing unit,cpu),该处理器502还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
    [0116]
    在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为易失性或非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现上述的程序错误信息识别方法中所包含的步骤。
    [0117]
    所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出
    本发明的范围。
    [0118]
    在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
    [0119]
    所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
    [0120]
    另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
    [0121]
    所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的计算机可读存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、磁碟或者光盘等各种可以存储程序代码的介质。
    [0122]
    以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

    技术特征:
    1.一种程序错误信息识别方法,其特征在于,所述方法应用于管理服务器,所述管理服务器与用户终端建立网络连接以实现数据信息的传输,所述方法包括:若接收到来自所述用户终端输入的待测试程序,根据预存的测试用例对所述待测试程序进行测试并判断所述测试用例执行过程是否出现报错信息;若所述测试用例执行过程出现报错信息,根据预置的特征提取规则从所述测试用例的执行记录及所述待测试程序中获取与所述报错信息对应的执行特征信息;获取预存的历史测试数据库中与所述待测试程序对应的历史测试信息;根据所述特征提取规则获取所述历史测试信息与所述执行特征信息之间的执行差异特征信息;根据预置的关联分析模型对所述报错信息与所述执行差异特征信息进行关联分析,以得到是否存在关联的分析结果;若所述分析结果为存在关联,获取所述待测试程序中与所述执行差异特征信息对应的代码差异信息反馈至所述用户终端。2.根据权利要求1所述的程序错误信息识别方法,其特征在于,所述特征提取规则包括特征编码映射集合、编译特征提取项及资源特征提取项;所述执行特征信息中包括代码特征信息、编译特征信息及资源消耗信息,所述根据预置的特征提取规则从所述测试用例的执行记录及所述待测试程序中获取与所述报错信息对应的执行特征信息,包括:获取所述待测试程序中与所述报错信息对应的报错代码;根据所述特征编码映射集合对所述报错代码进行映射处理,得到对应的代码特征信息;根据所述编译特征提取项从所述执行记录中获取与所述待测试程序对应的编译特征信息;根据所述资源特征提取项从所述执行记录中获取与所述待测试程序对应的资源消耗信息。3.根据权利要求1所述的程序错误信息识别方法,其特征在于,所述获取预存的历史测试数据库中与所述待测试程序对应的历史测试信息,包括:根据所述待测试程序的程序标识获取所述历史测试数据库中对应的历史版本程序;获取所述历史版本程序中与所述报错代码相匹配的目标代码;获取所述历史测试数据库中与所述目标代码相匹配的代码执行记录;将所述目标代码及所述代码执行记录进行组合,得到与所述待测试程序对应的历史测试信息。4.根据权利要求2所述的程序错误信息识别方法,其特征在于,所述根据所述特征提取规则获取所述历史测试信息与所述执行特征信息之间的执行差异特征信息,包括:根据所述特征提取规则从所述历史测试信息中获取对应的历史测试特征信息;对所述历史测试特征信息与所述执行特征信息进行差异性对比,得到对应的执行差异特征信息。5.根据权利要求4所述的程序错误信息识别方法,其特征在于,所述执行差异特征信息包括代码差异特征、编译差异特征及资源消耗差异特征,所述对所述历史测试特征信息与所述执行特征信息进行差异性对比,得到对应的执行差异特征信息,包括:
    获取所述执行特征信息中代码特征信息与所述历史测试特征信息中历史代码特征信息之间的差异特征值,得到代码差异特征;获取所述执行特征信息中编译特征信息与所述历史测试特征信息中历史编译特征信息之间的差值,得到编译差异特征;获取所述执行特征信息中资源消耗信息与所述历史测试特征信息中历史资源消耗信息之间的差值,得到资源消耗差异特征。6.根据权利要求1所述的程序错误信息识别方法,其特征在于,所述关联分析模型中包括报错信息数据库、关联分析神经网络及关联阈值,所述根据预置的关联分析模型对所述报错信息与所述执行差异特征信息进行关联分析,以得到是否存在关联的分析结果,包括:根据所述报错信息数据库获取与所述报错信息对应的报错特征编码;将所述报错特征编码与所述执行差异特征信息同时输入所述关联分析神经网络进行关联分析,以得到对应的关联系数;判断所述关联系数是否大于所述关联阈值,得到是否存在关联的分析结果。7.根据权利要求1所述的程序错误信息识别方法,其特征在于,所述获取所述待测试程序中与所述执行差异特征信息对应的代码差异信息反馈至所述用户终端之后,还包括:将所述代码差异信息上传至区块链中。8.一种程序错误信息识别装置,其特征在于,所述装置包括:程序测试单元,用于若接收到来自所述用户终端输入的待测试程序,根据预存的测试用例对所述待测试程序进行测试并判断所述测试用例执行过程是否出现报错信息;执行特征信息获取单元,用于若所述测试用例执行过程出现报错信息,根据预置的特征提取规则从所述测试用例的执行记录及所述待测试程序中获取与所述报错信息对应的执行特征信息;历史测试信息获取单元,用于获取预存的历史测试数据库中与所述待测试程序对应的历史测试信息;执行差异特征信息获取单元,用于根据所述特征提取规则获取所述历史测试信息与所述执行特征信息之间的执行差异特征信息;关联分析结果获取单元,用于根据预置的关联分析模型对所述报错信息与所述执行差异特征信息进行关联分析,以得到是否存在关联的分析结果;代码差异信息反馈单元,用于若所述分析结果为存在关联,获取所述待测试程序中与所述执行差异特征信息对应的代码差异信息反馈至所述用户终端。9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的程序错误信息识别方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的程序错误信息识别方法。

    技术总结
    本发明公开了程序错误信息识别方法、装置、设备及介质,方法包括:根据测试用例对待测试程序进行测试并判断是否出现报错信息,若出现报错信息则从测试用例的执行纪律及待测试应用程序中获取执行特征信息,获取与待测试程序对应的历史测试信息并提取与执行特征信息之间的执行差异特征信息,根据关联分析模型对报错信息与执行差异特征信息进行关联分析,若存在关联则获取与执行差异特征信息对应的代码差异信息反馈至用户终端。本发明属于智能决策技术领域,可对报错信息与执行差异特征信息进行关联分析,以获取报错信息是否代码差异之间存在关联性,可实现快速对程序错误信息进行识别,从而快速确定引起报错信息的程序代码的具体位置。具体位置。具体位置。


    技术研发人员:黎勤松
    受保护的技术使用者:未鲲(上海)科技服务有限公司
    技术研发日:2022.02.18
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-10019.html

    最新回复(0)