CN110245077A - 一种程序异常的响应方法及设备 - Google Patents
一种程序异常的响应方法及设备 Download PDFInfo
- Publication number
- CN110245077A CN110245077A CN201910430249.9A CN201910430249A CN110245077A CN 110245077 A CN110245077 A CN 110245077A CN 201910430249 A CN201910430249 A CN 201910430249A CN 110245077 A CN110245077 A CN 110245077A
- Authority
- CN
- China
- Prior art keywords
- program
- module
- anomalous event
- exception
- abnormal
- 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
- 230000004044 response Effects 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000002547 anomalous effect Effects 0.000 claims abstract description 120
- 230000008439 repair process Effects 0.000 claims abstract description 102
- 230000002159 abnormal effect Effects 0.000 claims abstract description 101
- 238000012360 testing method Methods 0.000 claims abstract description 59
- 238000012549 training Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 14
- 230000001960 triggered effect Effects 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 10
- 239000000284 extract Substances 0.000 claims description 8
- 241000208340 Araliaceae Species 0.000 claims description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 3
- 235000008434 ginseng Nutrition 0.000 claims description 3
- 238000005067 remediation Methods 0.000 abstract description 6
- 230000003993 interaction Effects 0.000 description 14
- 238000012423 maintenance Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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
-
- 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
Abstract
本发明适用于应用程序技术领域,提供了一种程序异常的响应方法及设备,包括:若检测到应用程序触发异常事件,则生成关于异常事件的程序异常报告;接收基于程序异常报告反馈的程序修复数据,通过程序修复数据调整应用程序中关于程序模块的源码数据;运行修复后的应用程序,并采集程序模块的运行参数;若运行参数在程序模块的额定参数范围内,则确定程序模块的关联模块,并生成用于测试程序模块以及关联模块的测试脚本;获取应用程序基于测试脚本输出的测试结果,若测试结果与预设的标准结果匹配,则识别异常事件已修复。本发明在接收到程序修复数据后对异常情况进行检测,提高了应用程序的修复效率,以及修复操作的准确性。
Description
技术领域
本发明属于应用程序技术领域,尤其涉及一种程序异常的响应方法及设备。
背景技术
当应用程序出现异常时,需要对该异常事件进行修复,并生成异常报告,以便开发人员可以根据异常报告对应用程序的异常情况进行修复,因此异常报告作为记录异常情况的载体,在异常修复的过程中起着重要的作用。现有的应用异常的响应技术,一般需要人工进行异常报告的撰写,并且在修复完毕后,系统无法自动对修复情况进行验证,从而大大降低了应用程序的修复效率。
发明内容
有鉴于此,本发明实施例提供了一种程序异常的响应方法及设备,以解决现有的应用异常的响应技术,一般需要人工进行异常报告的撰写,并且在修复完毕后,系统无法自动对修复情况进行验证,从而大大降低了应用程序的修复效率的问题。
本发明实施例的第一方面提供了一种程序异常的响应方法,包括:
若检测到应用程序触发异常事件,则生成关于所述异常事件的程序异常报告;所述程序异常报告记录有所述应用程序中触发所述异常事件的程序模块;
接收基于所述程序异常报告反馈的程序修复数据,通过所述程序修复数据调整所述应用程序中关于所述程序模块的源码数据;
运行修复后的所述应用程序,并采集所述程序模块的运行参数;
若所述运行参数在所述程序模块的额定参数范围内,则确定所述程序模块的关联模块,并生成用于测试所述程序模块以及所述关联模块的测试脚本;
获取所述应用程序基于所述测试脚本输出的测试结果,若所述测试结果与预设的标准结果匹配,则识别所述异常事件已修复。
本发明实施例的第二方面提供了一种程序异常的响应设备,包括:
异常事件检测单元,用于若检测到应用程序触发异常事件,则生成关于所述异常事件的程序异常报告;所述程序异常报告记录有所述应用程序中触发所述异常事件的程序模块;
异常事件修复单元,用于接收基于所述程序异常报告反馈的程序修复数据,通过所述程序修复数据调整所述应用程序中关于所述程序模块的源码数据;
运行参数采集单元,用于运行修复后的所述应用程序,并采集所述程序模块的运行参数;
测试脚本创建单元,用于若所述运行参数在所述程序模块的额定参数范围内,则确定所述程序模块的关联模块,并生成用于测试所述程序模块以及所述关联模块的测试脚本;
异常修复识别单元,用于获取所述应用程序基于所述测试脚本输出的测试结果,若所述测试结果与预设的标准结果匹配,则识别所述异常事件已修复。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面的各个步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面的各个步骤。
实施本发明实施例提供的一种程序异常的响应方法及设备具有以下有益效果:
本发明实施例通过在检测到应用程序的异常事件时,自动定位异常模块,并根据异常模块以及异常事件生成程序异常报告,继而根据程序异常报告生成程序修复数据,通过程序修复数据对应用程序的异常事件进行修复;在修复完毕后,采集发生异常的程序模块的运行参数,判断程序模块是否能够正常运行;若能够正常运行,则生成关于程序模块以及与程序模块关联的其他模块的测试脚本,以判断本次修复是否对关联模块产生影响,进一步确保异常修复完成,实现了自动对应用程序的修复操作进行复检,提高了应用程序的修复操作的准确性。与现有的应用异常的响应技术相比,异常报告无需开发人员手动填写,在检测到异常事件时,能够直接采集相关的参数生成程序异常报告,并在接收到程序修复数据后对异常情况进行检测,提高了应用程序的修复效率,以及修复操作的准确性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的一种程序异常的响应方法的实现流程图;
图2是本发明第二实施例提供的一种程序异常的响应方法S102具体实现流程图;
图3是本发明第三实施例提供的一种程序异常的响应方法S101具体实现流程图;
图4是本发明第四实施例提供的一种程序异常的响应方法S101具体实现流程图;
图5是本发明第五实施例提供的一种程序异常的响应方法S104具体实现流程图;
图6是本发明一实施例提供的一种程序异常的响应设备的结构框图;
图7是本发明另一实施例提供的一种终端设备的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过在检测到应用程序的异常事件时,自动定位异常模块,并根据异常模块以及异常事件生成程序异常报告,继而根据程序异常报告生成程序修复数据,通过程序修复数据对应用程序的异常事件进行修复;在修复完毕后,采集发生异常的程序模块的运行参数,判断程序模块是否能够正常运行;若能够正常运行,则生成关于程序模块以及与程序模块关联的其他模块的测试脚本,以判断本次修复是否对关联模块产生影响,进一步确保异常修复完成,实现了自动对应用程序的修复操作进行复检,提高了应用程序的修复操作的准确性,解决了现有的应用异常的响应技术,一般需要人工进行异常报告的撰写,并且在修复完毕后,系统无法自动对修复情况进行验证,从而大大降低了应用程序的修复效率的问题。
在本发明实施例中,流程的执行主体为终端设备。该终端设备包括但不限于:服务器、计算机、智能手机以及平板电脑等能够执行程序异常的响应操作的设备。图1示出了本发明第一实施例提供的程序异常的响应方法的实现流程图,详述如下:
在S101中,若检测到应用程序触发异常事件,则生成关于所述异常事件的程序异常报告;所述程序异常报告记录有所述应用程序中触发所述异常事件的程序模块。
在本实施例中,终端设备可以为安装有应用程序的用户终端,在该情况下,终端设备可以获取本地设备内的设备运行参数,若检测到设备运行参数超过预设的额定参数范围,则识别当前设备内存在异常情况,并获取当前正在运行的程序列表,选取资源占用率最高的一个应用程序作为异常应用程序,并识别该异常的应用程序触发有异常事件,并执行S101的操作。可选地,终端设备可以设置有多个异常事件,每个异常事件配置有对应的异常条件。终端设备可以将获取得到的运行参数与各个异常条件进行比对,将匹配的异常条件对应的异常事件作为本次触发的异常事件。
可选地,在本实施例中,终端设备还可以部署于应用程序对应的上位服务器内。安装有应用程序的各个用户终端将本地生成的异常日志发送给上位服务器,该异常日志记录有触发的异常事件以及用户终端的终端标识。终端设备在接收到用户终端反馈的异常日志后,则识别该应用程序触发了异常事件,并执行程序异常的响应操作。优选地,为了减少不必要的异常响应,提高响应效率,终端设备会根据各个异常日志的异常类型,并统计各个异常类型的触发次数,若检测到某一异常类型的触发次数大于预设的触发阈值,则对该异常类型的异常事件进行异常响应。
在本实施例中,终端设备在检测到应用程序触发了异常事件后,需要定位发生异常的程序模块,并获取该程序模块的模块标识,并将该程序模块导入到程序异常报告中,以便管理员根据程序异常报告确定异常原因,并对异常事件进行修复。可选地,确定发生异常事件的程序模块的方式可以为:终端设备获取该应用程序当前的操作界面,确定所述操作界面所述的程序模块,将该程序模块识别为触发异常事件的程序模块。或者,终端设备获取应用程序中当前运行的模块列表,并根据各个模型列表当前的资源占用率,选取资源占用率超过预设的额定阈值的程序模块作为触发异常事件的程序模块。
在S102中,接收基于所述程序异常报告反馈的程序修复数据,通过所述程序修复数据调整所述应用程序中关于所述程序模块的源码数据。
在本实施例中,终端设备可以将生成的程序异常报告发送给应用程序的维护人员的终端,维护人员可以根据程序报告中记录有的程序模块,从应用程序的源码文件中提取该程序模块的模块数据,定位异常原因,并生成用于修复该异常事件的程序修复数据,并将该程序修复数据返回给终端设备。可选地,若终端设备设置有异常修复算法,则终端设备可以将程序异常报告导入到异常修复算法中,通过异常修复算法输出程序修复数据。
可选地,在本实施例中,终端设备可以为每个程序异常报告设置修复期限。若检测到当前时刻到达所述修复期限,且未接收到程序异常报告的程序修复数据,则会执行告警操作,例如向维护人员的终端发送告警信息,或者向维护人员的审核员工的终端发送任务催收信息,以通过审核员工对本次异常修复任务进行监督,提高异常修复效率。
在本实施例中,终端设备获取应用程序的程序文件,并根据程序模块的模块标识,从程序文件中提取该模型标识关联的数据块,将接收到的程序修复数据替换该程序模块的数据库,从而实现对该程序模块的异常事件进行修复。优选地,终端设备可以将接收到的程序修复数据都到程序异常报告,并将程序异常报告的修复状态设置有为待验证状态。终端设备可以将各个程序异常报告存储于异常报告数据库内,维护人员可以通过该异常报告数据库提取每一次发生异常事件的程序异常报告,方便对异常情况进行管理以及提高修复数据的生成效率。
在S103中,运行修复后的所述应用程序,并采集所述程序模块的运行参数。
在本实施例中,终端设备对应用程序中存在异常的程序模块进行修复后,需要复核异常事件是否已被修复,因此终端设备会运行修复后的应用程序,并激活触发异常事件的程序模块,并获取该程序模块在运行过程的运行参数,通过运行参数判断应用程序的程序模块是否被修复完成。
在本实施例中,若检测到该运行参数在额定参数范围内,则判断该程序模块可以正常运行,但程序模块在运行的过程中会与其他程序模块存在数据交互,需要进一步确定数据交互功能是否存在异常,因此会执行S104的操作;反之,若检测到该运行参数在额定参数范围外,则判断本次异常事件的修复操作失败,生成修复异常信息,以便应用程序的维护人员重新生成程序修复数据。
在S104中,若所述运行参数在所述程序模块的额定参数范围内,则确定所述程序模块的关联模块,并生成用于测试所述程序模块以及所述关联模块的测试脚本。
在本实施例中,终端设备可以获取应用程序的程序框架,将与程序模块存在数据交互的其他模型识别为程序模块的关联模块。终端设备获取程序模块与关联模型之间的数据交互类型以及交互触发条件,基于数据交互类型以及交互触发条件生成测试脚本。
可选地,若存在多个数据交互类型以及交互触发条件,则可以分别为每一个数据交互类型以及交互触发条件配置一个测试脚本。当然,程序模块存在多个关联模块,则为每个关联模块配置对应数量的测试脚本。通过测试脚本可以确定程序模块与关联模型之间的交互操作是否正常,从而判断本次数据修复操作是否对关联模型之间的交互存在影响,从而能够进一步提高了修复检测的准确性。
在S105中,获取所述应用程序基于所述测试脚本输出的测试结果,若所述测试结果与预设的标准结果匹配,则识别所述异常事件已修复。
在本实施例中,终端设备调用应用程序运行上述生成的测试脚本,该测试脚本中设置有测试数据,通过程序模块以及关联程序模块对该测试数据进行输出,会输出关于测试数据的测试结果。终端设备会检测该测试结果与测试脚本预设的标准结果是否匹配,若该测试结果与标准结果不匹配,则表示程序模块与关联模型之间的数据交互功能存在异常,会识别本次异常事件的修复操作失败,并生成异常修复失败信息,以便维护人员重新对该异常事件进行修复响应;反之,若该测试结果与标准结果匹配,则表示该程序模块与关联模块之间的数据交互正常,因此程序模块可以正常运行,且与程序模块存在关联关系的其他关联模块也能够正常运行,此时会识别该异常事件已修复。
可选地,在本实施例中,终端设备在识别了异常事件已修复完成后,可以将程序异常报告的修复状态设置为已修复,并将已修复的程序异常报告生成程序修复样本,通过各个程序修复样本对程序修复算法进行训练学习,从而能够提高程序修复算法的修复准确性。
以上可以看出,本发明实施例提供的一种程序异常的响应方法通过在检测到应用程序的异常事件时,自动定位异常模块,并根据异常模块以及异常事件生成程序异常报告,继而根据程序异常报告生成程序修复数据,通过程序修复数据对应用程序的异常事件进行修复;在修复完毕后,采集发生异常的程序模块的运行参数,判断程序模块是否能够正常运行;若能够正常运行,则生成关于程序模块以及与程序模块关联的其他模块的测试脚本,以判断本次修复是否对关联模块产生影响,进一步确保异常修复完成,实现了自动对应用程序的修复操作进行复检,提高了应用程序的修复操作的准确性。与现有的应用异常的响应技术相比,异常报告无需开发人员手动填写,在检测到异常事件时,能够直接采集相关的参数生成程序异常报告,并在接收到程序修复数据后对异常情况进行检测,提高了应用程序的修复效率,以及修复操作的准确性。
图2示出了本发明第二实施例提供的一种程序异常的响应方法S102的具体实现流程图。参见图2,相对于图1所述实施例,本实施例提供的一种程序异常的响应方法S102包括:S1021~S1024,具体详述如下:
进一步地,所述接收基于所述程序异常报告反馈的程序修复数据,通过所述程序修复数据调整所述应用程序中关于所述程序模块的源码数据,包括:
在S1021中,从历史修复数据库中提取关于所述程序模块的至少一个历史修复记录;所述历史修复数据包含用于修复历史异常事件的历史修复数据。
在本实施例中,终端设备可以从历史修复数据库中提取历史修复数据对智能修复模型进行训练学习,自动生成程序修复数据。基于此,终端设备在每一次修复操作完成后,可以将包含有已修复成功的程序修复算法导入到程序异常报告内,并把已修复成功的各个程序异常报告存储于历史修复数据库内。由于程序异常报告记录有异常事件以及触发该异常事件的程序模块,因此终端设备可以根据本次触发异常事件的程序模块标识,从历史修复数据库内提取与该程序模块标识相匹配的历史修复记录,即历史的程序修复报告,继而从历史修复记录中提取得到用于修复历史异常事件的历史修复数据。
可选地,在本实施例中,若该程序模块并不存在对应的历史修复记录,终端设备可以获取程序模块的程序代码,与其他应用程序的程序代码进行匹配,选取出匹配度较高的其他应用程序作为关联应用程序,并从关联应用程序的历史修复数据库中查询是否包含该程序模块对应的历史修复数据。由于部分程序模块可以在不同的应用程序中复用,即该程序模块具有相似或相同的开发模板,因此,终端设备可以从其他应用程序的历史修复记录提取历史修复数据,并根据历史修复数据对智能修复算法进行调整。
在1022中,为每个所述历史修复记录创建训练样本;其中,所述历史异常事件作为所述训练样本的输入参量,所述历史修复数据作为所述训练样本的输出参量。
在本实施例中,终端设备将每个历史修复记录作为训练样本。由于智能修复模型是将触发的异常事件作为输入参数,输出用于修复异常事件的异常修复数据,因此基于上述输入参量与输出参量的对应关系,终端设备在生成训练样本时,会将历史异常事件作为所述训练样本的输入参量,将历史修复数据作为所述训练样本的输出参量。
在S1023中,基于所述训练样本对预设的智能修复模型进行调整,生成用于所述程序模型的程序修复模型。
在本实施例中,终端设备将创建得到各个训练样本对智能修复模型进行训练学习,调整智能修复模型内各个节点的参数值,使得智能修复模型的输出结果收敛且损失函数的取值小于预设的调整阈值,即基于历史异常事件输出的训练结果与历史修复数据之间的匹配率大于预设的阈值,则识别该智能修复模型以调整完毕,并将调整后的智能修复模型识别为该程序模型的程序修复模型。
在S1024中,将所述应用程序的异常事件导入到所述程序修复模型,输出用于修复所述异常事件的所述程序修复数据。
在本实施例中,终端设备可以将本次检测得到的异常事件导入到程序修复模型,由于程序修复模型已经调整为用于修复该程序模块的异常事件的模式,因此可以得到用于修复该异常事件的程序修复数据。
在本发明实施例中,通过获取程序模块的历史修复记录,从而对智能修复模型进行训练学习,输出关于程序模块的程序修复模型,实现了异常事件的自动修复,提高了修复效率。
图3示出了本发明第三实施例提供的一种程序异常的响应方法S101的具体实现流程图。参见图3,相对于图1所述的实施例,本实施例提供的一种程序异常的响应方法S101包括:S1011~S1013,具体详述如下:
进一步地,所述若检测到应用程序触发异常事件,则生成关于所述异常事件的程序异常报告,包括:
在S1011中,获取所述应用程序中各个当前启动的模块的资源占用量。
在本实施例中,终端设备在应用程序运行后,可以创建一条应用程序的监控线程,通过该监控线程获取当前运行的各个应用程序的资源占用情况。该监控线程会以预设的检测频率获取当前时刻各个应用程序的资源占用率,若检测到某一应用程序的资源占用率超过预设的正常占用范围,则识别该应用程序可能存在异常事件,需要进一步进行异常事件的确认。因此,会获取该应用程序当前启动的模块列表,以及该模块列表内各个已启动模块的资源占用率。
在S1012中,若检测到任一所述当前启动的模块的所述资源占用率大于预设的额定占用阈值,则获取所述资源占用率大于所述额定占用阈值的异常占用时长。
在本实施例中,终端设备若检测到存在一个已启动模块的资源占用率大于预设的额定占用阈值,则表示该已启动模块可能存在异常情况,但部分程序模块在初次启动时,可能会占用较多的资源来对程序模块进行初始化,以及参数配置,这种情况持续时间较短,属于正常的模块启动的资源占用,因此为了区分是正常的瞬时资源占用或是程序模块异常,终端设备会记录该资源占用率雨大额定占用阈值的程序模块的占用时长。
在本实施例中,若该异常占用时长小于预设的占用时长阈值,则表示该程序模块属于正常占用情况,并不判定此时触发了异常事件;反之,若异常占用时长大于占用时长阈值,则执行S1013的操作。
在S1013中,若所述异常占用时长大于预设的占用时长阈值,则识别所述应用程序触发所述异常事件,并将所述当前启动的模块识别为触发所述异常事件的程序模块。
在本实施例中,由于程序模块长时间占用终端设备的大量硬件资源,可能该应用程序处于宕机或处理进入死循环等异常状态,从而导致资源占用率超出额定水平,此时会判定应用程序触发了异常事件,并执行异常响应操作。
在本发明实施例中,通过获取应用程序中各个程序模块的运行参数,从而能够识别得到异常事件以及触发异常事件的程序模块,实现了异常事件自动识别,提高了异常响应效率。
图4示出了本发明第四实施例提供的一种程序异常的响应方法S101的具体实现流程图。参见图4,相对于图1至3所述实施例,本实施例提供的一种程序异常的响应方法S101包括:S401~S403,具体详述如下:
进一步地,所述若检测到应用程序触发异常事件,则生成关于所述异常事件的程序异常报告,包括:
在S401中,获取关于所述异常事件的异常数据,并对所述异常数据进行解析,提取所述异常数据的异常关键词。
在本实施例中,终端设备可以自动生成管理员可读的程序异常报告。基于此,终端设备需要确定该异常事件的异常信息,因此可以从异常事件提取异常数据,异常数据具体为应用程序发生异常情况时输出的程序数据,和/或触发异常事件的程序模块的源码数据。终端设备可以根据预设的多个报告维度,从异常数据中提取得到异常关键词,该异常维度包括但不限于:异常触发时间、异常模块标识、异常事件情况描述以及异常触发原因等。
在本实施例中,终端设备可以为每个异常维度配置了对应的异常关键词库,终端设备对异常数据进行语义分析,确定该异常数据中是否包含异常关键词库内的异常关键词,若存在,则识别匹配的异常关键词为异常数据在该预设维度的异常关键词。当然,终端设备还可以判断异常数据中各个字符之间的关联度,选取关联度大于预设关联阈值的词组作为候选关键词,并基于各个候选关键词的词语属性,选取出异常关键词。
在402中,从预设的语料库中提取各个所述异常关键词的异常描述语段。
在本实施例中,终端设备为每个异常关键词配置有异常描述语段,从而能够通过异常描述语段对异常关键词进行解释,从而能够提高程序异常报告的可读性,能够方便应用程序的维护人员快速定位异常原因。
在S403中,将各个所述异常描述语段导入到异常报告模板,生成所述程序异常报告。
在本实施例中,终端设备根据各个异常关键词所述的预设维度,确定该异常关键词在异常报告模板中的显示位置,并将该异常关键词对应的异常描述语段导入到异常报告模板中预设的显示位置,对各个异常描述语段均执行上述操作,从而生成了能够便于管理员阅读的程序异常报告。
在本发明实施例中,终端设备通过对异常数据进行解析,确定出异常关键词,并获取异常关键词的异常描述语段,从而能够生成可读性较强的程序异常报告,提高了异常定位的速度。
图5示出了本发明第五实施例提供的一种程序异常的响应方法S104的具体实现流程图。参见图5,相对于图1至图3所述实施例,本实施例提供的一种程序异常的响应方法S104包括:S1041~S1042,具体详述如下:
进一步地,所述若所述运行参数在所述程序模块的额定参数范围内,则确定所述程序模块的关联模块,并生成用于测试所述程序模块以及所述关联模块的测试脚本,包括:
在S1041中,获取所述程序模块的第一程序接口列表,以及所述应用程序中除所述程序模块外的候选模块的第二程序接口列表。
在本实施例中,终端设备会对应用程序的程序文件进行解析,获取得的触发异常事件的程序模块的源码数据,从而确定该源码数据中包含的程序接口,生成关于程序模块的第一程序接口列表。同样地,终端设备还可以获取应用程序中除程序模块外的其他程序模块,即候选模块的源码数据,确定候选源码数据中包含的程序接口,生成关于候选模块的第二程序接口列表。
在S1042中,若所述候选模块的第二程序接口列表中的任一接口记录于所述第一程序接口列表内,则识别所述候选模块为所述程序模块的所述关联模块。
在本实施例中,通过比对第一程序接口列表中的接口名以及第二程序接口列表的接口名,判断第一程序接口列表以及第二程序接口列表中是否存在相同的程序接口,若存在,则表示两个程序模块之间存在数据交互,因此可以是被该候选模块为程序模块的关联模块。
在本发明实施例中,通过识别各个程序模块的程序接口,将存在相同程序接口的候选模块作为程序模块的关联模块,能够自动进行关联模块的识别操作,无需人工进行手动配置,提高了关联模块的识别速率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图6示出了本发明一实施例提供的一种程序异常的响应设备的结构框图,该程序异常的响应设备包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1与图1所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。
参见图6,所述程序异常的响应设备包括:
异常事件检测单元61,用于若检测到应用程序触发异常事件,则生成关于所述异常事件的程序异常报告;所述程序异常报告记录有所述应用程序中触发所述异常事件的程序模块;
异常事件修复单元62,用于接收基于所述程序异常报告反馈的程序修复数据,通过所述程序修复数据调整所述应用程序中关于所述程序模块的源码数据;
运行参数采集单元63,用于运行修复后的所述应用程序,并采集所述程序模块的运行参数;
测试脚本创建单元64,用于若所述运行参数在所述程序模块的额定参数范围内,则确定所述程序模块的关联模块,并生成用于测试所述程序模块以及所述关联模块的测试脚本;
异常修复识别单元65,用于获取所述应用程序基于所述测试脚本输出的测试结果,若所述测试结果与预设的标准结果匹配,则识别所述异常事件已修复。
可选地,所述异常事件修复单元62,包括:
历史修复记录获取单元,用于从历史修复数据库中提取关于所述程序模块的至少一个历史修复记录;所述历史修复数据包含用于修复历史异常事件的历史修复数据;
训练样本创建单元,用于为每个所述历史修复记录创建训练样本;其中,所述历史异常事件作为所述训练样本的输入参量,所述历史修复数据作为所述训练样本的输出参量;
程序修复模块训练单元,用于基于所述训练样本对预设的智能修复模型进行调整,生成用于所述程序模型的程序修复模型;
程序修复数据输出单元,用于将所述应用程序的异常事件导入到所述程序修复模型,输出用于修复所述异常事件的所述程序修复数据。
可选地,所述异常事件检测单元61,包括:
资源占用量获取单元,用于获取所述应用程序中各个当前启动的模块的资源占用量;
异常占用时长统计单元,用于若检测到任一所述当前启动的模块的所述资源占用率大于预设的额定占用阈值,则获取所述资源占用率大于所述额定占用阈值的异常占用时长;
异常事件判定单元,用于若所述异常占用时长大于预设的占用时长阈值,则识别所述应用程序触发所述异常事件,并将所述当前启动的模块识别为触发所述异常事件的程序模块。
可选地,所述异常事件检测单元61,包括:
异常关键词识别单元,用于获取关于所述异常事件的异常数据,并对所述异常数据进行解析,提取所述异常数据的异常关键词;
异常描述语段选取单元,用于从预设的语料库中提取各个所述异常关键词的异常描述语段;
程序异常报告创建单元,用于将各个所述异常描述语段导入到异常报告模板,生成所述程序异常报告。
可选地,所述测试脚本创建单元64包括:
程序接口列表获取单元,用于获取所述程序模块的第一程序接口列表,以及所述应用程序中除所述程序模块外的候选模块的第二程序接口列表;
关联模块识别单元,用于若所述候选模块的第二程序接口列表中的任一接口记录于所述第一程序接口列表内,则识别所述候选模块为所述程序模块的所述关联模块。
因此,本发明实施例提供的程序异常的响应设备同样可以无需开发人员手动填写程序异常报告,在检测到异常事件时,能够直接采集相关的参数生成程序异常报告,并在接收到程序修复数据后对异常情况进行检测,提高了应用程序的修复效率,以及修复操作的准确性。
图7是本发明另一实施例提供的一种终端设备的示意图。如图7所示,该实施例的终端设备7包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机程序72,例如程序异常的响应程序。所述处理器70执行所述计算机程序72时实现上述各个程序异常的响应方法实施例中的步骤,例如图1所示的S101至S105。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各单元的功能,例如图6所示模块61至65功能。
示例性的,所述计算机程序72可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述终端设备7中的执行过程。例如,所述计算机程序72可以被分割成异常事件检测单元、异常事件修复单元、运行参数采集单元、测试脚本创建单元以及异常修复识别单元,各单元具体功能如上所述。
所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是终端设备7的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种程序异常的响应方法,其特征在于,包括:
若检测到应用程序触发异常事件,则生成关于所述异常事件的程序异常报告;所述程序异常报告记录有所述应用程序中触发所述异常事件的程序模块;
接收基于所述程序异常报告反馈的程序修复数据,通过所述程序修复数据调整所述应用程序中关于所述程序模块的源码数据;
运行修复后的所述应用程序,并采集所述程序模块的运行参数;
若所述运行参数在所述程序模块的额定参数范围内,则确定所述程序模块的关联模块,并生成用于测试所述程序模块以及所述关联模块的测试脚本;
获取所述应用程序基于所述测试脚本输出的测试结果,若所述测试结果与预设的标准结果匹配,则识别所述异常事件已修复。
2.根据权利要求1所述的响应方法,其特征在于,所述接收基于所述程序异常报告反馈的程序修复数据,通过所述程序修复数据调整所述应用程序中关于所述程序模块的源码数据,包括:
从历史修复数据库中提取关于所述程序模块的至少一个历史修复记录;所述历史修复数据包含用于修复历史异常事件的历史修复数据;
为每个所述历史修复记录创建训练样本;其中,所述历史异常事件作为所述训练样本的输入参量,所述历史修复数据作为所述训练样本的输出参量;
基于所述训练样本对预设的智能修复模型进行调整,生成用于所述程序模型的程序修复模型;
将所述应用程序的异常事件导入到所述程序修复模型,输出用于修复所述异常事件的所述程序修复数据。
3.根据权利要求1所述的响应方法,其特征在于,所述若检测到应用程序触发异常事件,则生成关于所述异常事件的程序异常报告,包括:
获取所述应用程序中各个当前启动的模块的资源占用量;
若检测到任一所述当前启动的模块的所述资源占用率大于预设的额定占用阈值,则获取所述资源占用率大于所述额定占用阈值的异常占用时长;
若所述异常占用时长大于预设的占用时长阈值,则识别所述应用程序触发所述异常事件,并将所述当前启动的模块识别为触发所述异常事件的程序模块。
4.根据权利要求1-3任一项所述的响应方法,其特征在于,所述若检测到应用程序触发异常事件,则生成关于所述异常事件的程序异常报告,包括:
获取关于所述异常事件的异常数据,并对所述异常数据进行解析,提取所述异常数据的异常关键词;
从预设的语料库中提取各个所述异常关键词的异常描述语段;
将各个所述异常描述语段导入到异常报告模板,生成所述程序异常报告。
5.根据权利要求1-3任一项所述的响应方法,其特征在于,所述若所述运行参数在所述程序模块的额定参数范围内,则确定所述程序模块的关联模块,并生成用于测试所述程序模块以及所述关联模块的测试脚本,包括:
获取所述程序模块的第一程序接口列表,以及所述应用程序中除所述程序模块外的候选模块的第二程序接口列表;
若所述候选模块的第二程序接口列表中的任一接口记录于所述第一程序接口列表内,则识别所述候选模块为所述程序模块的所述关联模块。
6.一种程序异常的响应设备,其特征在于,包括:
异常事件检测单元,用于若检测到应用程序触发异常事件,则生成关于所述异常事件的程序异常报告;所述程序异常报告记录有所述应用程序中触发所述异常事件的程序模块;
异常事件修复单元,用于接收基于所述程序异常报告反馈的程序修复数据,通过所述程序修复数据调整所述应用程序中关于所述程序模块的源码数据;
运行参数采集单元,用于运行修复后的所述应用程序,并采集所述程序模块的运行参数;
测试脚本创建单元,用于若所述运行参数在所述程序模块的额定参数范围内,则确定所述程序模块的关联模块,并生成用于测试所述程序模块以及所述关联模块的测试脚本;
异常修复识别单元,用于获取所述应用程序基于所述测试脚本输出的测试结果,若所述测试结果与预设的标准结果匹配,则识别所述异常事件已修复。
7.根据权利要求6所述的响应设备,其特征在于,所述异常事件修复单元,包括:
历史修复记录获取单元,用于从历史修复数据库中提取关于所述程序模块的至少一个历史修复记录;所述历史修复数据包含用于修复历史异常事件的历史修复数据;
训练样本创建单元,用于为每个所述历史修复记录创建训练样本;其中,所述历史异常事件作为所述训练样本的输入参量,所述历史修复数据作为所述训练样本的输出参量;
程序修复模块训练单元,用于基于所述训练样本对预设的智能修复模型进行调整,生成用于所述程序模型的程序修复模型;
程序修复数据输出单元,用于将所述应用程序的异常事件导入到所述程序修复模型,输出用于修复所述异常事件的所述程序修复数据。
8.根据权利要求6所述的响应设备,其特征在于,所述异常事件检测单元,包括:
资源占用量获取单元,用于获取所述应用程序中各个当前启动的模块的资源占用量;
异常占用时长统计单元,用于若检测到任一所述当前启动的模块的所述资源占用率大于预设的额定占用阈值,则获取所述资源占用率大于所述额定占用阈值的异常占用时长;
异常事件判定单元,用于若所述异常占用时长大于预设的占用时长阈值,则识别所述应用程序触发所述异常事件,并将所述当前启动的模块识别为触发所述异常事件的程序模块。
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时如权利要求1至5任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910430249.9A CN110245077A (zh) | 2019-05-22 | 2019-05-22 | 一种程序异常的响应方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910430249.9A CN110245077A (zh) | 2019-05-22 | 2019-05-22 | 一种程序异常的响应方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110245077A true CN110245077A (zh) | 2019-09-17 |
Family
ID=67884790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910430249.9A Pending CN110245077A (zh) | 2019-05-22 | 2019-05-22 | 一种程序异常的响应方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110245077A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158942A (zh) * | 2019-12-17 | 2020-05-15 | 珠海格力电器股份有限公司 | 故障处理数据的验证方法及装置 |
CN113434406A (zh) * | 2021-06-24 | 2021-09-24 | 青岛海尔科技有限公司 | 功能测试方法和装置、存储介质及电子设备 |
CN114257534A (zh) * | 2020-09-24 | 2022-03-29 | 北京小米移动软件有限公司 | 测试结果处理方法、装置、系统及存储介质 |
CN115115466A (zh) * | 2022-08-29 | 2022-09-27 | 中航信移动科技有限公司 | 一种事件请求的响应方法、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255704A (zh) * | 2017-11-07 | 2018-07-06 | 中国平安人寿保险股份有限公司 | 一种脚本调用事件的异常响应方法及其终端 |
CN109240924A (zh) * | 2018-09-03 | 2019-01-18 | 中国平安人寿保险股份有限公司 | 一种应用程序的测试方法及设备 |
CN109376069A (zh) * | 2018-09-03 | 2019-02-22 | 中国平安人寿保险股份有限公司 | 一种测试报告的生成方法及设备 |
WO2019047071A1 (zh) * | 2017-09-06 | 2019-03-14 | 富璟科技(深圳)有限公司 | 一种数据库故障的响应方法及其终端 |
CN109491860A (zh) * | 2018-10-17 | 2019-03-19 | 深圳壹账通智能科技有限公司 | 应用程序的异常检测方法、终端设备及介质 |
-
2019
- 2019-05-22 CN CN201910430249.9A patent/CN110245077A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019047071A1 (zh) * | 2017-09-06 | 2019-03-14 | 富璟科技(深圳)有限公司 | 一种数据库故障的响应方法及其终端 |
CN108255704A (zh) * | 2017-11-07 | 2018-07-06 | 中国平安人寿保险股份有限公司 | 一种脚本调用事件的异常响应方法及其终端 |
CN109240924A (zh) * | 2018-09-03 | 2019-01-18 | 中国平安人寿保险股份有限公司 | 一种应用程序的测试方法及设备 |
CN109376069A (zh) * | 2018-09-03 | 2019-02-22 | 中国平安人寿保险股份有限公司 | 一种测试报告的生成方法及设备 |
CN109491860A (zh) * | 2018-10-17 | 2019-03-19 | 深圳壹账通智能科技有限公司 | 应用程序的异常检测方法、终端设备及介质 |
Non-Patent Citations (1)
Title |
---|
魏松杰;吴高翔;罗娜;时召伟;周紫阳;: "DroidBet:事件驱动的Android应用网络行为的自动检测系统", 通信学报, no. 05 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158942A (zh) * | 2019-12-17 | 2020-05-15 | 珠海格力电器股份有限公司 | 故障处理数据的验证方法及装置 |
CN114257534A (zh) * | 2020-09-24 | 2022-03-29 | 北京小米移动软件有限公司 | 测试结果处理方法、装置、系统及存储介质 |
CN113434406A (zh) * | 2021-06-24 | 2021-09-24 | 青岛海尔科技有限公司 | 功能测试方法和装置、存储介质及电子设备 |
CN113434406B (zh) * | 2021-06-24 | 2023-06-16 | 青岛海尔科技有限公司 | 功能测试方法和装置、存储介质及电子设备 |
CN115115466A (zh) * | 2022-08-29 | 2022-09-27 | 中航信移动科技有限公司 | 一种事件请求的响应方法、存储介质及电子设备 |
CN115115466B (zh) * | 2022-08-29 | 2022-11-11 | 中航信移动科技有限公司 | 一种事件请求的响应方法、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10901727B2 (en) | Monitoring code sensitivity to cause software build breaks during software project development | |
CN110245077A (zh) | 一种程序异常的响应方法及设备 | |
US11294754B2 (en) | System and method for contextual event sequence analysis | |
CN108108297A (zh) | 自动化测试的方法和装置 | |
CN109947646A (zh) | 接口测试方法、装置、计算机设备和存储介质 | |
CN110046073B (zh) | 一种日志采集方法及装置、设备、存储介质 | |
CN109815991A (zh) | 机器学习模型的训练方法、装置、电子设备及存储介质 | |
CN109840157A (zh) | 故障诊断的方法、装置、电子设备和存储介质 | |
CN111611100B (zh) | 交易故障检测方法、装置、计算设备以及介质 | |
CN111897724B (zh) | 一种适用于云平台的自动化测试方法及装置 | |
CN106406858B (zh) | 一种基于配置文件的流式统计定义及运行方法 | |
CN103678124B (zh) | 基于持续集成环境的视频监控平台自动测试方法及装置 | |
CN105868097B (zh) | 系统测试方法及其装置 | |
CN109491860A (zh) | 应用程序的异常检测方法、终端设备及介质 | |
CN107451040A (zh) | 故障原因的定位方法、装置及计算机可读存储介质 | |
US11449488B2 (en) | System and method for processing logs | |
CN109684847A (zh) | 脚本漏洞的自动修复方法、装置、设备及存储介质 | |
CN111552633A (zh) | 接口的异常调用测试方法、装置、计算机设备及存储介质 | |
CN109376069A (zh) | 一种测试报告的生成方法及设备 | |
CN112650688A (zh) | 自动化回归测试方法、关联设备以及计算机程序产品 | |
CN107168844B (zh) | 一种性能监控的方法及装置 | |
CN104794013B (zh) | 定位系统运行状态、建立系统运行状态模型的方法及装置 | |
US10757402B2 (en) | Camera certification for video surveillance systems | |
CN107679423A (zh) | 分区完整性检查方法及装置 | |
CN116756021A (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 |