CN110221933A - 代码缺陷辅助修复方法及系统 - Google Patents

代码缺陷辅助修复方法及系统 Download PDF

Info

Publication number
CN110221933A
CN110221933A CN201910369266.6A CN201910369266A CN110221933A CN 110221933 A CN110221933 A CN 110221933A CN 201910369266 A CN201910369266 A CN 201910369266A CN 110221933 A CN110221933 A CN 110221933A
Authority
CN
China
Prior art keywords
code
defect
repaired
sample database
characteristic 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.)
Granted
Application number
CN201910369266.6A
Other languages
English (en)
Other versions
CN110221933B (zh
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910369266.6A priority Critical patent/CN110221933B/zh
Publication of CN110221933A publication Critical patent/CN110221933A/zh
Application granted granted Critical
Publication of CN110221933B publication Critical patent/CN110221933B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种代码缺陷辅助修复方法及系统,属于软件开发领域。所述代码缺陷辅助修复方法包括:获取待修复的缺陷代码;基于推荐样本库确定与所述待修复的缺陷代码相对应的目标参考修复代码,其中所述推荐样本库中预存储多组相互对应的参考缺陷代码和参考修复代码;基于所述目标参考修复代码,提供代码缺陷辅助修复服务。由此,应用预配置的搜集了过往缺陷代码修复参考样本的推荐样本库,能够为待修复的缺陷代码提供修复参考案例,辅助开发人员修复代码缺陷,提高了代码修复效率和应用程序代码质量。

Description

代码缺陷辅助修复方法及系统
技术领域
本发明涉及软件开发技术领域,具体地涉及一种代码缺陷辅助修复方法及系统。
背景技术
随着信息化时代的到来,多种多样的软件为人们的生活带来了便利,同样也使得软件开发技术得到了蓬勃发展。
在软件雏形完成之后,需要对其进行测试,以确定此软件是否存在代码缺陷或漏洞(bug);以及,当存在代码缺陷时,需要开发人员进行代码调整,从而修复代码缺陷。
但是,本申请的发明人在实践本申请的过程中发现上述目前相关技术中至少存在如下的缺陷:代码人员在找到代码缺陷之后,往往缺乏修复参考案例,其在修复过程中需要进行多次尝试和调试,导致了大量时间的浪费和软件调试成本的提高。
发明内容
本发明实施例的目的是提供一种代码缺陷辅助修复方法及系统,用以至少解决目前相关技术中代码缺陷缺乏修复参考而导致的调试时间和人力成本的过度消耗的问题。
为了实现上述目的,本发明实施例提供一种代码缺陷辅助修复方法,包括:获取待修复的缺陷代码;基于推荐样本库确定与所述待修复的缺陷代码相对应的目标参考修复代码,其中所述推荐样本库中预存储多组相互对应的参考缺陷代码和参考修复代码;基于所述目标参考修复代码,提供代码缺陷辅助修复服务。
可选的,所述基于推荐样本库确定与所述待修复的缺陷代码相对应的目标参考修复代码包括:确定所述待修复的缺陷代码的目标缺陷特征信息;基于推荐样本库确定与所述目标缺陷特征信息相匹配的目标参考修复代码,其中所述推荐样本库中还预存储了多组相互对应的参考缺陷特征信息和参考修复代码。
可选的,该方法还包括针对所述推荐样本库的建库步骤,所述建库步骤包括:获取第一版本的应用程序代码,并统计所述第一版本的应用程序代码中的第一缺陷代码集合;获取第二版本的应用程序代码,并统计所述第二版本的应用程序代码中的第二缺陷代码集合;比较所述第一缺陷代码集合和所述第二缺陷代码集合,确定在所述第一版本和所述第二版本的所述应用程序代码之间已修复的缺陷代码;将所述已修复的缺陷代码作为参考修复代码,并将所述参考修复代码所对应的缺陷代码确定为相对应的参考缺陷代码,以及,根据相互对应的所述参考修复代码和所述参考缺陷代码构建所述推荐样本库。
可选的,所述根据相互对应的所述参考修复代码和所述参考缺陷代码构建所述推荐样本库还包括:确定并提取所述参考缺陷代码所对应的参考缺陷特征信息;根据相互对应的所述参考缺陷特征信息、所述参考缺陷代码和所述参考修复代码,构建所述推荐样本库。
可选的,所述建库步骤还包括:基于多个不同种类的应用程序代码,构建所述推荐样本库。
可选的,所述确定所述待修复的缺陷代码的目标缺陷特征信息包括:将包括所述待修复的缺陷代码的源文件转换为抽象语法树,其中所述抽象语法树上配置有与源代码位置相对应的多个节点结构;根据所述待修复的缺陷代码所处的缺陷源代码位置,确定在所述抽象语法树上相对应的缺陷节点结构;以及将所述缺陷节点结构中的节点代码信息按照预设的消息摘要算法进行计算,以得出对应的目标缺陷消息摘要值,其中所述目标缺陷特征信息包括所述目标缺陷消息摘要值。
可选的,所述推荐样本库中的所述参考缺陷特征信息包括参考缺陷消息摘要值,其中所述基于推荐样本库确定与所述目标缺陷特征信息相匹配的目标参考修复代码包括:将所述目标缺陷消息摘要值与所述推荐样本库中的各个参考缺陷消息摘要值进行相似度计算;根据相似度计算结果,确定相匹配的所述目标参考修复代码。
可选的,所述基于所述目标参考修复代码,提供代码缺陷辅助修复服务包括:发送所述目标参考修复代码,或者,发送所述目标参考修复代码和在所述推荐样本库中与所述目标参考修复代码相对应的参考代码缺陷。
本发明实施例另一方面提供一种代码缺陷辅助修复系统,包括:获取单元,用于获取待修复的缺陷代码;目标参考修复代码确定单元,用于基于推荐样本库确定与所述待修复的缺陷代码相对应的目标参考修复代码,其中所述推荐样本库中预存储多组相互对应的参考缺陷代码和参考修复代码;辅助修复服务单元,用于基于所述目标参考修复代码,提供代码缺陷辅助修复服务。
可选的,所述目标参考修复代码确定单元包括:目标缺陷特征确定模块,用于确定所述待修复的缺陷代码的目标缺陷特征信息;特征匹配模块,用于基于推荐样本库确定与所述目标缺陷特征信息相匹配的目标参考修复代码,其中所述推荐样本库中还预存储了多组相互对应的参考缺陷特征信息和参考修复代码。
可选的,该系统还包括针对所述推荐样本库的建库单元,所述建库单元包括:第一缺陷代码集合统计模块,用于获取第一版本的应用程序代码,并统计所述第一版本的应用程序代码中的第一缺陷代码集合;第二缺陷代码集合统计模块,用于获取第二版本的应用程序代码,并统计所述第二版本的应用程序代码中的第二缺陷代码集合;比较模块,用于比较所述第一缺陷代码集合和所述第二缺陷代码集合,确定在所述第一版本和所述第二版本的所述应用程序代码之间已修复的缺陷代码;建库模块,用于将所述已修复的缺陷代码作为参考修复代码,并将所述参考修复代码所对应的缺陷代码确定为相对应的参考缺陷代码,以及,根据相互对应的所述参考修复代码和所述参考缺陷代码构建所述推荐样本库。
可选的,所述建库模块还用于确定并提取所述参考缺陷代码所对应的参考缺陷特征信息,以及,根据相互对应的所述参考缺陷特征信息、所述参考缺陷代码和所述参考修复代码,构建所述推荐样本库。
可选的,所述建库单元还用于基于多个不同种类的应用程序代码,构建所述推荐样本库。
可选的,所述参考缺陷特征信息和所述目标缺陷特征信息为针对代码缺陷的抽象语法树结构信息,其中所述目标缺陷特征确定模块包括:树转换组件,用于将包括所述待修复的缺陷代码的源文件转换为抽象语法树,其中所述抽象语法树上配置有与源代码位置相对应的多个节点结构;缺陷节点确定组件,用于根据所述待修复的缺陷代码所处的缺陷源代码位置,确定在所述抽象语法树上相对应的缺陷节点结构;以及目标缺陷特征计算组件,用于将所述缺陷节点结构中的节点代码信息按照预设的消息摘要算法进行计算,以得出对应的目标缺陷消息摘要值,其中所述目标缺陷特征信息包括所述目标缺陷消息摘要值。
可选的,所述推荐样本库中的所述参考缺陷特征信息包括参考缺陷消息摘要值,其中所述特征匹配模块包括:相似度计算组件,用于将所述目标缺陷消息摘要值与所述推荐样本库中的各个参考缺陷消息摘要值进行相似度计算;目标参考修复代码确定组件,用于根据相似度计算结果,确定相匹配的所述目标参考修复代码。
可选的,所述辅助修复服务单元用于发送所述目标参考修复代码,或者,发送所述目标参考修复代码和在所述推荐样本库中与所述目标参考修复代码相对应的参考代码缺陷。
通过上述技术方案,利用预存储了相互对应的参考缺陷代码的参考修复代码的推荐样本库来为待修复的缺陷代码提供相对应的目标参考修复代码,从而基于目标参考修复代码,提供代码缺陷辅助修复服务。由此,应用预配置的搜集了过往缺陷代码修复参考样本的推荐样本库,能够为待修复的缺陷代码提供修复参考案例,辅助开发人员修复代码缺陷,提高了代码修复效率和应用程序代码质量。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1是本发明一实施例的代码缺陷辅助修复方法的流程图;
图2是本发明一实施例的代码缺陷辅助修复方法中用于确定目标参考修复代码的流程图;
图3是本发明一实施例的代码缺陷辅助修复方法中用于确定目标缺陷特征信息的流程图;
图4是本发明一实施例的代码缺陷辅助修复方法中建库步骤的流程图;
图5是本发明一实施例的代码缺陷辅助修复方法的原理流程图;
图6是本发明一实施例的代码缺陷辅助修复系统的结构框图。
附图标记说明
601 获取单元 602 目标参考修复代码确定单元
603 辅助修复服务单元 6021 目标缺陷特征确定模块
6022 特征匹配模块 604 建库单元
60 代码缺陷辅助修复系统
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
如图1所示,本发明一实施例的代码缺陷辅助修复方法,包括:
S11、获取待修复的缺陷代码。
关于本发明实施例方法的执行主体,其可以是各种服务器或客户端,通过处理器或控制器来实现对代码缺陷辅助修复的过程。其中,该处理器或控制器可以是专用于实现代码缺陷辅助修复方法的部件,另外其也还可以是在通用控制器或处理器上配置专用于实现代码缺陷辅助修复方法的软件或硬件,且都属于本发明的保护范围内。
关于待修复的缺陷代码(或bug)的获取方式,可以是以各种方式而得到的,示例性地,其可以是通过人工标记而得到的,并且其也还可以是通过静态代码扫描工具扫描而得到的,且都属于本发明的保护范围内。
S12、基于推荐样本库确定与待修复的缺陷代码相对应的目标参考修复代码,其中该推荐样本库中预存储多组相互对应的参考缺陷代码和参考修复代码。
其中,可以是通过遍历推荐样本库,找到与待修复的缺陷代码相同或相类似的参考缺陷代码,进而通过调用该参考缺陷代码在推荐样本库中所对应的参考修复代码作为目标参考修复代码,从而实现针对目标参考修复代码的确定过程。可以理解的是,上述实施方式并不应视作对本发明实施例的限制,例如其还可以是不基于缺陷代码进行查库操作,而还可以是基于缺陷代码的特征信息来完成的,其具体细节将在下文其他实施例中展开。
S13、基于目标参考修复代码,提供代码缺陷辅助修复服务。
具体的,可以是通过发送目标参考修复代码,或者,发送目标参考修复代码和在推荐样本库中与目标参考修复代码相对应的参考代码缺陷。示例性地,可以是将目标参考修复代码发送至显示器件从而显示目标参考修复代码,以供软件开发人员查看并辅助其参考过往类似的修复过程,提高修复效率;另外,还可以是将目标参考修复代码通过数据传输方式发送到软件开发人员的终端,以供其查看并辅助修复代码缺陷;并且,还可以是将参考代码缺陷连带目标参考修复代码一起进行发送,从而使得开发人员可以将当前缺陷代码与库中存储的参考缺陷代码进行对比,能更加便于开发人员对比代码缺陷差异,从而提高代码修复的效率。
如图2,其示出了本发明一实施例的代码缺陷辅助修复方法中用于确定目标参考修复代码的过程,包括:S21、确定待修复的缺陷代码的目标缺陷特征信息;S22、基于推荐样本库确定与目标缺陷特征信息相匹配的目标参考修复代码,其中推荐样本库中还预存储了多组相互对应的参考缺陷特征信息和参考修复代码。因此,实现了通过针对缺陷特征信息的匹配操作,从推荐代码库中找到对应的目标参考修复代码,其中,缺陷特征信息可以是表示与缺陷代码唯一对应的身份信息,其能够用于标识缺陷代码。
在一些实施方式中,缺陷特征信息可以是表示基于消息摘要算法(例如MD5等)的消息摘要值。具体的,如图3,其示出了针对目标缺陷特征信息的确定过程,包括:
S31、将包括待修复的缺陷代码的源文件转换为抽象语法树,其中抽象语法树上配置有与源代码位置相对应的多个节点结构。
其中,可以是先将bug所在的整个代码源文件转化为AST(Abstract Syntax Tree,抽象语法树);其中,AST是以树状的形式表现编程语言的语法结构,这棵树定义了代码结构,树上的每个节点都表示源代码中的一种结构,通过操纵这个树,根据源码行号可以精准定位到该句源码在AST中对应的节点。
S32、根据待修复的缺陷代码所处的缺陷源代码位置,确定在抽象语法树上相对应的缺陷节点结构。
其中,通过缺陷源代码位置就能找到bug在AST中对应的节点,也就是缺陷节点结构。
S33、将缺陷节点结构中的节点代码信息按照预设的消息摘要算法进行计算,以得出对应的目标缺陷消息摘要值,其中目标缺陷特征信息包括目标缺陷消息摘要值。
其中,还可以是直接将目标缺陷消息摘要值用作目标缺陷特征信息,从而实现对缺陷代码的标识;以及,消息摘要算法可以是MD2、MD4、MD5、SHA1、SHA256、SHA384、SHA512等。
示例性地,目标缺陷消息摘要值可以是MD5值。相应地,可以是根据bug所在行号获取bug代码行在AST中对应的节点信息,对bug行代码对应的节点信息进行MD5计算,并将得到的MD5值作为唯一身份标示的bug特征。
需说明的是,在本实施例中,所使用的是AST节点而并非是单行的bug代码等,其中使用AST节点结构信息的原因和优势在于:只要代码的结构不发生变更,通过对AST节点信息计算的MD5值就不会发生变化。进一步地,推荐样本库中的参考缺陷特征信息包括参考缺陷消息摘要值,示例性地,在推荐样本库中的一个完整修复样本包括:1)bug代码片段(其可以是多行的,因为单行的bug代码可没有上下文可能体现不出缺陷所在,因此可以选择bug行前后多行代码作为bug代码片段存储);2)bug代码片段对应的AST节点信息作为bug的AST结构并存储;3)对应的修复bug后的代码片段。
进一步地,可以是通过以下方式来确定目标参考修复代码:将目标缺陷消息摘要值与推荐样本库中的各个参考缺陷消息摘要值进行相似度计算,进而根据相似度计算结果,确定相匹配的所述目标参考修复代码。由此,可以是通过相似度计算的方式,将推荐样本库中命中的修复代码片段(或者连同相应的bug代码片段)作为案例自动推荐出来供开发人员参考。
如图4,其示出了本发明一实施例的代码缺陷辅助修复方法中针对推荐样本库的建库步骤,包括:
S41、获取第一版本的应用程序代码,并统计第一版本的应用程序代码中的第一缺陷代码集合。
S42、获取第二版本的应用程序代码,并统计第二版本的应用程序代码中的第二缺陷代码集合。
S43、比较第一缺陷代码集合和第二缺陷代码集合,确定在第一版本和第二版本的应用程序代码之间已修复的缺陷代码。
S44、将已修复的缺陷代码作为参考修复代码,并将参考修复代码所对应的缺陷代码确定为相对应的参考缺陷代码,以及,根据相互对应的参考修复代码和参考缺陷代码构建推荐样本库。
示例性地,第一版本和第二版本可以是应用程序依次相连接的两个版本,通过对比这两个版本中的缺陷代码集合,就能够确定出在从第一版本到第二版本的过程中所修复的缺陷代码。更优选地,可以是收集应用程序的多个或所有版本,并将各个版本依次进行比较,例如可以是从最新版本向最原始版本逐个进行比较,从而确定在每一次版本更新过程中所修复的bug,并将其作为修复样例存储在推荐样本库中。
优选地,可以是基于多个不同类别的应用程序代码,构建推荐样本库。示例性地,可以是利用第一种应用程序代码的多个版本,并结合第二种应用程序代码的多个版本,来构建推荐样本库,因此使得所构建的推荐样本库中的样本更加丰富,能够满足多样化的bug修复的样例参考需求。
在一些实施方式中,当应用代码特征信息来完成查库操作时,可以是进行以下操作:确定并提取参考缺陷代码所对应的参考缺陷特征信息,并根据相互对应的参考缺陷特征信息、参考缺陷代码和参考修复代码,构建推荐样本库。其中,参考缺陷特征信息也可以是缺陷消息摘要值或MD5值,关于其计算过程也可以是部分参照上文针对目标缺陷消息摘要值的描述,在此便不赘述。
相应地,还可以是通过以下方式来确定目标参考修复代码:将目标缺陷消息摘要值与推荐样本库中的各个参考缺陷消息摘要值进行相似度计算,以及,根据相似度计算结果,确定相匹配的目标参考修复代码。
在本发明实施例中,通过执行静态代码检查,记录并存储每个版本代码库检查出来的所有bug信息,并根据检查出的bug类型以及bug所在文件的抽象语法树提取bug所在代码片段的AST结构计算bug特征作为bug的唯一身份标示。通过bug唯一身份标示特征对扫描出的bug建立追踪机制,计算该版本的代码库与上个版本代码库相比修复的bug,并将计算出的修复bug信息以及修复代码库版本进行存储。然后,从存储的修复bug信息集合中提取所有的bug所在的代码片段、bug类型、bug所在代码片段的AST结构、修复后的代码片段构建推荐样本库。进而,执行静态代码检查,检查出来的bug根据该bug类型、bug所在代码片段的AST结构通过相似度计算,将推荐样本库中命中的bug代码片段以及对应的修复代码片段作为案例自动推荐出来供开发者参考。
如图5,其示出了本发明一实施例的代码缺陷辅助修复方法的原理流程,包括:
1)执行静态代码检查,对检查出的所有bug进行特征计算。
根据bug类型以及bug所在文件的抽象语法树提取bug所在代码片段的AST结构计算bug特征作为bug的唯一身份标示。
2)存储静态代码检查的代码库版本信息以及该版本代码库检查出的所有bug信息。
将代码库版本版本相关信息以及该版本的检查出的所有bug信息(bug类型、bug所在代码片段、bug特征、bug所在代码片段的AST结构)永久存储。
3)计算指定版本代码库已修复bug。
查找上一个版本静态代码检查出的所有bug特征集合,指定版本代码库已经修复bug特征集合=上一个版本代码库bug特征集合-指定版本代码库bug特征集合。
4)收集修复样本。
从存储的修复bug信息集合中提取所有的bug所在的代码片段、bug类型、bug所在代码片段的AST结构、修复后的代码片段作为推荐样本库。
5)修复样本推荐。
执行静态代码检查,检查出来的bug根据该bug类型、bug所在代码片段的AST结构通过相似度计算,将推荐样本库中命中的bug代码片段以及对应的修复代码片段作为案例自动推荐出来供开发者参考。
由此,将其他开发者修复bug作为样例收集整理为推荐样本库,推荐给相似bug的开发者,并通过采集开发者已修复bug的样例,并将其作为相似bug的推荐样本,给开发者提供迅速解决bug的方案,提升代码质量。
如图6所示,本发明一实施例的代码缺陷辅助修复系统60,包括:获取单元601,用于获取待修复的缺陷代码;目标参考修复代码确定单元602,用于基于推荐样本库确定与所述待修复的缺陷代码相对应的目标参考修复代码,其中所述推荐样本库中预存储多组相互对应的参考缺陷代码和参考修复代码;辅助修复服务单元603,用于基于所述目标参考修复代码,提供代码缺陷辅助修复服务。
在一些实施方式中,所述目标参考修复代码确定单元602包括:目标缺陷特征确定模块6021,用于确定所述待修复的缺陷代码的目标缺陷特征信息;特征匹配模块6022,用于基于推荐样本库确定与所述目标缺陷特征信息相匹配的目标参考修复代码,其中所述推荐样本库中还预存储了多组相互对应的参考缺陷特征信息和参考修复代码。
在一些实施方式中,该系统还包括针对所述推荐样本库的建库单元604,所述建库单元604包括:第一缺陷代码集合统计模块(未示出),用于获取第一版本的应用程序代码,并统计所述第一版本的应用程序代码中的第一缺陷代码集合;第二缺陷代码集合统计模块(未示出),用于获取第二版本的应用程序代码,并统计所述第二版本的应用程序代码中的第二缺陷代码集合;比较模块(未示出),用于比较所述第一缺陷代码集合和所述第二缺陷代码集合,确定在所述第一版本和所述第二版本的所述应用程序代码之间已修复的缺陷代码;建库模块(未示出),用于将所述已修复的缺陷代码作为参考修复代码,并将所述参考修复代码所对应的缺陷代码确定为相对应的参考缺陷代码,以及,根据相互对应的所述参考修复代码和所述参考缺陷代码构建所述推荐样本库。
在一些实施方式中,所述建库模块还用于确定并提取所述参考缺陷代码所对应的参考缺陷特征信息,以及,根据相互对应的所述参考缺陷特征信息、所述参考缺陷代码和所述参考修复代码,构建所述推荐样本库。
在一些实施方式中,所述建库单元604还用于基于多个不同种类的应用程序代码,构建所述推荐样本库。
在一些实施方式中,所述参考缺陷特征信息和所述目标缺陷特征信息为针对代码缺陷的抽象语法树结构信息,其中所述目标缺陷特征确定模块包括:树转换组件,用于将包括所述待修复的缺陷代码的源文件转换为抽象语法树,其中所述抽象语法树上配置有与源代码位置相对应的多个节点结构;缺陷节点确定组件,用于根据所述待修复的缺陷代码所处的缺陷源代码位置,确定在所述抽象语法树上相对应的缺陷节点结构;以及目标缺陷特征计算组件,用于将所述缺陷节点结构中的节点代码信息按照预设的消息摘要算法进行计算,以得出对应的目标缺陷消息摘要值,其中所述目标缺陷特征信息包括所述目标缺陷消息摘要值。
在一些实施方式中,所述推荐样本库中的所述参考缺陷特征信息包括参考缺陷消息摘要值,其中所述特征匹配模块包括:相似度计算组件,用于将所述目标缺陷消息摘要值与所述推荐样本库中的各个参考缺陷消息摘要值进行相似度计算;目标参考修复代码确定组件,用于根据相似度计算结果,确定相匹配的所述目标参考修复代码。
在一些实施方式中,所述辅助修复服务单元用于发送所述目标参考修复代码,或者,发送所述目标参考修复代码和在所述推荐样本库中与所述目标参考修复代码相对应的参考代码缺陷。
关于本发明实施例的代码缺陷辅助修复系统的更多的细节可以参照上文针对代码缺陷辅助修复方法实施例的描述,并取得与上述代码缺陷辅助修复方法实施例相同或相应的技术效果,故在此便不赘述。
所述代码缺陷辅助修复系统包括处理器和存储器,上述获取单元、目标参考修复代码确定单元、辅助修复服务单元和建库单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过将其他开发者修复bug作为样例收集整理为推荐样本库,推荐给相似bug的开发者,并通过采集开发者已修复bug的样例,并将其作为相似bug的推荐样本,给开发者提供迅速解决bug的方案,提升代码质量。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种机器可读存储介质,其上存储有程序,该程序被处理器执行时实现所述代码缺陷辅助修复方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述代码缺陷辅助修复方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
一种代码缺陷辅助修复方法,包括:获取待修复的缺陷代码;基于推荐样本库确定与所述待修复的缺陷代码相对应的目标参考修复代码,其中所述推荐样本库中预存储多组相互对应的参考缺陷代码和参考修复代码;基于所述目标参考修复代码,提供代码缺陷辅助修复服务。
在一些实施方式中,所述基于推荐样本库确定与所述待修复的缺陷代码相对应的目标参考修复代码包括:确定所述待修复的缺陷代码的目标缺陷特征信息;基于推荐样本库确定与所述目标缺陷特征信息相匹配的目标参考修复代码,其中所述推荐样本库中还预存储了多组相互对应的参考缺陷特征信息和参考修复代码。
在一些实施方式中,该方法还包括针对所述推荐样本库的建库步骤,所述建库步骤包括:获取第一版本的应用程序代码,并统计所述第一版本的应用程序代码中的第一缺陷代码集合;获取第二版本的应用程序代码,并统计所述第二版本的应用程序代码中的第二缺陷代码集合;比较所述第一缺陷代码集合和所述第二缺陷代码集合,确定在所述第一版本和所述第二版本的所述应用程序代码之间已修复的缺陷代码;将所述已修复的缺陷代码作为参考修复代码,并将所述参考修复代码所对应的缺陷代码确定为相对应的参考缺陷代码,以及,根据相互对应的所述参考修复代码和所述参考缺陷代码构建所述推荐样本库。
在一些实施方式中,所述根据相互对应的所述参考修复代码和所述参考缺陷代码构建所述推荐样本库还包括:确定并提取所述参考缺陷代码所对应的参考缺陷特征信息;根据相互对应的所述参考缺陷特征信息、所述参考缺陷代码和所述参考修复代码,构建所述推荐样本库。
在一些实施方式中,所述建库步骤还包括:基于多个不同种类的应用程序代码,构建所述推荐样本库。
在一些实施方式中,所述确定所述待修复的缺陷代码的目标缺陷特征信息包括:将包括所述待修复的缺陷代码的源文件转换为抽象语法树,其中所述抽象语法树上配置有与源代码位置相对应的多个节点结构;根据所述待修复的缺陷代码所处的缺陷源代码位置,确定在所述抽象语法树上相对应的缺陷节点结构;以及将所述缺陷节点结构中的节点代码信息按照预设的消息摘要算法进行计算,以得出对应的目标缺陷消息摘要值,其中所述目标缺陷特征信息包括所述目标缺陷消息摘要值。
在一些实施方式中,所述推荐样本库中的所述参考缺陷特征信息包括参考缺陷消息摘要值,其中所述基于推荐样本库确定与所述目标缺陷特征信息相匹配的目标参考修复代码包括:将所述目标缺陷消息摘要值与所述推荐样本库中的各个参考缺陷消息摘要值进行相似度计算;根据相似度计算结果,确定相匹配的所述目标参考修复代码。
在一些实施方式中,所述基于所述目标参考修复代码,提供代码缺陷辅助修复服务包括:发送所述目标参考修复代码,或者,发送所述目标参考修复代码和在所述推荐样本库中与所述目标参考修复代码相对应的参考代码缺陷。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
一种代码缺陷辅助修复方法,包括:获取待修复的缺陷代码;基于推荐样本库确定与所述待修复的缺陷代码相对应的目标参考修复代码,其中所述推荐样本库中预存储多组相互对应的参考缺陷代码和参考修复代码;基于所述目标参考修复代码,提供代码缺陷辅助修复服务。
在一些实施方式中,所述基于推荐样本库确定与所述待修复的缺陷代码相对应的目标参考修复代码包括:确定所述待修复的缺陷代码的目标缺陷特征信息;基于推荐样本库确定与所述目标缺陷特征信息相匹配的目标参考修复代码,其中所述推荐样本库中还预存储了多组相互对应的参考缺陷特征信息和参考修复代码。
在一些实施方式中,该方法还包括针对所述推荐样本库的建库步骤,所述建库步骤包括:获取第一版本的应用程序代码,并统计所述第一版本的应用程序代码中的第一缺陷代码集合;获取第二版本的应用程序代码,并统计所述第二版本的应用程序代码中的第二缺陷代码集合;比较所述第一缺陷代码集合和所述第二缺陷代码集合,确定在所述第一版本和所述第二版本的所述应用程序代码之间已修复的缺陷代码;将所述已修复的缺陷代码作为参考修复代码,并将所述参考修复代码所对应的缺陷代码确定为相对应的参考缺陷代码,以及,根据相互对应的所述参考修复代码和所述参考缺陷代码构建所述推荐样本库。
在一些实施方式中,所述根据相互对应的所述参考修复代码和所述参考缺陷代码构建所述推荐样本库还包括:确定并提取所述参考缺陷代码所对应的参考缺陷特征信息;根据相互对应的所述参考缺陷特征信息、所述参考缺陷代码和所述参考修复代码,构建所述推荐样本库。
在一些实施方式中,所述建库步骤还包括:基于多个不同种类的应用程序代码,构建所述推荐样本库。
在一些实施方式中,所述确定所述待修复的缺陷代码的目标缺陷特征信息包括:将包括所述待修复的缺陷代码的源文件转换为抽象语法树,其中所述抽象语法树上配置有与源代码位置相对应的多个节点结构;根据所述待修复的缺陷代码所处的缺陷源代码位置,确定在所述抽象语法树上相对应的缺陷节点结构;以及将所述缺陷节点结构中的节点代码信息按照预设的消息摘要算法进行计算,以得出对应的目标缺陷消息摘要值,其中所述目标缺陷特征信息包括所述目标缺陷消息摘要值。
在一些实施方式中,所述推荐样本库中的所述参考缺陷特征信息包括参考缺陷消息摘要值,其中所述基于推荐样本库确定与所述目标缺陷特征信息相匹配的目标参考修复代码包括:将所述目标缺陷消息摘要值与所述推荐样本库中的各个参考缺陷消息摘要值进行相似度计算;根据相似度计算结果,确定相匹配的所述目标参考修复代码。
在一些实施方式中,所述基于所述目标参考修复代码,提供代码缺陷辅助修复服务包括:发送所述目标参考修复代码,或者,发送所述目标参考修复代码和在所述推荐样本库中与所述目标参考修复代码相对应的参考代码缺陷。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (16)

1.一种代码缺陷辅助修复方法,包括:
获取待修复的缺陷代码;
基于推荐样本库确定与所述待修复的缺陷代码相对应的目标参考修复代码,其中所述推荐样本库中预存储多组相互对应的参考缺陷代码和参考修复代码;
基于所述目标参考修复代码,提供代码缺陷辅助修复服务。
2.根据权利要求1所述的方法,其中所述基于推荐样本库确定与所述待修复的缺陷代码相对应的目标参考修复代码包括:
确定所述待修复的缺陷代码的目标缺陷特征信息;
基于推荐样本库确定与所述目标缺陷特征信息相匹配的目标参考修复代码,其中所述推荐样本库中还预存储了多组相互对应的参考缺陷特征信息和参考修复代码。
3.根据权利要求1所述的方法,其中,该方法还包括针对所述推荐样本库的建库步骤,所述建库步骤包括:
获取第一版本的应用程序代码,并统计所述第一版本的应用程序代码中的第一缺陷代码集合;
获取第二版本的应用程序代码,并统计所述第二版本的应用程序代码中的第二缺陷代码集合;
比较所述第一缺陷代码集合和所述第二缺陷代码集合,确定在所述第一版本和所述第二版本的所述应用程序代码之间已修复的缺陷代码;
将所述已修复的缺陷代码作为参考修复代码,并将所述参考修复代码所对应的缺陷代码确定为相对应的参考缺陷代码,以及,根据相互对应的所述参考修复代码和所述参考缺陷代码构建所述推荐样本库。
4.根据权利要求3所述的方法,其中,所述根据相互对应的所述参考修复代码和所述参考缺陷代码构建所述推荐样本库还包括:
确定并提取所述参考缺陷代码所对应的参考缺陷特征信息;
根据相互对应的所述参考缺陷特征信息、所述参考缺陷代码和所述参考修复代码,构建所述推荐样本库。
5.根据权利要求3所述的方法,其中,所述建库步骤还包括:基于多个不同种类的应用程序代码,构建所述推荐样本库。
6.根据权利要求2所述的方法,其中,所述确定所述待修复的缺陷代码的目标缺陷特征信息包括:
将包括所述待修复的缺陷代码的源文件转换为抽象语法树,其中所述抽象语法树上配置有与源代码位置相对应的多个节点结构;
根据所述待修复的缺陷代码所处的缺陷源代码位置,确定在所述抽象语法树上相对应的缺陷节点结构;以及
将所述缺陷节点结构中的节点代码信息按照预设的消息摘要算法进行计算,以得出对应的目标缺陷消息摘要值,其中所述目标缺陷特征信息包括所述目标缺陷消息摘要值。
7.根据权利要求6所述的方法,其中,所述推荐样本库中的所述参考缺陷特征信息包括参考缺陷消息摘要值,其中所述基于推荐样本库确定与所述目标缺陷特征信息相匹配的目标参考修复代码包括:
将所述目标缺陷消息摘要值与所述推荐样本库中的各个参考缺陷消息摘要值进行相似度计算;
根据相似度计算结果,确定相匹配的所述目标参考修复代码。
8.根据权利要求1所述的方法,其中,所述基于所述目标参考修复代码,提供代码缺陷辅助修复服务包括:
发送所述目标参考修复代码,或者,
发送所述目标参考修复代码和在所述推荐样本库中与所述目标参考修复代码相对应的参考代码缺陷。
9.一种代码缺陷辅助修复系统,包括:
获取单元,用于获取待修复的缺陷代码;
目标参考修复代码确定单元,用于基于推荐样本库确定与所述待修复的缺陷代码相对应的目标参考修复代码,其中所述推荐样本库中预存储多组相互对应的参考缺陷代码和参考修复代码;
辅助修复服务单元,用于基于所述目标参考修复代码,提供代码缺陷辅助修复服务。
10.根据权利要求9所述的系统,其中,所述目标参考修复代码确定单元包括:
目标缺陷特征确定模块,用于确定所述待修复的缺陷代码的目标缺陷特征信息;
特征匹配模块,用于基于推荐样本库确定与所述目标缺陷特征信息相匹配的目标参考修复代码,其中所述推荐样本库中还预存储了多组相互对应的参考缺陷特征信息和参考修复代码。
11.根据权利要求9所述的系统,其中,该系统还包括针对所述推荐样本库的建库单元,所述建库单元包括:
第一缺陷代码集合统计模块,用于获取第一版本的应用程序代码,并统计所述第一版本的应用程序代码中的第一缺陷代码集合;
第二缺陷代码集合统计模块,用于获取第二版本的应用程序代码,并统计所述第二版本的应用程序代码中的第二缺陷代码集合;
比较模块,用于比较所述第一缺陷代码集合和所述第二缺陷代码集合,确定在所述第一版本和所述第二版本的所述应用程序代码之间已修复的缺陷代码;
建库模块,用于将所述已修复的缺陷代码作为参考修复代码,并将所述参考修复代码所对应的缺陷代码确定为相对应的参考缺陷代码,以及,根据相互对应的所述参考修复代码和所述参考缺陷代码构建所述推荐样本库。
12.根据权利要求11所述的系统,其中,所述建库模块还用于确定和提取所述参考缺陷代码所对应的参考缺陷特征信息,以及,根据相互对应的所述参考缺陷特征信息、所述参考缺陷代码和所述参考修复代码,构建所述推荐样本库。
13.根据权利要求11所述的系统,其中,所述建库单元还用于基于多个不同种类的应用程序代码,构建所述推荐样本库。
14.根据权利要求10所述的系统,其中,所述参考缺陷特征信息和所述目标缺陷特征信息为针对代码缺陷的抽象语法树结构信息,其中所述目标缺陷特征确定模块包括:
树转换组件,用于将包括所述待修复的缺陷代码的源文件转换为抽象语法树,其中所述抽象语法树上配置有与源代码位置相对应的多个节点结构;
缺陷节点确定组件,用于根据所述待修复的缺陷代码所处的缺陷源代码位置,确定在所述抽象语法树上相对应的缺陷节点结构;以及
目标缺陷特征计算组件,用于将所述缺陷节点结构中的节点代码信息按照预设的消息摘要算法进行计算,以得出对应的目标缺陷消息摘要值,其中所述目标缺陷特征信息包括所述目标缺陷消息摘要值。
15.根据权利要求14所述的系统,其中,所述推荐样本库中的所述参考缺陷特征信息包括参考缺陷消息摘要值,其中所述特征匹配模块包括:
相似度计算组件,用于将所述目标缺陷消息摘要值与所述推荐样本库中的各个参考缺陷消息摘要值进行相似度计算;
目标参考修复代码确定组件,用于根据相似度计算结果,确定相匹配的所述目标参考修复代码。
16.根据权利要求9所述的系统,其中,所述辅助修复服务单元用于发送所述目标参考修复代码,或者,发送所述目标参考修复代码和在所述推荐样本库中与所述目标参考修复代码相对应的参考代码缺陷。
CN201910369266.6A 2019-05-05 2019-05-05 代码缺陷辅助修复方法及系统 Active CN110221933B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910369266.6A CN110221933B (zh) 2019-05-05 2019-05-05 代码缺陷辅助修复方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910369266.6A CN110221933B (zh) 2019-05-05 2019-05-05 代码缺陷辅助修复方法及系统

Publications (2)

Publication Number Publication Date
CN110221933A true CN110221933A (zh) 2019-09-10
CN110221933B CN110221933B (zh) 2023-07-21

Family

ID=67820255

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910369266.6A Active CN110221933B (zh) 2019-05-05 2019-05-05 代码缺陷辅助修复方法及系统

Country Status (1)

Country Link
CN (1) CN110221933B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110806978A (zh) * 2019-10-31 2020-02-18 吉林亿联银行股份有限公司 一种第三方组件的缺陷管理方法及装置
CN111368306A (zh) * 2020-03-03 2020-07-03 苏州浪潮智能科技有限公司 一种后台服务器安全加固的方法、系统、设备及介质
CN113448852A (zh) * 2021-06-29 2021-09-28 中国工商银行股份有限公司 一种测试案例的获取方法、装置、电子设备及存储介质
CN113703824A (zh) * 2021-08-26 2021-11-26 上海德拓信息技术股份有限公司 一种多项目软件质量修复方法与系统

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182689A (zh) * 2013-05-24 2014-12-03 阿里巴巴集团控股有限公司 系统的修复和保护方法及系统
CN104699611A (zh) * 2015-03-18 2015-06-10 北京航空航天大学 一种基于开源软件缺陷代码修改模式的缺陷信息提取方法
CN105335246A (zh) * 2015-10-27 2016-02-17 北京大学 一种基于问答网站分析的程序崩溃缺陷自动修复方法
CN106537332A (zh) * 2014-06-13 2017-03-22 查尔斯斯塔克德拉珀实验室公司 软件分析系统和方法
US20170235569A1 (en) * 2016-02-17 2017-08-17 Silverthread, Inc. Computer-implemented methods and systems for measuring, estimating, and managing economic outcomes and technical debt in software systems and projects
CN107193677A (zh) * 2017-04-18 2017-09-22 广州视源电子科技股份有限公司 代码缺陷的通知方法及系统
CN107643984A (zh) * 2017-10-18 2018-01-30 百度在线网络技术(北京)有限公司 用于输出信息的方法和装置
CN107729258A (zh) * 2017-11-30 2018-02-23 扬州大学 一种面向软件版本问题的程序故障定位方法
CN108090234A (zh) * 2018-01-12 2018-05-29 扬州大学 一种面向软件缺陷的信息网络自动构建方法
US20180267886A1 (en) * 2017-03-20 2018-09-20 Devfactory Fz-Llc Defect Prediction Operation
CN108932192A (zh) * 2017-05-22 2018-12-04 南京大学 一种基于抽象语法树的Python程序类型缺陷检测方法
CN109376092A (zh) * 2018-11-26 2019-02-22 扬州大学 一种面向缺陷补丁代码的软件缺陷原因自动分析方法
CN109445834A (zh) * 2018-10-30 2019-03-08 北京计算机技术及应用研究所 基于抽象语法树的程序代码相似性快速比较方法
CN109558166A (zh) * 2018-11-26 2019-04-02 扬州大学 一种面向缺陷定位的代码搜索方法
CN109634833A (zh) * 2017-10-09 2019-04-16 北京京东尚科信息技术有限公司 一种软件缺陷预测方法和装置

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182689A (zh) * 2013-05-24 2014-12-03 阿里巴巴集团控股有限公司 系统的修复和保护方法及系统
CN106537332A (zh) * 2014-06-13 2017-03-22 查尔斯斯塔克德拉珀实验室公司 软件分析系统和方法
CN104699611A (zh) * 2015-03-18 2015-06-10 北京航空航天大学 一种基于开源软件缺陷代码修改模式的缺陷信息提取方法
CN105335246A (zh) * 2015-10-27 2016-02-17 北京大学 一种基于问答网站分析的程序崩溃缺陷自动修复方法
US20170235569A1 (en) * 2016-02-17 2017-08-17 Silverthread, Inc. Computer-implemented methods and systems for measuring, estimating, and managing economic outcomes and technical debt in software systems and projects
US20180267886A1 (en) * 2017-03-20 2018-09-20 Devfactory Fz-Llc Defect Prediction Operation
CN107193677A (zh) * 2017-04-18 2017-09-22 广州视源电子科技股份有限公司 代码缺陷的通知方法及系统
CN108932192A (zh) * 2017-05-22 2018-12-04 南京大学 一种基于抽象语法树的Python程序类型缺陷检测方法
CN109634833A (zh) * 2017-10-09 2019-04-16 北京京东尚科信息技术有限公司 一种软件缺陷预测方法和装置
CN107643984A (zh) * 2017-10-18 2018-01-30 百度在线网络技术(北京)有限公司 用于输出信息的方法和装置
CN107729258A (zh) * 2017-11-30 2018-02-23 扬州大学 一种面向软件版本问题的程序故障定位方法
CN108090234A (zh) * 2018-01-12 2018-05-29 扬州大学 一种面向软件缺陷的信息网络自动构建方法
CN109445834A (zh) * 2018-10-30 2019-03-08 北京计算机技术及应用研究所 基于抽象语法树的程序代码相似性快速比较方法
CN109376092A (zh) * 2018-11-26 2019-02-22 扬州大学 一种面向缺陷补丁代码的软件缺陷原因自动分析方法
CN109558166A (zh) * 2018-11-26 2019-04-02 扬州大学 一种面向缺陷定位的代码搜索方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
TAO JI 等: "Automated Program Repair by Using Similar Code Containing Fix Ingredients", 《2016 IEEE 40TH ANNUAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE》 *
TAO JI 等: "Automated Program Repair by Using Similar Code Containing Fix Ingredients", 《2016 IEEE 40TH ANNUAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE》, 25 August 2016 (2016-08-25), pages 198 *
YINGYI WANG 等: "CRSearcher: Searching Code Database for Repairing Bugs", 《INTERNETWARE "17: PROCEEDINGS OF THE 9TH ASIA-PACIFIC SYMPOSIUM ON INTERNETWARE》 *
YINGYI WANG 等: "CRSearcher: Searching Code Database for Repairing Bugs", 《INTERNETWARE "17: PROCEEDINGS OF THE 9TH ASIA-PACIFIC SYMPOSIUM ON INTERNETWARE》, 23 September 2017 (2017-09-23), pages 2 - 5 *
王斌;吴太文;胡培培;: "软件缺陷分类和分析研究", 计算机科学, vol. 40, no. 09, pages 16 - 20 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110806978A (zh) * 2019-10-31 2020-02-18 吉林亿联银行股份有限公司 一种第三方组件的缺陷管理方法及装置
CN111368306A (zh) * 2020-03-03 2020-07-03 苏州浪潮智能科技有限公司 一种后台服务器安全加固的方法、系统、设备及介质
CN113448852A (zh) * 2021-06-29 2021-09-28 中国工商银行股份有限公司 一种测试案例的获取方法、装置、电子设备及存储介质
CN113703824A (zh) * 2021-08-26 2021-11-26 上海德拓信息技术股份有限公司 一种多项目软件质量修复方法与系统
CN113703824B (zh) * 2021-08-26 2024-06-04 上海德拓信息技术股份有限公司 一种多项目软件质量修复方法与系统

Also Published As

Publication number Publication date
CN110221933B (zh) 2023-07-21

Similar Documents

Publication Publication Date Title
CN110221933A (zh) 代码缺陷辅助修复方法及系统
CN106484606B (zh) 一种代码提交方法和设备
US9251046B2 (en) Method and system for generating and processing black box test cases
US7757125B2 (en) Defect resolution methodology and data defects quality/risk metric model extension
CN110414242A (zh) 用于检测业务逻辑漏洞的方法、装置、设备及介质
US8423960B2 (en) Evaluation of software based on review history
CN109947646A (zh) 接口测试方法、装置、计算机设备和存储介质
CN102236672B (zh) 一种数据导入方法及装置
CN111160783B (zh) 数字资产价值的评价方法、系统及电子设备
CN109766697A (zh) 应用于Linux系统的漏洞扫描方法、存储介质、设备及系统
CN110083514B (zh) 软件测试缺陷评估方法、装置、计算机设备及存储介质
Mancini et al. Anytime system level verification via random exhaustive hardware in the loop simulation
AU2018202153A1 (en) System and method for tool chain data capture through parser for empirical data analysis
US20150089290A1 (en) Derivation of generalized test cases
CN105868956A (zh) 一种数据处理方法及装置
WO2021183382A1 (en) Graph-based method for inductive bug localization
CN115840560A (zh) 一种用于软件开发过程的管理系统
CN111190817A (zh) 软件缺陷的处理方法及装置
CN111144429A (zh) 对象分类方法及其系统、计算机系统及计算机可读介质
CN115185792A (zh) 故障硬件处理方法、装置和系统
CN114490413A (zh) 测试数据的准备方法及装置、存储介质和电子设备
Moyo et al. A metasynthesis of solo software development methodologies
JP2023100542A (ja) シナリオ構築システム、シナリオ構築装置、および、シナリオ構築方法
CN113791980A (zh) 测试用例的转化分析方法、装置、设备及存储介质
KR102217092B1 (ko) 애플리케이션의 품질 정보 제공 방법 및 장치

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
GR01 Patent grant
GR01 Patent grant