CN106708729A - 代码缺陷的预测方法及装置 - Google Patents

代码缺陷的预测方法及装置 Download PDF

Info

Publication number
CN106708729A
CN106708729A CN201611030122.0A CN201611030122A CN106708729A CN 106708729 A CN106708729 A CN 106708729A CN 201611030122 A CN201611030122 A CN 201611030122A CN 106708729 A CN106708729 A CN 106708729A
Authority
CN
China
Prior art keywords
defect
information
attribute information
object code
aacode
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
CN201611030122.0A
Other languages
English (en)
Other versions
CN106708729B (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.)
Neusoft Corp
Original Assignee
Neusoft Corp
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 Neusoft Corp filed Critical Neusoft Corp
Priority to CN201611030122.0A priority Critical patent/CN106708729B/zh
Publication of CN106708729A publication Critical patent/CN106708729A/zh
Application granted granted Critical
Publication of CN106708729B publication Critical patent/CN106708729B/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/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • 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

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)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种代码缺陷的预测方法及装置,涉及代码缺陷检测技术领域,本发明减少了代码缺陷测试所消耗的人员工作量。本发明的技术方案为:获取目标代码的属性信息;根据代码缺陷库中的属性信息和目标代码的属性信息确定所述目标代码对应的代码缺陷信息,所述代码缺陷库中存储属性信息与代码缺陷信息的对应关系;输出与所述目标代码对应的代码缺陷信息,所述代码缺陷信息用于预测所述目标代码存在的缺陷。本发明主要用于预测目标代码中存在的缺陷。

Description

代码缺陷的预测方法及装置
技术领域
本发明涉及代码缺陷检测技术领域,特别是涉及一种代码缺陷的预测方法及装置。
背景技术
在软件业蓬勃兴起的大背景下,我们需要不断提高软件交付的质量以满足用户日益提高的标准。软件交付的质量不仅取决于质量体系的完善度,也建立在编程人员的技术水平基础之上。当一个庞大系统的开发人员频繁变动,新老编程人员技术水平参差不齐时,测试人员将会面临巨大的代码测试挑战。
目前,在软件交付时间压力和支出成本的考量下,测试人员往往默认此问题存在,由其自行承担代码错误解决的成本,或采用后期加大测试力度或提供额外培训的方法来减少代码错误。
但是,后期的测试在消耗了额外的时间及人力成本的同时,代码缺陷预测效果并不明显;另外,虽然缺陷库中已经积累了大量的缺陷数据,但由于时间及精力所限,常常无法深入分析其中蕴含的信息,忽略了数据中隐藏的价值。因此,现有代码缺陷测试会消耗大量的人员工作量。
发明内容
有鉴于此,本发明提供一种代码缺陷的预测方法及装置,主要目的在于减少代码缺陷测试所消耗的人员工作量。
依据本发明一个方面,提供了一种代码缺陷的预测方法,包括:
获取目标代码的属性信息;
根据代码缺陷库中的属性信息和目标代码的属性信息确定所述目标代码对应的代码缺陷信息,所述代码缺陷库中存储属性信息与代码缺陷信息的对应关系;
输出与所述目标代码对应的代码缺陷信息,所述代码缺陷信息用于预测所述目标代码存在的缺陷。
具体的,所述目标代码的属性信息包括用户属性信息和缺陷属性信息,所述根据代码缺陷库中的属性信息和目标代码的属性信息确定所述目标代码对应的代码缺陷信息包括:
从用户管理库中获取与所述用户属性信息相似度超过第一预置阈值的用户标识信息,所述用户管理系统中存储有用户属性信息与用户标识信息的对应关系;
从所述代码缺陷库中获取与用户标识信息对应的缺陷属性信息,所述代码缺陷库中的属性信息为用户标识信息与缺陷属性信息的对应关系;
根据所述获取的缺陷属性信息和目标代码的缺陷属性信息确定所述目标代码对应的代码缺陷信息。
具体的,所述根据所述获取的缺陷属性信息和目标代码的缺陷属性信息确定所述目标代码对应的代码缺陷信息包括:
分别计算所述目标代码的缺陷属性信息与所述获取的缺陷属性信息的相似度;
从所述代码缺陷库中获取相似度超过第二预置阈值的缺陷属性信息;
将所述代码缺陷库中与所述获取的缺陷属性信息对应的代码缺陷信息确定为所述目标代码的代码缺陷信息。
具体的,所述分别计算所述目标代码的缺陷属性信息与所述获取的缺陷属性信息的相似度包括:
通过余弦相似度算法分别计算所述目标代码的缺陷属性信息与所述获取的缺陷属性信息的相似度。
具体的,所述缺陷属性信息包括:缺陷等级信息、缺陷模块分布信息、缺陷回归次数信息、和/或缺陷类型信息;所述用户属性信息包括:用户开发年限信息、用户开发语言信息、用户所属部门信息、和/或用户开发项目信息。
依据本发明另一个方面,提供了一种代码缺陷的预测装置,包括:
获取单元,用于获取目标代码的属性信息;
确定单元,用于根据代码缺陷库中的属性信息和目标代码的属性信息确定所述目标代码对应的代码缺陷信息,所述代码缺陷库中存储属性信息与代码缺陷信息的对应关系;
输出单元,用于输出与所述目标代码对应的代码缺陷信息,所述代码缺陷信息用于预测所述目标代码存在的缺陷。
具体的,所述目标代码的属性信息包括用户属性信息和缺陷属性信息,所述确定单元包括:
获取模块,用于从用户管理库中获取与所述用户属性信息相似度超过第一预置阈值的用户标识信息,所述用户管理系统中存储有用户属性信息与用户标识信息的对应关系;
所述获取模块,还用于从所述代码缺陷库中获取与用户标识信息对应的缺陷属性信息,所述代码缺陷库中的属性信息为用户标识信息与缺陷属性信息的对应关系;
确定模块,用于根据所述获取的缺陷属性信息和目标代码的缺陷属性信息确定所述目标代码对应的代码缺陷信息。
具体的,所述确定模块包括:
计算子模块,用于分别计算所述目标代码的缺陷属性信息与所述获取的缺陷属性信息的相似度;
获取子模块,用于从所述代码缺陷库中获取相似度超过第二预置阈值的缺陷属性信息;
确定子模块,用于将所述代码缺陷库中与所述获取的缺陷属性信息对应的代码缺陷信息确定为所述目标代码的代码缺陷信息。
所述计算模块,具体用于通过余弦相似度算法分别计算所述目标代码的缺陷属性信息与所述获取的缺陷属性信息的相似度。
具体的,所述缺陷属性信息包括:缺陷等级信息、缺陷模块分布信息、缺陷回归次数信息、和/或缺陷类型信息;所述用户属性信息包括:用户开发年限信息、用户开发语言信息、用户所属部门信息、和/或用户开发项目信息。
借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:
本发明实施例提供的一种代码缺陷的预测方法及装置,首先获取目标代码的属性信息,然后根据代码缺陷库中的属性信息和目标代码的属性信息确定所述目标代码对应的代码缺陷信息,所述代码缺陷库中存储属性信息与代码缺陷信息的对应关系,最后输出与所述目标代码对应的代码缺陷信息,所述代码缺陷信息用于预测所述目标代码存在的缺陷。与目前采用后期加大测试力度或提供额外培训的方法来减少代码错误相比,本发明实施例首先获取目标代码的属性信息,然后对代码缺陷库中数据与目标代码的属性信息进行结合分析,即对编程人员的相似度进行协同过滤分析,然后根据分析结果为目标代码的编程人员提供易犯错误提示,以使得编程人员根据错误提示信息对程序代码进行修改,从而通过本发明实施例降低了程序缺陷率,减少了代码缺陷测试所消耗的人员工作量。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种代码缺陷的预测方法流程图;
图2示出了本发明实施例提供的另一种代码缺陷的预测方法流程图;
图3示出了本发明实施例提供的一种代码缺陷的预测装置的结构框图;
图4示出了本发明实施例提供的另一种代码缺陷的预测装置的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种代码缺陷的预测方法,如图1所示,具体步骤包括:
101、获取目标代码的属性信息。
其中,目标代码为待测试的程序代码,每个目标代码均有其对应的属性信息,目标代码的属性信息包括用于描述编写目标代码用户的属性信息及该用户对应的缺陷属性信息,缺陷属性信息用于描述用户历史的各项缺陷属性数据。所述属性信息具体可以为缺陷等级信息、缺陷模块分布信息、缺陷回归次数信息、缺陷类型信息、开发负责人的开发年限信息、开发负责人的开发语言信息、开发负责人所属的部门信息、目标代码的功能模块信息、目标代码的需求信息、目标代码所属的开发项目信息等,本发明实施例不做具体限定。
需要说明的是,本发明实施例可以通过扫描目标代码的方式获取目标代码的描述信息,通过目标代码对应的用户标识信息获取用户的属性信息、缺陷属性信息,即从用户管理库中获取与用户标识信息对应的用户属性信息,从代码缺陷库中获取与用户标识信息对应的缺陷属性信息。其中,用户管理库中存储有各个用户标识信息分别对应的属性信息,用户的属性信息用于描述用户的身份,具体可以为用户入职年限信息、用户所属部门信息、用户职务信息、用户使用的开发语言信息等,本发明不做具体限定。
102、根据代码缺陷库中的属性信息和目标代码的属性信息确定所述目标代码对应的代码缺陷信息。
其中,所述代码缺陷库中存储属性信息与代码缺陷信息的对应关系,代码缺陷库中的数据是总结历史代码缺陷数据集得到的,目标代码对应的代码缺陷信息用于描述目标代码编写过程中易出现的问题。在本发明实施例中,可以通过相似性算法确定与目标代码对应的代码缺陷信息,具体的过程为:将目标代码的属性信息与缺陷代码库中的属性信息做相似性计算,然后从缺陷代码库中获取相似度前N名的属性信息,最后将获取前N名属性信息对应的代码缺陷信息确认为目标代码对应的代码缺陷信息。
例如,获取目标代码的属性信息A中的内容为:A1,A2,A3,…,Ai,代码缺陷库中属性信息B中的内容为:B1,B2,B3,…,Bi,以此生成针对属性信息A的统计指标向量A=(A1,A2,A3,…,Ai),属性信息B的统计指标向量B=(B1,B2,B3,…,Bi),通过余弦相似公式为:
计算用户A与用户B的相似性。其中,Ai和Bi分别代表向量A和B的各分量,包括开发年限、开发语言、该人代码在缺陷系统中所占百分比、缺陷回归次数、缺陷模块分布、缺陷等级、该人负责的功能等。
103、输出与所述目标代码对应的代码缺陷信息。
其中,所述代码缺陷信息用于预测所述目标代码存在的缺陷。在本发明实施例中,在用户编写目标代码的过程中,输出与目标代码对应的代码缺陷信息,可以随时提醒用户目标代码容易出现的缺陷问题,避免编写程序代码过程中出现重复性的错误,提高软件质量,降低程序缺陷率,减少后续测试人员工作量。
本发明实施例提供了一种代码缺陷的预测方法,首先获取目标代码的属性信息,然后对代码缺陷库中数据与目标代码的属性信息进行结合分析,即对编程人员的相似度进行协同过滤分析,然后根据分析结果为目标代码的编程人员提供易犯错误提示,以使得编程人员根据错误提示信息对程序代码进行修改,从而通过本发明实施例降低了程序缺陷率,减少了代码缺陷测试所消耗的人员工作量。
本发明实施例提供了另一种代码缺陷的预测方法,如图2所示,具体步骤包括:
201、获取目标代码的属性信息。
其中,所述目标代码的属性信息包括用户属性信息和缺陷属性信息,用户属性信息是描述用户身份的各项数据,缺陷属性信息是描述该用户历史产生代码缺陷的各项数据。
需要说明的是,目标代码的用户属性信息可以通过用户管理库获取,即首先获取目标代码对应的用户身份标识信息,然后从用户管理库中获取与该用户身份标识信息对应的用户属性信息。所述用户属性信息包括:用户开发年限信息、用户开发语言信息、用户所属部门信息、和/或用户开发项目信息。所述缺陷属性信息包括:缺陷等级信息、缺陷模块分布信息、缺陷回归次数信息、和/或缺陷类型信息。
202、从用户管理库中获取与所述用户属性信息相似度超过第一预置阈值的用户标识信息。
其中,所述用户管理库中存储有用户属性信息与用户标识信息的对应关系,第一预置阈值可由系统根据实际需求进行自动设置,也可由开发人员进行自主设置。在本发明实施例中,可以通过余弦相似性、欧式距离、皮尔森系数、调整余弦相似性计算用户属性信息的相似度,本发明实施例不做具体限定。
例如,获取编写目标代码用户A的属性信息中包括:用户所属部门信息A1、用户开发项目信息A2、用户开发年限信息A3;用户管理库中用户B的属性信息包括:用户所属部门信息B1、用户开发项目信息B2、用户开发年限信息B3,则可通过余弦相似性算法计算用户A与用户B的相似性,进一步地,还可以设置用户各属性信息分别对应的权重值,然后将权重值代入余弦相似性公式中计算用户A与用户B的相似性。其中,用户的各项属性信息对应的权重值可根据实际需求进行设置,若用户所属部门信息在相似用户中起较重要的作用,则可将用户所属部门信息对应的权重值设置的高些。
203、从所述代码缺陷库中获取与用户标识信息对应的缺陷属性信息。
其中,所述代码缺陷库中的属性信息为用户标识信息与缺陷属性信息的对应关系。在通过步骤202从用户管理库中获取到与编写目标代码相似的用户之后,根据获取的用户标识信息从代码缺陷库中获取与该用户对应的缺陷属性信息,即获取与编写目标代码用户相似的用户对应的缺陷属性信息。
204、根据所述获取的缺陷属性信息和目标代码的缺陷属性信息确定所述目标代码对应的代码缺陷信息。
对于本发明实施例,步骤204包括:分别计算所述目标代码的缺陷属性信息与所述获取的缺陷属性信息的相似度;从所述代码缺陷库中获取相似度超过第二预置阈值的缺陷属性信息;将所述代码缺陷库中与所述获取的缺陷属性信息对应的代码缺陷信息确定为所述目标代码的代码缺陷信息。需要说明的是,目标代码的缺陷属性信息可从代码缺陷库中获取,即从代码缺陷库获取与目标代码的用户标识信息对应的缺陷属性信息,还可以根据目标代码本身获取缺陷属性信息,如用户的缺陷等级信息、缺陷模块分布信息、缺陷回归次数信息、缺陷类型信息可从代码缺陷库中获取;代码功能描述信息、代码开发语言可从目标代码中获取,本发明实施例不做具体限定。
进一步地,还可以设置用户各缺陷属性信息分别对应的权重值,然后将权重值代入余弦相似性公式中计算获取的缺陷属性信息和目标代码的缺陷属性信息的相似性。其中,用户的各缺陷属性信息对应的权重值可根据实际需求进行设置,若缺陷模块分布信息在缺陷属性信息相似性计算中起较重要的作用,则可将缺陷模块分布信息对应的权重值设置的高些。
具体的,所述分别计算所述目标代码的缺陷属性信息与所述获取的缺陷属性信息的相似度包括:通过余弦相似度算法分别计算所述目标代码的缺陷属性信息与所述获取的缺陷属性信息的相似度。
205、输出与所述目标代码对应的代码缺陷信息。
其中,所述代码缺陷信息用于预测所述目标代码存在的缺陷。对于本发明实施例,对编写目标代码的编程人员的属性进行归纳分类,根据用户标识信息提取编程人员提交的代码,利用代码缺陷库中已有缺陷数据进行分析,结合余弦相似性计算结果,对编程人员的相似度进行协同过滤分析,在分析结果的基础上为其他编程人员提供易犯错误提示,避免重复性错误,提高软件质量,降低程序缺陷率,减少测试人员工作量。
本发明实施例提供了另一种代码缺陷的预测方法,首先获取目标代码的属性信息,然后从用户管理库中获取与所述用户属性信息相似度超过第一预置阈值的用户标识信息,接着从所述代码缺陷库中获取与用户标识信息对应的缺陷属性信息,再根据所述获取的缺陷属性信息和目标代码的缺陷属性信息确定所述目标代码对应的代码缺陷信息,最后输出与所述目标代码对应的代码缺陷信息。从而通过本发明实施例降低了程序缺陷率,减少了代码缺陷测试所消耗的人员工作量。
进一步地,本发明实施例提供一种代码缺陷的预测装置,如图3所示,所述装置包括:获取单元31,确定单元32,输出单元33。
获取单元31,用于获取目标代码的属性信息;
其中,目标代码为待测试的程序代码,每个目标代码均有其对应的属性信息,目标代码的属性信息包括用于描述编写目标代码用户的属性信息及该用户对应的缺陷属性信息,缺陷属性信息用于描述用户历史的各项缺陷属性数据。所述属性信息具体可以为缺陷等级信息、缺陷模块分布信息、缺陷回归次数信息、缺陷类型信息、开发负责人的开发年限信息、开发负责人的开发语言信息、开发负责人所属的部门信息、目标代码的功能模块信息、目标代码的需求信息、目标代码所属的开发项目信息等,本发明实施例不做具体限定。
需要说明的是,本发明实施例可以通过扫描目标代码的方式获取目标代码的描述信息,通过目标代码对应的用户标识信息获取用户的属性信息、缺陷属性信息,即从用户管理库中获取与用户标识信息对应的用户属性信息,从代码缺陷库中获取与用户标识信息对应的缺陷属性信息。其中,用户管理库中存储有各个用户标识信息分别对应的属性信息,用户的属性信息用于描述用户的身份,具体可以为用户入职年限信息、用户所属部门信息、用户职务信息、用户使用的开发语言信息等,本发明不做具体限定。
确定单元32,用于根据代码缺陷库中的属性信息和目标代码的属性信息确定所述目标代码对应的代码缺陷信息,所述代码缺陷库中存储属性信息与代码缺陷信息的对应关系;
在本发明实施例中,可以通过相似性算法确定与目标代码对应的代码缺陷信息,具体的过程为:将目标代码的属性信息与缺陷代码库中的属性信息做相似性计算,然后从缺陷代码库中获取相似度前N名的属性信息,最后将获取前N名属性信息对应的代码缺陷信息确认为目标代码对应的代码缺陷信息。
输出单元33,用于输出与所述目标代码对应的代码缺陷信息。
其中,所述代码缺陷信息用于预测所述目标代码存在的缺陷。在本发明实施例中,在用户编写目标代码的过程中,输出与目标代码对应的代码缺陷信息,可以随时提醒用户目标代码容易出现的缺陷问题,避免编写程序代码过程中出现重复性的错误,提高软件质量,降低程序缺陷率,减少后续测试人员工作量。
需要说明的是,本发明实施例提供的一种代码缺陷的预测装置所涉及各功能单元的其他相应描述,可以参考图1所示方法的对应描述,在此不再赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
本发明实施例提供的一种代码缺陷的预测装置,首先获取目标代码的属性信息,然后对代码缺陷库中数据与目标代码的属性信息进行结合分析,即对编程人员的相似度进行协同过滤分析,然后根据分析结果为目标代码的编程人员提供易犯错误提示,以使得编程人员根据错误提示信息对程序代码进行修改,从而通过本发明实施例降低了程序缺陷率,减少了代码缺陷测试所消耗的人员工作量。
进一步地,本发明实施例提供另一种代码缺陷的预测装置,如图4所示,所述装置包括:获取单元41,确定单元42,输出单元43。
获取单元41,用于获取目标代码的属性信息;
确定单元42,用于根据代码缺陷库中的属性信息和目标代码的属性信息确定所述目标代码对应的代码缺陷信息,所述代码缺陷库中存储属性信息与代码缺陷信息的对应关系;
输出单元43,用于输出与所述目标代码对应的代码缺陷信息,所述代码缺陷信息用于预测所述目标代码存在的缺陷。
具体的,所述目标代码的属性信息包括用户属性信息和缺陷属性信息,所述确定单元42包括:
获取模块421,用于从用户管理库中获取与所述用户属性信息相似度超过第一预置阈值的用户标识信息,所述用户管理系统中存储有用户属性信息与用户标识信息的对应关系;第一预置阈值可由系统根据实际需求进行自动设置,也可由开发人员进行自主设置。在本发明实施例中,可以通过余弦相似性、欧式距离、皮尔森系数、调整余弦相似性计算用户属性信息的相似度,本发明实施例不做具体限定。
所述获取模块421,还用于从所述代码缺陷库中获取与用户标识信息对应的缺陷属性信息,所述代码缺陷库中的属性信息为用户标识信息与缺陷属性信息的对应关系;在从用户管理库中获取到与编写目标代码相似的用户之后,根据获取的用户标识信息从代码缺陷库中获取与该用户对应的缺陷属性信息,即获取与编写目标代码用户相似的用户对应的缺陷属性信息。
确定模块422,用于根据所述获取的缺陷属性信息和目标代码的缺陷属性信息确定所述目标代码对应的代码缺陷信息。
具体的,所述确定模块422包括:
计算子模块4221,用于分别计算所述目标代码的缺陷属性信息与所述获取的缺陷属性信息的相似度;
获取子模块4222,用于从所述代码缺陷库中获取相似度超过第二预置阈值的缺陷属性信息;
确定子模块4223,用于将所述代码缺陷库中与所述获取的缺陷属性信息对应的代码缺陷信息确定为所述目标代码的代码缺陷信息。
需要说明的是,目标代码的缺陷属性信息可从代码缺陷库中获取,即从代码缺陷库获取与目标代码的用户标识信息对应的缺陷属性信息,还可以根据目标代码本身获取缺陷属性信息,如用户的缺陷等级信息、缺陷模块分布信息、缺陷回归次数信息、缺陷类型信息可从代码缺陷库中获取;代码功能描述信息、代码开发语言可从目标代码中获取,本发明实施例不做具体限定。
所述计算子模块4221,具体用于通过余弦相似度算法分别计算所述目标代码的缺陷属性信息与所述获取的缺陷属性信息的相似度。
对于本发明实施例,所述缺陷属性信息包括:缺陷等级信息、缺陷模块分布信息、缺陷回归次数信息、和/或缺陷类型信息;所述用户属性信息包括:用户开发年限信息、用户开发语言信息、用户所属部门信息、和/或用户开发项目信息。
需要说明的是,本发明实施例提供的另一种代码缺陷的预测装置所涉及各功能单元的其他相应描述,可以参考图2所示方法的对应描述,在此不再赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
本发明实施例提供的另一种代码缺陷的预测装置,首先获取目标代码的属性信息,然后从用户管理库中获取与所述用户属性信息相似度超过第一预置阈值的用户标识信息,接着从所述代码缺陷库中获取与用户标识信息对应的缺陷属性信息,再根据所述获取的缺陷属性信息和目标代码的缺陷属性信息确定所述目标代码对应的代码缺陷信息,最后输出与所述目标代码对应的代码缺陷信息。从而通过本发明实施例降低了程序缺陷率,减少了代码缺陷测试所消耗的人员工作量。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的代码缺陷的预测方法及装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种代码缺陷的预测方法,其特征在于,包括:
获取目标代码的属性信息;
根据代码缺陷库中的属性信息和目标代码的属性信息确定所述目标代码对应的代码缺陷信息,所述代码缺陷库中存储属性信息与代码缺陷信息的对应关系;
输出与所述目标代码对应的代码缺陷信息,所述代码缺陷信息用于预测所述目标代码存在的缺陷。
2.根据权利要求1所述的方法,其特征在于,所述目标代码的属性信息包括用户属性信息和缺陷属性信息,所述根据代码缺陷库中的属性信息和目标代码的属性信息确定所述目标代码对应的代码缺陷信息包括:
从用户管理库中获取与所述用户属性信息相似度超过第一预置阈值的用户标识信息,所述用户管理系统中存储有用户属性信息与用户标识信息的对应关系;
从所述代码缺陷库中获取与用户标识信息对应的缺陷属性信息,所述代码缺陷库中的属性信息为用户标识信息与缺陷属性信息的对应关系;
根据所述获取的缺陷属性信息和目标代码的缺陷属性信息确定所述目标代码对应的代码缺陷信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述获取的缺陷属性信息和目标代码的缺陷属性信息确定所述目标代码对应的代码缺陷信息包括:
分别计算所述目标代码的缺陷属性信息与所述获取的缺陷属性信息的相似度;
从所述代码缺陷库中获取相似度超过第二预置阈值的缺陷属性信息;
将所述代码缺陷库中与所述获取的缺陷属性信息对应的代码缺陷信息确定为所述目标代码的代码缺陷信息。
4.根据权利要求3所述的方法,其特征在于,所述分别计算所述目标代码的缺陷属性信息与所述获取的缺陷属性信息的相似度包括:
通过余弦相似度算法分别计算所述目标代码的缺陷属性信息与所述获取的缺陷属性信息的相似度。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述缺陷属性信息包括:缺陷等级信息、缺陷模块分布信息、缺陷回归次数信息、和/或缺陷类型信息;所述用户属性信息包括:用户开发年限信息、用户开发语言信息、用户所属部门信息、和/或用户开发项目信息。
6.一种代码缺陷的预测装置,其特征在于,包括:
获取单元,用于获取目标代码的属性信息;
确定单元,用于根据代码缺陷库中的属性信息和目标代码的属性信息确定所述目标代码对应的代码缺陷信息,所述代码缺陷库中存储属性信息与代码缺陷信息的对应关系;
输出单元,用于输出与所述目标代码对应的代码缺陷信息,所述代码缺陷信息用于预测所述目标代码存在的缺陷。
7.根据权利要求6所述的装置,其特征在于,所述目标代码的属性信息包括用户属性信息和缺陷属性信息,所述确定单元包括:
获取模块,用于从用户管理库中获取与所述用户属性信息相似度超过第一预置阈值的用户标识信息,所述用户管理系统中存储有用户属性信息与用户标识信息的对应关系;
所述获取模块,还用于从所述代码缺陷库中获取与用户标识信息对应的缺陷属性信息,所述代码缺陷库中的属性信息为用户标识信息与缺陷属性信息的对应关系;
确定模块,用于根据所述获取的缺陷属性信息和目标代码的缺陷属性信息确定所述目标代码对应的代码缺陷信息。
8.根据权利要求7所述的装置,其特征在于,所述确定模块包括:
计算子模块,用于分别计算所述目标代码的缺陷属性信息与所述获取的缺陷属性信息的相似度;
获取子模块,用于从所述代码缺陷库中获取相似度超过第二预置阈值的缺陷属性信息;
确定子模块,用于将所述代码缺陷库中与所述获取的缺陷属性信息对应的代码缺陷信息确定为所述目标代码的代码缺陷信息。
9.根据权利要求8所述的装置,其特征在于,所述计算子模块,具体用于通过余弦相似度算法分别计算所述目标代码的缺陷属性信息与所述获取的缺陷属性信息的相似度。
10.根据权利要求7-8任一项所述的装置,其特征在于,所述缺陷属性信息包括:缺陷等级信息、缺陷模块分布信息、缺陷回归次数信息、和/或缺陷类型信息;所述用户属性信息包括:用户开发年限信息、用户开发语言信息、用户所属部门信息、和/或用户开发项目信息。
CN201611030122.0A 2016-11-15 2016-11-15 代码缺陷的预测方法及装置 Active CN106708729B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611030122.0A CN106708729B (zh) 2016-11-15 2016-11-15 代码缺陷的预测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611030122.0A CN106708729B (zh) 2016-11-15 2016-11-15 代码缺陷的预测方法及装置

Publications (2)

Publication Number Publication Date
CN106708729A true CN106708729A (zh) 2017-05-24
CN106708729B CN106708729B (zh) 2019-10-11

Family

ID=58941213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611030122.0A Active CN106708729B (zh) 2016-11-15 2016-11-15 代码缺陷的预测方法及装置

Country Status (1)

Country Link
CN (1) CN106708729B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108038052A (zh) * 2017-11-27 2018-05-15 平安科技(深圳)有限公司 自动化测试管理方法、装置、终端设备及存储介质
CN108959090A (zh) * 2018-07-05 2018-12-07 北方工业大学 一种开发者调试行为与软件调试之间的影响分析装置
CN111104672A (zh) * 2018-10-25 2020-05-05 迈普通信技术股份有限公司 一种数据处理方法及装置
CN111159010A (zh) * 2019-12-05 2020-05-15 中国建设银行股份有限公司 一种缺陷收集方法、缺陷上报方法和相关装置
CN113704103A (zh) * 2021-08-24 2021-11-26 网易(杭州)网络有限公司 测试用例推荐方法、装置、介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102339252A (zh) * 2011-07-25 2012-02-01 大连理工大学 基于xml中间模型以及缺陷模式匹配的静态检测系统
CN104699611A (zh) * 2015-03-18 2015-06-10 北京航空航天大学 一种基于开源软件缺陷代码修改模式的缺陷信息提取方法
US20150355888A1 (en) * 2013-01-30 2015-12-10 Hewlett-Packard Development Company, L.P. Acquiring identification of an application lifecycle management entity associated with similar code

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102339252A (zh) * 2011-07-25 2012-02-01 大连理工大学 基于xml中间模型以及缺陷模式匹配的静态检测系统
US20150355888A1 (en) * 2013-01-30 2015-12-10 Hewlett-Packard Development Company, L.P. Acquiring identification of an application lifecycle management entity associated with similar code
CN104699611A (zh) * 2015-03-18 2015-06-10 北京航空航天大学 一种基于开源软件缺陷代码修改模式的缺陷信息提取方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108038052A (zh) * 2017-11-27 2018-05-15 平安科技(深圳)有限公司 自动化测试管理方法、装置、终端设备及存储介质
CN108959090A (zh) * 2018-07-05 2018-12-07 北方工业大学 一种开发者调试行为与软件调试之间的影响分析装置
CN111104672A (zh) * 2018-10-25 2020-05-05 迈普通信技术股份有限公司 一种数据处理方法及装置
CN111159010A (zh) * 2019-12-05 2020-05-15 中国建设银行股份有限公司 一种缺陷收集方法、缺陷上报方法和相关装置
CN113704103A (zh) * 2021-08-24 2021-11-26 网易(杭州)网络有限公司 测试用例推荐方法、装置、介质及电子设备
CN113704103B (zh) * 2021-08-24 2023-08-04 网易(杭州)网络有限公司 测试用例推荐方法、装置、介质及电子设备

Also Published As

Publication number Publication date
CN106708729B (zh) 2019-10-11

Similar Documents

Publication Publication Date Title
Wignall et al. Standardizing benchmark dose calculations to improve science-based decisions in human health assessments
CN108416198B (zh) 人机识别模型的建立装置、方法及计算机可读存储介质
CN107818344B (zh) 用户行为进行分类和预测的方法和系统
CN106708729A (zh) 代码缺陷的预测方法及装置
CN106201871B (zh) 基于代价敏感半监督的软件缺陷预测方法
Fieberg et al. Used‐habitat calibration plots: A new procedure for validating species distribution, resource selection, and step‐selection models
CN108734184B (zh) 一种对敏感图像进行分析的方法及装置
CN110222087B (zh) 特征提取方法、装置及计算机可读存储介质
CN109684627A (zh) 一种文本分类方法及装置
CN107357902A (zh) 一种基于关联规则的数据表分类系统与方法
CN110688536A (zh) 一种标签预测方法、装置、设备和存储介质
CN110502277A (zh) 一种基于bp神经网络的代码坏味检测方法
CN109981567A (zh) 网络验证数据的发送方法、装置、存储介质和服务器
CN111949535A (zh) 基于开源社区知识的软件缺陷预测装置及方法
CN108268624A (zh) 用户数据可视化方法及系统
CN109784352A (zh) 一种评估分类模型的方法和装置
CN113516417A (zh) 基于智能建模的业务评估方法、装置、电子设备及介质
CN112070559A (zh) 状态获取方法和装置、电子设备和存储介质
CN109460474B (zh) 用户偏好趋势挖掘方法
US11544600B2 (en) Prediction rationale analysis apparatus and prediction rationale analysis method
CN112287976A (zh) 一种对象推荐方法、装置、电子设备及存储介质
Khazai et al. Integrated risk modelling toolkit and database for earthquake risk assessment
CN114723554B (zh) 异常账户识别方法及装置
CN111582647A (zh) 用户数据处理方法、装置及电子设备
CN111222566A (zh) 用户属性识别方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant