CN113127003A - 代码异常告警方法、装置、设备及存储介质 - Google Patents

代码异常告警方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113127003A
CN113127003A CN202110487617.0A CN202110487617A CN113127003A CN 113127003 A CN113127003 A CN 113127003A CN 202110487617 A CN202110487617 A CN 202110487617A CN 113127003 A CN113127003 A CN 113127003A
Authority
CN
China
Prior art keywords
code
difference
detection
item
detection result
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
CN202110487617.0A
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.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management 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 Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN202110487617.0A priority Critical patent/CN113127003A/zh
Publication of CN113127003A publication Critical patent/CN113127003A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及研发管理领域,公开了一种代码异常告警方法、装置、设备及存储介质。该方法包括:接入预置代码库,并根据代码项目的版本排期,从所述代码库中获取目标代码项目对应的当前版本代码及待发布版本代码;识别所述目标代码项目对应的当前版本代码与待发布版本代码之间的代码差异项,得到差异代码;采用至少两种预置检测工具对所述差异代码进行检测,得到所述差异代码对应的第一检测结果;对所述差异代码对应的第一检测结果进行标准化处理,得到第二检测结果;基于所述第二检测结果,对所述差异代码进行动态验证,得到差异代码验证结果;根据所述差异代码验证结果进行代码异常告警处理。本发明可以高效精准的对代码异常进行告警提醒。

Description

代码异常告警方法、装置、设备及存储介质
技术领域
本发明涉及研发管理领域,尤其涉及一种代码异常告警方法、装置、设备及存储介质。
背景技术
随着计算机技术的发展,许多行业的业务办理也转移到线上,因此衍生出大量基于业务需求而开发的软件。从业务需求到产品研发,再到测试人员测试,继而交付生产等流程环环相扣,且都在线上完成,给客户办理业务及软件研发人员提供了极大地便利。
但是从上述产品研发到交付生产过程中的流程中,都需要研发人员在每一个环节中完成大量且细致的校验工作,且产品交付生产之后,后续迭代开发也是基于历史版本向前推进,同样需要研发人员进行复核,但研发人员很难兼顾所有工作,若出现细微差错均会导致产品无法正常交付生产,造成公司的巨大损失。
发明内容
本发明的主要目的在于解决软件版本交付工程中代码异常告警时效性不足的技术问题。
本发明第一方面提供了一种代码异常告警检测方法,包括:
接入预置代码库,并根据代码项目的版本排期,从所述代码库中获取目标代码项目对应的当前版本代码及待发布版本代码;
识别所述目标代码项目对应的当前版本代码与待发布版本代码之间的代码差异项,得到差异代码;
采用至少两种预置检测工具对所述差异代码进行检测,得到所述差异代码对应的第一检测结果;
对所述差异代码对应的第一检测结果进行标准化处理,得到第二检测结果;
基于所述第二检测结果,对所述差异代码进行动态验证,得到差异代码验证结果;
根据所述差异代码验证结果进行代码异常告警处理。
可选的,在本发明第一方面的第一种实现方式中,所述识别所述目标代码项目对应的当前版本代码与待发布版本代码之间的代码差异项,得到差异代码包括:
读取所述当前版本代码与所述待发布版本代码的差异项;
获取待发布版本数据与所述差异项对应的数据处理逻辑,并判断所述差异项是否符合所述数据处理逻辑;
若所述差异项符合所述数据处理逻辑,则确定所述差异项属于正常变更差异项,若所述差异项不符合所述数据处理逻辑,则确定所述差异项属于异常变更差异项;
根据所述正常变更差异项和所述异常变更差异项,生成差异代码。
可选的,在本发明第一方面的第二种实现方式中,在所述采用至少两种预置检测工具对所述差异代码进行检测,得到所述差异代码对应的第一检测结果之前,还包括:
采集差异代码样本,分析所述差异代码样本的样本特征,得到包括多个样本特征的样本特征集;
根据所述样本特征集,确定所述差异代码所需检测的检测指标组;
从预置检测工具集中确定用于检测所述检测指标组中各检测指标项的至少两种检测工具。
可选的,在本发明第一方面的第三种实现方式中,所述采集差异代码样本,分析所述差异代码样本的样本特征包括:
采集差异代码样本,并对所述差异代码样本进行扫描;
若所述差异代码样本中存在所述差异代码的工程文件,则确定所述差异代码的开发语言;
根据所述工程文件的内容,确定所述差异代码的编译环境;
若所述差异代码样本中不存在所述差异代码的工程文件,则根据所述差异代码的扩展名,确定所述差异代码的开发语言。
可选的,在本发明第一方面的第四种实现方式中,所述采用至少两种预置检测工具对所述差异代码进行检测,得到所述差异代码对应的第一检测结果包括:
根据所述编译环境,从所述至少两种检测工具中确定与所述编译环境相匹配的编译环境引擎;
根据所述开发语言,从所述至少两种检测工具中确定与所述开发语言相匹配的开发语言引擎;
基于当前运行环境,利用所述编译环境引擎及所述开发语言引擎对所述差异代码进行检测,得到所述差异代码对应的第一检测结果。
可选的,在本发明第一方面的第五种实现方式中,所述对所述差异代码对应的第一检测结果进行标准化处理,得到第二检测结果包括:
对比至少两种的所述差异代码对应的第一检测结果,删除所述第一检测结果包含的重复检测指标项;
合并所述第一检测结果中不重复的检测指标项,得到复合检测结果;
删除所述复合检测结果中误报检测指标项,得到第二检测结果。
可选的,在本发明第一方面的第六种实现方式中,所述删除所述复合检测结果中误报检测指标项,得到第二检测结果包括:
接入预置误报分析库,其中,所述误报分析库包括所述至少两种检测工具对应的误报结果标记;
对比至少两种所述复合检测结果,若所述至少两种检测工具检测出同一个缺陷,则确定误报等级为低等级误报;若所述至少两种检测工具未检测出同一个缺陷,则确定误报等级为高等级误报;
根据所述误报等级,筛选得到所述复合检测结果中的误报检测指标项,并删除所述复合检测结果中的所述误报检测指标项,得到第二检测结果。
本发明第二方面提供了一种代码异常告警装置,包括:
获取模块,用于接入预置代码库,并根据代码项目的版本排期,从所述代码库中获取目标代码项目对应的当前版本代码及待发布版本代码;
识别模块,用于识别所述目标代码项目对应的当前版本代码与待发布版本代码之间的代码差异项,得到差异代码;
检测模块,用于采用至少两种预置检测工具对所述差异代码进行检测,得到所述差异代码对应的第一检测结果;
处理模块,用于对所述差异代码对应的第一检测结果进行标准化处理,得到第二检测结果;
验证模块,用于基于所述第二检测结果,对所述差异代码进行动态验证,得到差异代码验证结果;
告警模块,用于根据所述差异代码验证结果进行代码异常告警处理。
可选的,在本发明第二方面的第一种实现方式中,所述识别模块用于读取所述当前版本代码与所述待发布版本代码的差异项;
获取待发布版本数据与所述差异项对应的数据处理逻辑,并判断所述差异项是否符合所述数据处理逻辑;
若所述差异项符合所述数据处理逻辑,则确定所述差异项属于正常变更差异项,若所述差异项不符合所述数据处理逻辑,则确定所述差异项属于异常变更差异项;
根据所述正常变更差异项和所述异常变更差异项,生成差异代码。
可选的,在本发明第二方面的第二种实现方式中,所述代码异常告警装置还包括:
采集模块,用于采集差异代码样本,分析所述差异代码样本的样本特征,得到包括多个样本特征的样本特征集;
指标组确定模块,用于根据所述样本特征集,确定所述差异代码所需检测的检测指标组;
工具确定模块,用于从预置检测工具集中确定用于检测所述检测指标组中各检测指标项的至少两种检测工具。
可选的,在本发明第二方面的第三种实现方式中,所述采集模块用于:
采集差异代码样本,并对所述差异代码样本进行扫描;
若所述差异代码样本中存在所述差异代码的工程文件,则确定所述差异代码的开发语言;
根据所述工程文件的内容,确定所述差异代码的编译环境;
若所述差异代码样本中不存在所述差异代码的工程文件,则根据所述差异代码的扩展名,确定所述差异代码的开发语言。
可选的,在本发明第二方面的第四种实现方式中,所述检测模块用于:
根据所述编译环境,从所述至少两种检测工具中确定与所述编译环境相匹配的编译环境引擎;
根据所述开发语言,从所述至少两种检测工具中确定与所述开发语言相匹配的开发语言引擎;
基于当前运行环境,利用所述编译环境引擎及所述开发语言引擎对所述差异代码进行检测,得到所述差异代码对应的第一检测结果。
可选的,在本发明第二方面的第五种实现方式中,所述处理模块还包括:
对比单元,用于对比至少两种的所述差异代码对应的第一检测结果,删除所述第一检测结果包含的重复检测指标项;
合并单元,用于合并所述第一检测结果中不重复的检测指标项,得到复合检测结果;
删除单元,用于删除所述复合检测结果中误报检测指标项,得到第二检测结果。
可选的,在本发明第二方面的第六种实现方式中,所述删除单元还用于:
接入预置误报分析库,其中,所述误报分析库包括所述至少两种检测工具对应的误报结果标记;
对比至少两种所述复合检测结果,若所述至少两种检测工具检测出同一个缺陷,则确定误报等级为低等级误报;若所述至少两种检测工具未检测出同一个缺陷,则确定误报等级为高等级误报;
根据所述误报等级,筛选得到所述复合检测结果中的误报检测指标项,并删除所述复合检测结果中的所述误报检测指标项,得到第二检测结果。
本发明第三方面提供了一种计算机设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述计算机设备执行上述的代码异常告警方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的代码异常告警方法。
本发明提供的技术方案中,为了避免在产品版本迭代中代码数据出现差错,故接入预置代码库,并根据代码项目的版本排期,从所述代码库中获取当前版本代码及待发布版本代码,以便于对两个版本的代码进行查验;进而识别所述当前版本代码与所述待发布代码的差异项,并生成差异代码,更有侧重的对差异代码进行检测;为了避免检测结果的单一性,故采用至少两种预置检测工具对所述差异代码进行检测,获得相应的至少两种检测结果;对所述至少两种检测结果进行标准化处理,得到第二检测结果,能够保证检测结果的准确性;基于所述第二检测结果,对所述差异代码进行动态验证,获得最终检测结果,并根据最终检测结果判断是否进行告警提醒,能够及时有效的对产品在版本迭代中出现的数据错误进行提示。
附图说明
图1为本发明实施例中代码异常告警方法的第一个实施例示意图;
图2为本发明实施例中代码异常告警方法的第二个实施例示意图;
图3为本发明实施例中代码异常告警装置的一个实施例示意图;
图4为本发明实施例中计算机设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种代码异常告警方法、装置、设备及存储介质。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中代码异常告警方法的第一个实施例包括:
101、接入预置代码库,并根据代码项目的版本排期,从所述代码库中获取目标代码项目对应的当前版本代码及待发布版本代码;
可以理解的是,本发明的执行主体可以为代码异常告警装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
本实施例中,项目的版本排期是指按照十四天工作日的版本周期制作的版本排期,获取项目的版本排期的目的是为了便于对当前待发布版本及上一版本进行比对校验,从而准确的根据上线日期对代码异常的版本进行告警提醒,避免出现因错误代码造成版本不能按时上线的情况。
102、识别所述目标代码项目对应的当前版本代码与待发布版本代码之间的代码差异项,得到差异代码;
本实施例中,基于分析组件将待发布版本代码与对应的当前版本代码进行比较,识别出差异项,待发布版本对应的各个子系统由于其系统架构的不同,其配置文件的格式可能存在差异,因此需要单独对各个子系统进行与当前版本代码的比较。具体来说,当前版本代码与待发布版本代码的比较是一种全量数据的比较,当存在任意一项数据的不同时,都需要将该数据标记为差异项进行上报,以便对该差异项进行相应的处理,差异项包括符合预设数据处理逻辑的正常变更差异项以及不符合预设数据处理逻辑的异常变更差异项。
可选的,本步骤102包括:
读取所述当前版本代码与所述待发布版本代码的差异项;
获取待发布版本数据与所述差异项对应的数据处理逻辑,并判断所述差异项是否符合所述数据处理逻辑;
若所述差异项符合所述数据处理逻辑,则确定所述差异项属于正常变更差异项,若所述差异项不符合所述数据处理逻辑,则确定所述差异项属于异常变更差异项;
根据所述正常变更差异项和所述异常变更差异项,生成差异代码。
本可选实施例中,调用分析组件基于比较结果中的差异项,获取待发布新版本中与该差异项对应的数据处理逻辑,当该差异项符合该数据处理逻辑时,判定该差异项属于正常变更,当该差异项不符合该数据处理逻辑时,判定该差异项属于异常变更。通过调用数据处理逻辑,可以确定该差异项是基于实际需要作出的符合要求的变更,还是由于工作人员的误操作导致的错误变更,能够便于变更类型,对待发布版本中的差异项进行进一步地处理。
103、采用至少两种预置检测工具对所述差异代码进行检测,得到所述差异代码对应的第一检测结果;
本实施例中,利用多个不同的检测工具对同一差异代码进行检测,分别得到相应的多个不同的检测结果。其中,每种检测工具能够得到若干测试指标项,本实施例中,利用预置检测工具进行检测可以快速得到若干测试的指标项,以便于后续对指标项进行标准化处理。
104、对所述差异代码对应的第一检测结果进行标准化处理,得到第二检测结果;
本实施例中,对多个不同的第一检测结果进行标准化处理,得到第二检测结果,包括多个测试结果项。标准化处理过程包括对比各检测工具的检测结果,去掉重复的测试指标项,合并不重复的测试指标项,去除误报的测试指标项,最终得到包括多个测试结果项的第二检测结果。
105、基于所述第二检测结果,对所述差异代码进行动态验证,得到差异代码验证结果;
本实施例中,得到第二检测结果之后,进一步根据第二检测结果对差异代码进行动态验证,以验证检测结果的准确性,能够提升缺陷检测的精确性,所述动态验证的过程是:使用动态扫描工具对差异代码进行扫描,得到扫描结果,扫描结果包括存在缺陷的文件名称、错误类型等;将得到的扫描结果与第二检测结果的相应内容(缺陷文件、错误类型)进行对比,判断是否相似或一致,若相似或一致,则第二检测结果中的缺陷通过动态验证,确认是缺陷。
106、根据所述差异代码验证结果进行代码异常告警处理。
本实施例中,基于所述差异代码的验证结果,判断差异代码是否出现异常,若差异代码异常,则针对该异常代码进行告警提醒,并发送代码异常详细内容至研发人员便于修改调整,避免因代码异常导致版本无法正常交付的情况出现,若差异代码未出现异常,则不进行告警提醒。
本发明实施例中,首先接入预置代码库,并根据代码项目的版本排期,从所述代码库中获取目标代码项目对应的当前版本代码及待发布版本代码;识别两种版本之间的代码差异项,得到差异代码,同时采用至少两种预置检测工具对所述差异代码进行检测,得到第一检测结果,对所述差异代码对应的第一检测结果进行标准化处理,得到第二检测结果,继而对差异代码进行动态验证,得到差异代码验证结果,最终根据所述差异代码验证结果进行代码异常告警处理。本实施例可以准确及时的对差异代码进行校验并获得校验结果。
请参阅图2,本发明实施例中代码异常告警方法的第二个实施例包括:
201、接入预置代码库,并根据代码项目的版本排期,从所述代码库中获取目标代码项目对应的当前版本代码及待发布版本代码;
202、识别所述目标代码项目对应的当前版本代码与待发布版本代码之间的代码差异项,得到差异代码;
203、采集差异代码样本,分析所述差异代码样本的样本特征,得到包括多个样本特征的样本特征集;
本实施例中,根据采集的差异代码样本,分析确定若干样本特征,构成样本特征集。其中,样本特征包括开发语言、开发平台、编译环境、程序类型(嵌入式/非嵌入式、桌面端、B/S等)、运行环境、应用领域等。
进一步的,本步骤203包括:
采集差异代码样本,并对所述差异代码样本进行扫描;
若所述差异代码样本中存在所述差异代码的工程文件,则确定所述差异代码的开发语言;
根据所述工程文件的内容,确定所述差异代码的编译环境;
若所述差异代码样本中不存在所述差异代码的工程文件,则根据所述差异代码的扩展名,确定所述差异代码的开发语言。
本实施例中,根据不同开发平台的工程文件获取对应开发环境的差异代码,通过工程文件名,获取开发平台和开发语言。例如:工程文件的扩展名是csproj,可以确定差异代码的开发平台是Visual Studio,开发语言是C#,进一步的,可根据差异代码工程文件的文件内容,获取开发平台的版本号。如果获取的差异代码找不到对应的工程文件,通过遍历的方式查找差异代码文件,通过差异代码文件的扩展名,判定差异代码的开发语言。
204、根据所述样本特征集,确定所述差异代码所需检测的检测指标组;
本实施例中,所述检测指标组是:根据差异代码检测三个国家标准(《GB/T34943-2017C/C++语言差异代码漏洞测试规范》、《GB/T 34944-2017Java语言差异代码漏洞测试规范》及《GB/T34946-2017C#语言差异代码漏洞测试规范》))和三个电子行业标准(《SJ/T11681-2017C#语言差异代码缺陷控制与测试指南》、《SJ/T 11682-2017CC++语言差异代码缺陷控制与测试规范》及《SJ/T 11683-2017Java语言差异代码缺陷控制与测试指南》)的测试指标要求,根据不同程序类型、应用领域建立检测标准与检测工具指标的对应关系即检测指标组。
205、从预置检测工具集中确定用于检测所述检测指标组中各检测指标项的至少两种检测工具;
本实施例中,根据差异代码的不同的样本特征,可初步确定出相应的常见的差异代码漏洞类型。例如,开发语言为C/C++语言,可能存在的缓冲区溢出的漏洞较多,可根据识别确定出的差异代码的样本特征,确定出差异代码预计存在的漏洞类型,根据差异代码预计存在的漏洞类型,确定差异代码需要检测的检测指标组,快速、准确的从软件检测工具集中确定出用于检测检测指标组中各指标项的至少两种检测工具,利用至少两种检测工具对差异代码进行检测。
206、采用至少两种预置检测工具对所述差异代码进行检测,得到所述差异代码对应的第一检测结果;
可选的,本步骤206包括:
根据所述编译环境,从所述至少两种检测工具中确定与所述编译环境相匹配的编译环境引擎;
根据所述开发语言,从所述至少两种检测工具中确定与所述开发语言相匹配的开发语言引擎;
基于当前运行环境,利用所述编译环境引擎及所述开发语言引擎对所述差异代码进行检测,得到所述差异代码对应的第一检测结果。
本实施例中,根据之前步骤获得的编译环境及开发语言,在预置检测工具中选取对应的编译环境引擎及开发语言引擎,例如:编译环境为MSBuild,调用Klocwork的MSBuild编译引擎,编译环境为Ant,调用Klocwork的Ant编译引擎。基于Tomcat运行环境Web程序的web.xml配置文件,并利用匹配的编译环境引擎及卡法语言引擎对差异代码进行检测,得到第一检测结果。
207、对比至少两种的所述差异代码对应的第一检测结果,删除所述第一检测结果包含的重复检测指标项;
208、合并所述第一检测结果中不重复的检测指标项,得到复合检测结果;
209、删除所述复合检测结果中误报检测指标项,得到第二检测结果;
本实施例中,对多个不同的检测结果进行标准化处理,得到第二检测结果,包括问题类型、问题位置、问题原因、问题解决建议等测试结果项。标准化处理过程包括对比各检测工具的检测结果,去掉重复的测试指标项,合并不重复的测试指标项,去除误报的测试指标项,最终得到包括多个测试结果项的第二检测结果。
进一步的,步骤209包括:
接入预置误报分析库,其中,所述误报分析库包括所述至少两种检测工具对应的误报结果标记;
对比至少两种所述复合检测结果,若所述至少两种检测工具检测出同一个缺陷,则确定误报等级为低等级误报;若所述至少两种检测工具未检测出同一个缺陷,则确定误报等级为高等级误报;
根据所述误报等级,筛选得到所述复合检测结果中的误报检测指标项,并删除所述复合检测结果中的所述误报检测指标项,得到第二检测结果。
本实施例中,去除误报测试指标项的方法可以是:一方面,建立误报分析库,其中保存了各检测工具及其相应的误报结果标记,随着检测结果数据的增加与积累,不断丰富误报分析库,后续可依据得到的检测结果查询误报分析库,初步得出可能为误报的测试结果。第二方面,将多个检测工具的多个检测结果进行对比,如果多个检测工具检测出同一个缺陷,则认为误报等级低,反之认为误报等级高,后续根据误报等级,综合进行筛选。
2010、基于所述第二检测结果,对所述差异代码进行动态验证,得到差异代码验证结果;
2011、根据所述差异代码验证结果进行代码异常告警处理。
本发明实施例中,得到第二检测结果之后,进一步根据第二检测结果对差异代码进行动态验证,以验证检测结果的准确性,所述动态验证的过程是:使用动态扫描工具对差异代码进行扫描,得到扫描结果,扫描结果包括存在缺陷的文件名称、错误类型等;将得到的扫描结果与第二检测结果的相应内容进行对比,判断是否相似或一致,若相似或一致,则第二检测结果中的缺陷通过动态验证,确认是缺陷。能够提升缺陷检测的精确性,并根据最终的检测结果判断若存在代码异常,则及时进行告警提醒,避免因未及时发现处理该代码异常而导致版本不能正常交付的情况。
上面对本发明实施例中代码异常告警方法进行了描述,下面对本发明实施例中代码异常告警装置进行描述,请参阅图3,本发明实施例中代码异常告警装置一个实施例包括:
获取模块301,用于接入预置代码库,并根据代码项目的版本排期,从所述代码库中获取目标代码项目对应的当前版本代码及待发布版本代码;
识别模块302,用于识别所述目标代码项目对应的当前版本代码与待发布版本代码之间的代码差异项,得到差异代码;
检测模块303,用于采用至少两种预置检测工具对所述差异代码进行检测,得到所述差异代码对应的第一检测结果;
处理模块304,用于对所述差异代码对应的第一检测结果进行标准化处理,得到第二检测结果;
验证模块305,用于基于所述第二检测结果,对所述差异代码进行动态验证,得到差异代码验证结果;
告警模块306,用于根据所述差异代码验证结果进行代码异常告警处理。
可选的,所述识别模块302用于:
读取所述当前版本代码与所述待发布版本代码的差异项;
获取待发布版本数据与所述差异项对应的数据处理逻辑,并判断所述差异项是否符合所述数据处理逻辑;
若所述差异项符合所述数据处理逻辑,则确定所述差异项属于正常变更差异项,若所述差异项不符合所述数据处理逻辑,则确定所述差异项属于异常变更差异项;
根据所述正常变更差异项和所述异常变更差异项,生成差异代码。
可选的,所述代码异常告警装置还包括:
采集模块307,用于采集差异代码样本,分析所述差异代码样本的样本特征,得到包括多个样本特征的样本特征集;
指标组确定模块308,用于根据所述样本特征集,确定所述差异代码所需检测的检测指标组;
工具确定模块309,用于从预置检测工具集中确定用于检测所述检测指标组中各检测指标项的至少两种检测工具。
可选的,所述采集模块307用于:
采集差异代码样本,并对所述差异代码样本进行扫描;
若所述差异代码样本中存在所述差异代码的工程文件,则确定所述差异代码的开发语言;
根据所述工程文件的内容,确定所述差异代码的编译环境;
若所述差异代码样本中不存在所述差异代码的工程文件,则根据所述差异代码的扩展名,确定所述差异代码的开发语言。
可选的,所述检测模块303用于:
根据所述编译环境,从所述至少两种检测工具中确定与所述编译环境相匹配的编译环境引擎;
根据所述开发语言,从所述至少两种检测工具中确定与所述开发语言相匹配的开发语言引擎;
基于当前运行环境,利用所述编译环境引擎及所述开发语言引擎对所述差异代码进行检测,得到所述差异代码对应的第一检测结果。
可选的,所述处理模块304还包括:
对比单元3041,用于对比至少两种的所述差异代码对应的第一检测结果,删除所述第一检测结果包含的重复检测指标项;
合并单元3042,用于合并所述第一检测结果中不重复的检测指标项,得到复合检测结果;
删除单元3043,用于删除所述复合检测结果中误报检测指标项,得到第二检测结果。
可选的,所述删除单元3043还用于:
接入预置误报分析库,其中,所述误报分析库包括所述至少两种检测工具对应的误报结果标记;
对比至少两种所述复合检测结果,若所述至少两种检测工具检测出同一个缺陷,则确定误报等级为低等级误报;若所述至少两种检测工具未检测出同一个缺陷,则确定误报等级为高等级误报;
根据所述误报等级,筛选得到所述复合检测结果中的误报检测指标项,并删除所述复合检测结果中的所述误报检测指标项,得到第二检测结果。
上面图3从模块化功能实体的角度对本发明实施例中的代码异常告警装置进行详细描述,下面从硬件处理的角度对本发明实施例中计算机设备进行详细描述。
图4是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)410(例如,一个或一个以上处理器)和存储器420,一个或一个以上存储应用程序433或数据432的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器420和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备400中的一系列指令操作。更进一步地,处理器410可以设置为与存储介质430通信,在计算机设备400上执行存储介质430中的一系列指令操作。
计算机设备400还可以包括一个或一个以上电源440,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口460,和/或,一个或一个以上操作系统431,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图4示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述代码异常告警方法的步骤。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述代码异常告警方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onVly memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种代码异常告警方法,其特征在于,所述代码异常告警方法包括:
接入预置代码库,并根据代码项目的版本排期,从所述代码库中获取目标代码项目对应的当前版本代码及待发布版本代码;
识别所述目标代码项目对应的当前版本代码与待发布版本代码之间的代码差异项,得到差异代码;
采用至少两种预置检测工具对所述差异代码进行检测,得到所述差异代码对应的第一检测结果;
对所述差异代码对应的第一检测结果进行标准化处理,得到第二检测结果;
基于所述第二检测结果,对所述差异代码进行动态验证,得到差异代码验证结果;
根据所述差异代码验证结果进行代码异常告警处理。
2.根据权利要求1所述的代码异常告警方法,其特征在于,所述识别所述目标代码项目对应的当前版本代码与待发布版本代码之间的代码差异项,得到差异代码包括:
读取所述当前版本代码与所述待发布版本代码的差异项;
获取待发布版本数据与所述差异项对应的数据处理逻辑,并判断所述差异项是否符合所述数据处理逻辑;
若所述差异项符合所述数据处理逻辑,则确定所述差异项属于正常变更差异项,若所述差异项不符合所述数据处理逻辑,则确定所述差异项属于异常变更差异项;
根据所述正常变更差异项和所述异常变更差异项,生成差异代码。
3.根据权利要求1所述的代码异常告警方法,其特征在于,在所述采用至少两种预置检测工具对所述差异代码进行检测,得到所述差异代码对应的第一检测结果之前,还包括:
采集差异代码样本,分析所述差异代码样本的样本特征,得到包括多个样本特征的样本特征集;
根据所述样本特征集,确定所述差异代码所需检测的检测指标组;
从预置检测工具集中确定用于检测所述检测指标组中各检测指标项的至少两种检测工具。
4.根据权利要求3所述的代码异常告警方法,其特征在于,所述采集差异代码样本,分析所述差异代码样本的样本特征包括:
采集差异代码样本,并对所述差异代码样本进行扫描;
若所述差异代码样本中存在所述差异代码的工程文件,则确定所述差异代码的开发语言;
根据所述工程文件的内容,确定所述差异代码的编译环境;
若所述差异代码样本中不存在所述差异代码的工程文件,则根据所述差异代码的扩展名,确定所述差异代码的开发语言。
5.根据权利要求4所述的代码异常告警方法,其特征在于,所述采用至少两种预置检测工具对所述差异代码进行检测,得到所述差异代码对应的第一检测结果包括:
根据所述编译环境,从所述至少两种检测工具中确定与所述编译环境相匹配的编译环境引擎;
根据所述开发语言,从所述至少两种检测工具中确定与所述开发语言相匹配的开发语言引擎;
基于当前运行环境,利用所述编译环境引擎及所述开发语言引擎对所述差异代码进行检测,得到所述差异代码对应的第一检测结果。
6.根据权利要求4所述的代码异常告警方法,其特征在于,所述对所述差异代码对应的第一检测结果进行标准化处理,得到第二检测结果包括:
对比至少两种的所述差异代码对应的第一检测结果,删除所述第一检测结果包含的重复检测指标项;
合并所述第一检测结果中不重复的检测指标项,得到复合检测结果;
删除所述复合检测结果中误报检测指标项,得到第二检测结果。
7.根据权利要求6所述的代码异常告警方法,其特征在于,所述删除所述复合检测结果中误报检测指标项,得到第二检测结果包括:
接入预置误报分析库,其中,所述误报分析库包括所述至少两种检测工具对应的误报结果标记;
对比至少两种所述复合检测结果,若所述至少两种检测工具检测出同一个缺陷,则确定误报等级为低等级误报;若所述至少两种检测工具未检测出同一个缺陷,则确定误报等级为高等级误报;
根据所述误报等级,筛选得到所述复合检测结果中的误报检测指标项,并删除所述复合检测结果中的所述误报检测指标项,得到第二检测结果。
8.一种代码异常告警装置,其特征在于,所述代码异常告警装置包括:
获取模块,用于接入预置代码库,并根据代码项目的版本排期,从所述代码库中获取目标代码项目对应的当前版本代码及待发布版本代码;
识别模块,用于识别所述目标代码项目对应的当前版本代码与待发布版本代码之间的代码差异项,得到差异代码;
检测模块,用于采用至少两种预置检测工具对所述差异代码进行检测,得到所述差异代码对应的第一检测结果;
处理模块,用于对所述差异代码对应的第一检测结果进行标准化处理,得到第二检测结果;
验证模块,用于基于所述第二检测结果,对所述差异代码进行动态验证,得到差异代码验证结果;
告警模块,用于根据所述差异代码验证结果进行代码异常告警处理。
9.一种计算机设备,其特征在于,所述计算机设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述计算机设备执行如权利要求1-7中任一项所述的代码异常告警方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-7中任一项所述的代码异常告警方法。
CN202110487617.0A 2021-04-26 2021-04-26 代码异常告警方法、装置、设备及存储介质 Pending CN113127003A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110487617.0A CN113127003A (zh) 2021-04-26 2021-04-26 代码异常告警方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110487617.0A CN113127003A (zh) 2021-04-26 2021-04-26 代码异常告警方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN113127003A true CN113127003A (zh) 2021-07-16

Family

ID=76781201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110487617.0A Pending CN113127003A (zh) 2021-04-26 2021-04-26 代码异常告警方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113127003A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116383834A (zh) * 2023-06-02 2023-07-04 北京邮电大学 针对源码漏洞检测工具异常的检测方法以及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104765692A (zh) * 2015-04-29 2015-07-08 北京嘀嘀无限科技发展有限公司 用于自动化测试软件的方法及设备
CN109446107A (zh) * 2019-01-23 2019-03-08 长沙软工信息科技有限公司 一种源代码检测方法及装置、电子设备
CN109710299A (zh) * 2018-12-14 2019-05-03 平安普惠企业管理有限公司 一种开源类库监控方法、装置、设备及计算机存储介质
CN109815111A (zh) * 2018-12-13 2019-05-28 深圳壹账通智能科技有限公司 灰度测试方法、装置、计算机设备及存储介质
CN111736875A (zh) * 2020-06-28 2020-10-02 深圳前海微众银行股份有限公司 版本更新监控方法、装置、设备及计算机存储介质
CN112015647A (zh) * 2020-08-27 2020-12-01 深圳壹账通智能科技有限公司 配置项监控方法、装置、计算机设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104765692A (zh) * 2015-04-29 2015-07-08 北京嘀嘀无限科技发展有限公司 用于自动化测试软件的方法及设备
CN109815111A (zh) * 2018-12-13 2019-05-28 深圳壹账通智能科技有限公司 灰度测试方法、装置、计算机设备及存储介质
CN109710299A (zh) * 2018-12-14 2019-05-03 平安普惠企业管理有限公司 一种开源类库监控方法、装置、设备及计算机存储介质
CN109446107A (zh) * 2019-01-23 2019-03-08 长沙软工信息科技有限公司 一种源代码检测方法及装置、电子设备
CN111736875A (zh) * 2020-06-28 2020-10-02 深圳前海微众银行股份有限公司 版本更新监控方法、装置、设备及计算机存储介质
CN112015647A (zh) * 2020-08-27 2020-12-01 深圳壹账通智能科技有限公司 配置项监控方法、装置、计算机设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116383834A (zh) * 2023-06-02 2023-07-04 北京邮电大学 针对源码漏洞检测工具异常的检测方法以及相关设备
CN116383834B (zh) * 2023-06-02 2023-08-08 北京邮电大学 针对源码漏洞检测工具异常的检测方法以及相关设备

Similar Documents

Publication Publication Date Title
D'Ambros et al. On the relationship between change coupling and software defects
US20110270858A1 (en) File type recognition analysis method and system
CN110600098A (zh) 一种临床化学自动审核方法、系统、装置和存储介质
CN112288079A (zh) 图神经网络模型训练方法、软件缺陷检测方法及系统
KR101979329B1 (ko) 바이너리의 취약점을 유발하는 입력데이터 위치 추적 방법 및 그 장치
CN113888480A (zh) 一种基于mes的质量追溯方法和系统
CN116627848B (zh) 应用程序的自动化测试方法和系统
CN114461534A (zh) 软件性能测试方法、系统、电子设备及可读存储介质
CN113127003A (zh) 代码异常告警方法、装置、设备及存储介质
Amusuo et al. Reflections on software failure analysis
CN110825633A (zh) 一种针对Java语言的软件缺陷检测与提取方法
CN113392000B (zh) 测试用例执行结果分析方法、装置、设备及存储介质
CN111475408A (zh) 一种基于代码检查工具的质量管理方法
Dhanalaxmi et al. A fault prediction approach based on the probabilistic model for improvising software inspection
Munson et al. Toward a quantifiable definition of software faults
CN110675131A (zh) 一种质量监测数据质量控制审核方法
CN115795488A (zh) 代码检测系统及代码检测方法
CN115310870A (zh) 航空离散制造质量监测方法、装置、设备、介质及产品
CN114756586A (zh) 代码匹配分析方法、装置、电子设备及存储介质
CN115033489A (zh) 代码资源检测方法、装置、电子设备及存储介质
CN114020645A (zh) 测试方法、装置、设备、可读存储介质及计算机程序产品
CN114564391A (zh) 确定测试用例的方法、装置、存储介质及电子设备
Kidwell et al. Toward extended change types for analyzing software faults
CN112416727A (zh) 批处理作业的检核方法、装置、设备及介质
CN102279793A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210716