CN115185806A - 一种应用代码诊断方法、装置和系统 - Google Patents

一种应用代码诊断方法、装置和系统 Download PDF

Info

Publication number
CN115185806A
CN115185806A CN202110363619.9A CN202110363619A CN115185806A CN 115185806 A CN115185806 A CN 115185806A CN 202110363619 A CN202110363619 A CN 202110363619A CN 115185806 A CN115185806 A CN 115185806A
Authority
CN
China
Prior art keywords
test
application code
application
test result
information
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
Application number
CN202110363619.9A
Other languages
English (en)
Inventor
黄翊凇
王宏铭
陈阳
蔡利群
韩冬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Group Guangxi Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Guangxi Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Group Guangxi Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202110363619.9A priority Critical patent/CN115185806A/zh
Publication of CN115185806A publication Critical patent/CN115185806A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version

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是本发明的一个实施例应用代码诊断方法的流程示意图之三;
图4是本发明的一个实施例应用代码诊断方法的流程示意图之四;
图5是本发明的一个实施例应用代码诊断方法的流程示意图之五;
图6是本发明的一个实施例应用代码诊断方法的流程示意图之六;
图7是本发明的一个实施例应用代码诊断方法的流程示意图之七;
图8是本发明的一个实施例应用代码诊断装置的结构示意图;
图9是本发明的一个实施例应用代码诊断系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请中附图编号仅用于区分方案中的各个步骤,不用于限定各个步骤的执行顺序,具体执行顺序以说明书中描述为准。
为了解决现有技术中的问题,本申请实施例提供一种应用代码诊断方法,执行主体可以是服务器、终端或其他电子设备,可以应用于网管、大数据、web应用、业务支撑等领域,本方案如图1所示,包括以下步骤:
S11:获取待诊断的应用代码的第二测试结果信息,所述应用代码用于将第一版本的目标应用更新至第二版本的目标应用,所述第二测试结果信息表征对所述第二版本的目标应用执行功能测试的结果。
本申请实施例中的目标应用可以是Android系统、IOS系统中的终端应用程序,也可以是web应用,或者,还可以是多人协作代码开发的各类系统中的应用等。
其中,第二测试结果信息可以包括预先对第二版本的目标应用执行功能测试的测试结果,该测试结果可以表明第二版本的目标应用的功能是否满足更新需求。举例而言,假设第一版本的目标应用无法对目标插件执行调用,应用代码用于将目标应用更新至能够调用目标插件的第二版本。那么,上述功能测试可以包括测试第二版本的目标应用是否能正常调用目标插件,如果能正常调用则生成表征第二版本的目标应用功能正常的第二测试结果。
S12:当所述第二测试结果信息中包括异常信息时,获取所述第一版本的目标应用的第一测试结果信息,所述第一测试结果信息表征对所述第一版本的目标应用执行功能测试的结果;
上述第一版本的目标应用、第一测试结果信息、第二版本的目标应用和第二测试结果信息可以预先存储在代码库和日志库中。举例而言,代码库可以用于存储上述目标应用的所有版本的代码,具体可以包含未发布、已回退、已发布的代码。日志库可以用于存储安装有目标应用的用户终端或测试终端的现网生产记录。可选的,日志库中可以存储与目标应用相关的每个接口之间请求的信息、办理请求返回码、请求发起时间、请求结束时间等。
上述第二测试结果信息中包括异常信息则表明第二版本的目标应用存在功能性异常。为了在随后的步骤中确定该第二版本的目标应用的异常是否是由用于更新的应用代码导致的,本步骤中获取执行更新前的第一版本的目标应用的第一测试结果信息。该第一测试结果信息可以是预先对第一版本的目标应用执行功能测试得到的。该第一测试结果信息可以存储在代码库或日志库中,本步骤中可以从代码库和日志库中查找并获取上述第一版本的目标应用的第一测试结果信息。
另外,本步骤中可以通过预先设定的监控分析模块来对上述第二测试结果信息进行检测,以判断所述第二测试结果信息中是否包括异常信息。还可以对检测到的异常信息进行收集、汇总与标记,以便随后的步骤中针对收集到的信息确定第二版本的目标应用的异常是否是由上述应用代码导致的。
S13:根据所述第二测试结果信息和所述第一测试结果信息,生成测试结果相似度。
其中,第二测试结果信息和第一测试结果信息分别表征第二版本的目标应用与第一版本的目标应用的功能是否正常。本步骤中可以根据第二测试结果信息与第一测试结果信息的报错量、报错类型等特征生成测试结果相似度。该测试结果相似度表征第二版本的目标应用的功能异常与第一版本的目标应用的功能异常的相似度。
S14:当所述测试结果相似度小于第一预设相似度阈值时,生成表征所述应用代码异常的第一诊断结果。
举例而言,如果目标应用从第一版本更新至第二版本后,功能异常的种类和数量均有明显增加,则可以确定增加的这些功能异常是由应用代码导致的,进而生成表征应用代码异常的第一诊断结果。如果更新后功能异常的种类和数量没有明显变化,则可以确定这些功能异常是第一版本的目标应用所表现的异常,并不是由于更新导致的。
上述第一预设相似度阈值可以根据实际需求预先人工设定,也可以根据历史数据自动生成。
本方案通过比对更新后应用的测试结果与更新前应用的测试结果确定更新后应用的异常是否是由应用代码导致的,有效提高诊断应用代码的效率,便于工作人员高效诊断目标应用的异常,提高修复效率。
可选的,本申请实施例提供的方案可以在发布上述应用代码之前执行,用以对应用代码进行诊断,以确定用于更新目标应用的应用代码是否有异常。如果诊断确定应用代码存在异常,则可以及时对应用代码进行修改,避免大范围发布应用代码导致大量用户的目标应用异常报错的问题。
基于上述实施例提供的方案,可选的,如图2所示,上述步骤S13之后,还包括:
S21:当所述测试结果相似度大于第二预设相似度阈值时,生成表征所述第一版本的目标应用异常的第二诊断结果,其中,第二预设相似度阈值大于或等于所述第一预设相似度阈值。
在本申请实施例中,第二预设相似度阈值可以根据实际需求预先人工设定,也可以根据历史数据自动生成。该第二预设相似度阈值大于或等于上述第一预设相似度阈值。
当所述测试结果相似度大于第二预设相似度阈值时,则表明第一版本的目标应用所表现的功能性异常与更新后的第二版本的目标应用所表现的功能性异常相接近。换言之,用于对目标应用执行更新的应用代码并没有导致目标应用出现更多新的异常。此时可以确定更新后的第二版本的目标应用的异常是更新前的版本中所具有的异常,进而生成表征第一版本的目标应用异常的第二诊断结果。
本申请实施例提供的方案能够高效诊断更新后的目标应用的异常是否是由用于更新的应用代码导致的。当更新前后的目标应用所表现的异常相接近时,生成表征更新前的第一版本的目标应用异常的第二诊断结果。便于工作人员高效获知第二版本的目标应用所表现的异常不是由应用代码导致的,进而可以针对于第一版本的目标应用的异常执行修复,有利于提高修复异常应用的效率。
基于上述实施例提供的方案,可选的,如图3所示,上述步骤S13,包括以下步骤:
S31:分别对所述第二测试结果信息中的第一错误日志和所述第一测试结果信息中的第一错误日志执行聚类,得到第二聚类结果和第一聚类结果。
具体的,可以基于预设的字段标识来识别测试结果信息中的错误日志,进而应用文字分析工具、大数据分析工具分别对第一错误日志和第二错误日志执行聚类。
举例而言,假设第一错误日志中包括多条错误日志,则可以根据报错的进程或页面、报错时间、报错的相关接口、报错的进程、报错的IP和端口等特征信息对上错误日志进行分类,得到第一聚类结果。通过聚类能将具有相同特征的错误日志分类汇总,便于比对第一错误日志与第二错误日志之间的差异,进而提高诊断应用代码的效率。
S32:根据所述第二聚类结果和所述第一聚类结果,生成所述测试结果相似度。
在本步骤中,可以根据错误日志的特征比对第二聚类结果和第一聚类结果,以生成测试结果相似度。比如,根据报错的种类和数量、报错的进程和页面来生成上述相似度。本步骤中生成的测试结果相似度能表征第一聚类结果和第二聚类结果的差异,间接表明了目标应用更新前与更新后报错的差异。
基于上述实施例提供的方案,可选的,如图4所示,上述步骤S32,包括:
S41:根据所述第二聚类结果和所述第一聚类结果中的以下至少一项特征生成特征相似度:发生报错的办理页面、发生报错的时间、发生报错的调用接口、发生报错的调用进程、发生报错时调用的服务器地址及端口地址。
本实施例中假设目标应用是web应用,上述发生报错的办理页面可以包括报错的web页面,该发生报错的办理页面能用于定位目标应用中导致错误的代码段。上述发生报错的时间可以包括目标应用发生报错或服务器接收到报错的时间段或时刻,该发生报错的时间能用于定位报错的进程。上述发生报错的调用接口、发生报错的调用进程、发生报错时调用的服务器地址及端口地址能用于提高定位导致错误的代码段的准确性。
S42:根据所述第二聚类结果和所述第一聚类结果的各项特征的特征相似度生成所述测试结果相似度。
当上述步骤生成的特征相似度有多个时,可以根据多个特征相似度与对应的权值计算生成测试结果相似度。该测试结果相似度表征第一版本和第二版本的目标应用的各项特征的差异性。
通过本申请实施例提供的方案,能根据第一聚类结果和第二聚类结果的各项特征的相似度生成测试结果相似度,使生成的测试结果相似度准确表征第二测试结果信息与第一测试结果信息的差异。
基于上述实施例提供的方案,可选的,如图5所示,在上述步骤S11之前,还包括:
S51:获取所述待诊断的应用代码和所述待诊断的应用代码的测试标准。
上述测试标准可以包括应用代码的功能作用、适用的平台或系统、硬件和软件的需求等。例如,该测试标准可以包括目标应用的版本为第一版本且可用存储空间大于M。
S52:将所述应用代码发送至包括至少一个测试设备的测试设备组,以指示所述测试设备组对所述应用代码执行功能测试并反馈所述待诊断的应用代码的测试结果信息,其中,所述测试设备组中的测试设备满足所述待诊断的应用代码的测试标准。
上述测试设备组中可以包括多个测试设备,用于执行测试的测试设备均满足上述应用代码的测试标准。举例而言,测试设备组中的各个设备均安装有第一版本的目标应用,且存储空间均大于M,以便对上述应用代码执行功能性测试,避免由于软件或硬件不兼容等原因导致功能性测试失败。
上述测试设备组也可以称为灰度环境,可以用于在大范围发布应用代码之前先对应用代码进行测试,查找应用代码的错误与漏洞,便于工作人员在大范围发布前进行修改。举例而言,该灰度环境可以是包含后台测试环境和前端生产环境的一套子系统,通过少量服务器面向小部分客户发布新版本代码,使该部分客户使用上述应用代码功能,并进行监控和测试。若应用代码在灰度发布环境运行未发现异常,则将应用代码拓展发布到发布环境。该发布环境可以指安装有目标应用的全部客户。若应用代码在灰度发布环境运行发现异常,则停止应用代码服务并回滚到更新前版本。进而可以根据灰度环境中目标应用的异常及时修正应用代码。
基于上述实施例提供的方案,可选的,如图6所示,本实施例提供的方案还包括:
S61:获取所述待诊断的应用代码的关联信息,所述关联信息包括以下至少一项:所述应用代码关联的终端信息、所述应用代码关联的用户信息、所述应用代码关联的软件信息、所述应用代码关联的通信地址信息;
在上述步骤S14之后,还包括:
S62:根据所述待诊断的应用代码的关联信息发送所述第一诊断结果。
本步骤在确定应用代码异常之后,根据该应用代码的关联信息发送第一诊断结果。具体的,上述关联信息可以包括与该应用代码相关联的开发团队、开发管理者等相关人员的账号信息。本步骤根据上述关联信息发送第一诊断结果,能使上述与应用代码相关联的人员及时获知应用的诊断结果,便于相关人员对异常的应用代码执行修正。
另外,上述待诊断的应用代码的关联信息也可以包括应用代码关联的终端信息,比如,对应用代码执行编辑修改的终端的地址信息,其中,终端可以是手机、智能穿戴设备、计算机、服务器或其他电子设备。上述终端信息可以通过多种形式体现,举例而言,终端信息可以是手机号码,上述第一诊断结果可以通过语音电话、短信等形式发送至手机,使应用代码的相关人员通过接听电话、查阅短信的形式获知应用代码异常的消息。
通过应用代码关联的终端信息,能及时将应用诊断结果发送至编辑修改过应用代码的终端,便于相关人员通过上述终端获知应用代码异常的消息,以便及时修正。
上述待诊断的应用代码的关联信息也可以包括应用代码关联的软件信息,比如,软件信息可以包括与应用代码关联的办公软件、聊天软件或其他通信软件的信息,通过关联的软件信息发送上述第一诊断结果,能便于应用代码的相关人员通过上述关联的软件及时获知应用代码异常的消息,尽快对应用代码进行处理。
另外,上述待诊断应用代码的关联信息也可以包括通信地址信息,该通信地址信息例如可以是电子终端的IP地址,也可以是应用代码关联的邮件地址等。通过上述通信地址信息能向该通信地址对应的相关人员发送应用代码异常的消息,以便及时修正。
除此之外,还可以通过其他便于相关人员查阅的形式发送上述第一诊断结果。举例而言,可以通过网页弹窗、应用程序提醒消息等形式执行发送,以便应用代码的相关人员能即时高效地查阅上述第一诊断结果,有利于提高修正应用代码异常的效率。
上述第一诊断结果中可以包括第一版本和第二版本的目标应用表征的异常的信息、第一测试结果信息、第二测试结果信息、测试结果相似度等。进一步的,也可以根据该第一诊断结果生成故障通知单,用以通知异常代码的相关人员及时进行代码修复。便于工作人员结合第一诊断结果高效定位应用代码的错误,有利于提高修复效率。
参见图7,下面,结合实际应用场景举例说明本方案的执行步骤:
第一步:开发人员通过工单流管理模块提交新代码发布申请单,申请向灰度环境发布新版本的代码,该工单至少包括工单的负责人或负责团队、上下级管理人员、挂靠的代码信息、对应的进程、对应的接口模块信息。
第二步:上级审批人员进行审批,如果审批同意则工单进入下一步,如果不同意则退回工单结束流程。
本步骤为可选步骤,该上级审批人员可以是与目标应用、应用代码相关的审批人员。通过本步骤能实现权限管理,避免应用代码被非法执行。
第三步:工单流管理模块记录审批成功的新代码发布申请单,并将挂靠的代码信息备份到代码库记录。
上述工单流管理模块可以是设置在服务器中的功能模块,挂靠的代码信息可以包括上述应用代码本体和相关联的备注等信息。
第四步:由服务器将新版本代码按要求发布到灰度环境。
本步骤中,新版本代码即上述应用代码,可以由服务器在工单流管理模块的记录进程完成后发布,也可以由工作人员根据实际需求手动执行发布。
第五步:监控分析模块按指定周期模拟使用者行为,在灰度环境内发起功能测试,若运行测试成功,则进入第六步,若测试返回非预期或有报错则进入第七步异常诊断流程。
上述指定周期可以根据需求设定,监控分析模块可以是设置在服务器内的功能模块。具体的,可以预先录制用户的行为,并由监控分析模块周期性执行的方式来实现使用者行为的模拟。或者,也可以由监控分析模块根据用户的历史行为通过机器学习等方式自动生成行为,以模拟使用者的动作。上述测试成功可以包括灰度环境内的目标应用实现了指定功能,否则确定测试失败。
第六步:监控分析模块按指定周期扫描后台日志,确认灰度环境的日志是否有记录报错,若无日志报错,且第五步模拟测试为成功,则该扫描周期判定为正常,监控分析模块按周期计划循环处理第五步,若发现存在日志报错,则进入第七步异常诊断流程。
第七步:监控分析模块进入异常诊断流程,运用文字分析工具、大数据分析工具,将本周期发现的报错日志,与新版本上线前的日志报错信息比对相似性,通过聚类分析、前后值差异率分析,重点对报错的办理页面、办理时间、调用接口、调用进程、调用的服务器IP及端口、办理后返回结果描述等字段做相似性比较。如果和往期日志相似性低于阈值,则认为是新版本代码上线造成的异常,进入第九步;如果和往期日志相似性高于阈值,则认为是原有版本已存在的代码错误,进入第八步。
第八步:监控分析模块判定报错日志为原有版本存在的代码错误,进一步调用工单管理模块,查找该报错对应的往期报错是否已经有人员承接,若已有人员承接,则结束本周期异常诊断流程,并对该日志报错加上“已登记”标签避免重复处理。若尚未有人员承接,则进入第十步。
上述工单流管理模块可以用于管理所有人员、团队的工单流信息,管理各代码发布工单的状态信息,至少包括工单的负责人、负责团队、上下级管理人员、开发申请、挂靠的代码信息、对应的进程、对应的接口模块信息、发布申请、回退申请等信息。
第九步:监控分析模块判定报错日志为新版本代码上线造成的异常,进一步确定涉及代码元素信息,通过进一步分析日志记录,确认报错是属于第几个版本代码,所属进程、接口的编号,进一步查询代码库对应的版本的接口、进程代码,确认可能涉及影响的代码段。
第十步:如果监控分析模块无法查询到报错所属代码版本、接口编号、进程编号等信息,则判断为故障无归属责任人,调用工单流管理模块,自动立单通知总负责人处理。
第十一步:如果监控分析模块查询到报错所属代码版本、接口编号、进程编号等代码元素信息,则依次用相关信息做关键字,调用工单流管理模块接口,查找该代码的负责人或负责团队。
第十二步:如果工单流管理模块接口返回确认问题代码的负责人或负责团队在岗,则监控分析模块调用工单流管理模块接口,建立故障通知单给对应人员,通知检查和修复代码,通知下线回滚问题代码;
第十三步:如果工单流管理模块接口返回问题代码的负责人或负责团队不在岗,则监控分析模块调用工单流管理模块接口,建立故障通知单给对应人员的总负责人,通知检查和修复代码,通知下线回滚问题代码。
第十四步:故障处理人接收故障通知单后,可通过工单关联到代码库查阅对应代码,也可通过工单控制下线回滚灰度发布/发布环境的代码。
通过以上步骤,在确定应用代码无异常后,可以发布至发布环境,实现对大范围用户的目标应用更新。
本发明方案可以应用于多人协作代码开发的系统,该方法的执行主体中可以包括代码库、工单流管理模块、日志库、监控分析模块、灰度发布/发布环境等模块。本发明对代码发布以工作流形式进行管理记录,并通过多维度监控扫描,分析发布及灰度发布后的系统日志信息,通过分析报错日志相关标签,智能检测出哪些报错属于某版本代码发布造成的,由哪些程序员或开发团队负责编程开发,并自动推送工作流至相关人员处告警及驱动修复代码错误。
本实施例提供的方案针对性地解决了应用代码诊断局限性较大的问题,可以应用于多人协作代码开发的各类系统。而且,本发明针对发布后异常的代码提出系统上线后的自动化、智能化检测,能有效提高异常应用代码的修复处理效率。本发明方案能分析代码发布后日志情况,可以将报错的接口、版本等标签信息与工作流内的记录建立检索关系,快速通过工作流找到原问题代码的开发人员/团队及负责人,及时进行检查修复。除此之外,本发明通过分析上线前后系统日志的差异性变化,有效地确认哪些报错属于本次版本代码发布上线造成的故障,能有效提高定位异常的效率。
为了解决现有技术中存在的问题,本申请实施例还提供一种应用代码诊断装置80,如图8所示,包括:
第一获取模块81,获取待诊断的应用代码的第二测试结果信息,所述应用代码用于将第一版本的目标应用更新至第二版本的目标应用,所述第二测试结果信息表征对所述第二版本的目标应用执行功能测试的结果;
第二获取模块82,当所述第二测试结果信息中包括异常信息时,获取所述第一版本的目标应用的第一测试结果信息,所述第一测试结果信息表征对所述第一版本的目标应用执行功能测试的结果;
第一生成模块83,根据所述第二测试结果信息和所述第一测试结果信息,生成测试结果相似度;
第二生成模块84,当所述测试结果相似度小于第一预设相似度阈值时,生成表征所述应用代码异常的第一诊断结果。
通过本实施例提供的装置,能获取待诊断的应用代码的第二测试结果信息;当所述第二测试结果信息中包括异常信息时,获取所述第一版本的目标应用的第一测试结果信息;根据所述测试结果信息和所述第一测试结果信息,生成测试结果相似度;当所述测试结果相似度小于第一预设相似度阈值时,生成表征所述应用代码异常的第一诊断结果。本方案通过比对更新后应用的测试结果与更新前应用的测试结果确定更新后应用的异常是否是由应用代码导致的,有效提高诊断应用代码的效率。
可选的,本实施例提供的装置,还包括第三生成模块85,用于:
当所述测试结果相似度大于第二预设相似度阈值时,生成表征所述第一版本的目标应用异常的第二诊断结果,其中,第二预设相似度阈值大于或等于所述第一预设相似度阈值。
可选的,本实施例提供的装置中,第一生成模块83,用于:
分别对所述第二测试结果信息中的第一错误日志和所述第一测试结果信息中的第一错误日志执行聚类,得到第二聚类结果和第一聚类结果;
根据所述第二聚类结果和所述第一聚类结果,生成所述测试结果相似度。
可选的,本实施例提供的装置中,第一生成模块83,用于:
根据所述第二聚类结果和所述第一聚类结果中的以下至少一项特征生成特征相似度:发生报错的办理页面、发生报错的时间、发生报错的调用接口、发生报错的调用进程、发生报错时调用的服务器地址及端口地址;
根据所述第二聚类结果和所述第一聚类结果的各项特征的特征相似度生成所述测试结果相似度。
可选的,本实施例提供的装置中,还包括第三获取模块86:
获取所述待诊断的应用代码和所述待诊断的应用代码的测试标准;
将所述应用代码发送至包括至少一个测试设备的测试设备组,以指示所述测试设备组对所述应用代码执行功能测试并反馈所述待诊断的应用代码的测试结果信息,其中,所述测试设备组中的测试设备满足所述待诊断的应用代码的测试标准。
可选的,本实施例提供的装置中,还包括第四获取模块87:
获取所述待诊断的应用代码的关联工单,所述关联工单包括生成所述应用代码的地址;
还包括发送模块88,用于在生成表征所述应用代码异常的第一诊断结果之后,将所述第一诊断结果发送至所述生成所述应用代码的地址。
本实施例提供的方案针对性地解决了应用代码诊断局限性较大的问题,可以应用于多人协作代码开发的各类系统。而且,本发明针对发布后异常的代码提出系统上线后的自动化、智能化检测,能有效提高异常应用代码的修复处理效率。本发明方案能分析代码发布后日志情况,可以将报错的接口、版本等标签信息与工作流内的记录建立检索关系,快速通过工作流找到原问题代码的开发人员/团队及负责人,及时进行检查修复。除此之外,本发明通过分析上线前后系统日志的差异性变化,有效地确认哪些报错属于本次版本代码发布上线造成的故障,能有效提高定位异常的效率。
为了解决现有技术中存在的问题,本申请实施例还提供一种应用代码诊断系统,如图9所示,包括:
如上述任一种实施例所述的一种应用代码诊断装置91;
与所述应用代码诊断装置91通信连接的测试设备组92,所述测试设备组包括至少一个测试设备93,所述测试设备组92中的测试设备93满足待诊断的应用代码的测试标准。
可选的,本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述一种应用代码诊断方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述一种应用代码诊断方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

Claims (10)

1.一种应用代码诊断方法,其特征在于,包括:
获取待诊断的应用代码的第二测试结果信息,所述应用代码用于将第一版本的目标应用更新至第二版本的目标应用,所述第二测试结果信息表征对所述第二版本的目标应用执行功能测试的结果;
当所述第二测试结果信息中包括异常信息时,获取所述第一版本的目标应用的第一测试结果信息,所述第一测试结果信息表征对所述第一版本的目标应用执行功能测试的结果;
根据所述第二测试结果信息和所述第一测试结果信息,生成测试结果相似度;
当所述测试结果相似度小于第一预设相似度阈值时,生成表征所述应用代码异常的第一诊断结果。
2.如权利要求1所述的方法,其特征在于,根据所述第二测试结果信息和所述第一测试结果信息,生成测试结果相似度之后,还包括:
当所述测试结果相似度大于第二预设相似度阈值时,生成表征所述第一版本的目标应用异常的第二诊断结果,其中,第二预设相似度阈值大于或等于所述第一预设相似度阈值。
3.如权利要求1所述的方法,其特征在于,根据所述第二测试结果信息和所述第一测试结果信息,生成测试结果相似度,包括:
分别对所述第二测试结果信息中的第一错误日志和所述第一测试结果信息中的第一错误日志执行聚类,得到第二聚类结果和第一聚类结果;
根据所述第二聚类结果和所述第一聚类结果,生成所述测试结果相似度。
4.如权利要求3所述的方法,其特征在于,根据所述第二聚类结果和所述第一聚类结果,生成所述测试结果相似度,包括:
根据所述第二聚类结果和所述第一聚类结果中的以下至少一项特征生成特征相似度:发生报错的办理页面、发生报错的时间、发生报错的调用接口、发生报错的调用进程、发生报错时调用的服务器地址及端口地址;
根据所述第二聚类结果和所述第一聚类结果的各项特征的特征相似度生成所述测试结果相似度。
5.如权利要求1所述的方法,其特征在于,在获取待诊断的应用代码的测试结果信息之前,还包括:
获取所述待诊断的应用代码和所述待诊断的应用代码的测试标准;
将所述应用代码发送至包括至少一个测试设备的测试设备组,以指示所述测试设备组对所述应用代码执行功能测试并反馈所述待诊断的应用代码的测试结果信息,其中,所述测试设备组中的测试设备满足所述待诊断的应用代码的测试标准。
6.如权利要求1所述的方法,其特征在于,还包括:
获取所述待诊断的应用代码的关联信息,所述关联信息包括以下至少一项:所述应用代码关联的终端信息、所述应用代码关联的用户信息、所述应用代码关联的软件信息、所述应用代码关联的通信地址信息;
在生成表征所述应用代码异常的第一诊断结果之后,还包括:
根据所述待诊断的应用代码的关联信息发送所述第一诊断结果。
7.一种应用代码诊断装置,其特征在于,包括:
第一获取模块,获取待诊断的应用代码的第二测试结果信息,所述应用代码用于将第一版本的目标应用更新至第二版本的目标应用,所述第二测试结果信息表征对所述第二版本的目标应用执行功能测试的结果;
第二获取模块,当所述第二测试结果信息中包括异常信息时,获取所述第一版本的目标应用的第一测试结果信息,所述第一测试结果信息表征对所述第一版本的目标应用执行功能测试的结果;
第一生成模块,根据所述第二测试结果信息和所述第一测试结果信息,生成测试结果相似度;
第二生成模块,当所述测试结果相似度小于第一预设相似度阈值时,生成表征所述应用代码异常的第一诊断结果。
8.一种应用代码诊断系统,其特征在于,包括:
如权利要求7所述的一种应用代码诊断装置;
与所述应用代码诊断装置通信连接的测试设备组,所述测试设备组包括至少一个测试设备,所述测试设备组中的测试设备满足待诊断的应用代码的测试标准。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的方法的步骤。
CN202110363619.9A 2021-04-02 2021-04-02 一种应用代码诊断方法、装置和系统 Pending CN115185806A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110363619.9A CN115185806A (zh) 2021-04-02 2021-04-02 一种应用代码诊断方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110363619.9A CN115185806A (zh) 2021-04-02 2021-04-02 一种应用代码诊断方法、装置和系统

Publications (1)

Publication Number Publication Date
CN115185806A true CN115185806A (zh) 2022-10-14

Family

ID=83511487

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110363619.9A Pending CN115185806A (zh) 2021-04-02 2021-04-02 一种应用代码诊断方法、装置和系统

Country Status (1)

Country Link
CN (1) CN115185806A (zh)

Similar Documents

Publication Publication Date Title
US7984334B2 (en) Call-stack pattern matching for problem resolution within software
CN107533504A (zh) 用于软件分发的异常分析
CN110034948B (zh) 排查系统故障的方法和装置
WO2014120192A1 (en) Error developer association
CN112416705A (zh) 一种异常信息的处理方法和装置
US11874728B2 (en) Software application diagnostic aid
CN111865673A (zh) 一种自动化故障管理方法、装置及系统
CN111913824A (zh) 确定数据链路故障原因的方法及相关设备
CN111708654A (zh) 一种虚拟机故障修复的方法和设备
CN114500249B (zh) 一种根因定位方法和装置
CN115185806A (zh) 一种应用代码诊断方法、装置和系统
US9354962B1 (en) Memory dump file collection and analysis using analysis server and cloud knowledge base
CN116016270A (zh) 一种交换机测试管理方法、装置、电子设备和存储介质
CN111813872B (zh) 一种故障排查模型的生成方法、装置、设备
CN111680974B (zh) 电子化承保流程的问题定位方法及装置
CN111835566A (zh) 一种系统故障管理方法、装置及系统
CN117149501B (zh) 问题修复系统及方法
Panchal et al. A Study on the Use of Runtime Files in Handling Crash Reports in a Large Telecom Company
CN110674197A (zh) 一种业务操作的可视化配置与抓取系统
Panchal An Empirical Study of Runtime Files Attached to Crash Reports
CN115545677B (zh) 基于自动化用例执行情况的上线流程规范检测方法和系统
CN112947995B (zh) 一种Java项目的体系结构策略定位方法及系统
CN114598588B (zh) 服务器故障确定方法、装置及终端设备
CN111736875B (zh) 版本更新监控方法、装置、设备及计算机存储介质
CN114253846A (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