CN117312809B - 一种基于知识图谱的软件缺陷预测方法及系统 - Google Patents
一种基于知识图谱的软件缺陷预测方法及系统 Download PDFInfo
- Publication number
- CN117312809B CN117312809B CN202311616158.7A CN202311616158A CN117312809B CN 117312809 B CN117312809 B CN 117312809B CN 202311616158 A CN202311616158 A CN 202311616158A CN 117312809 B CN117312809 B CN 117312809B
- Authority
- CN
- China
- Prior art keywords
- software defect
- software
- data
- defect data
- component
- 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.)
- Active
Links
- 230000007547 defect Effects 0.000 title claims abstract description 445
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000008878 coupling Effects 0.000 claims abstract description 35
- 238000010168 coupling process Methods 0.000 claims abstract description 35
- 238000005859 coupling reaction Methods 0.000 claims abstract description 35
- 238000012549 training Methods 0.000 claims abstract description 22
- 238000013528 artificial neural network Methods 0.000 claims abstract description 10
- 238000000605 extraction Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000009193 crawling Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开的一种基于知识图谱的软件缺陷预测方法及系统,属于软件缺陷预测技术领域,包括:获得软件缺陷数据所在组件特征和软件缺陷数据自身特征;通过软件缺陷数据所在组件特征及软件缺陷数据自身特征,对软件缺陷识别模型进行训练,获得训练好的软件缺陷识别模型,其中,软件缺陷识别模型,根据软件缺陷数据所在组件特征和软件缺陷数据自身特征,获得各软件缺陷数据间相似度和耦合度;对相似度和耦合度进行加权求和,获得各软件缺陷数据间的关联系数;以各软件缺陷数据为节点,以软件缺陷数据间的关联系数为节点间的连接边,将软件缺陷数据所在组件特征作为节点属性,通过图卷积神经网络构建获得。提高了软件缺陷预测的准确率。
Description
技术领域
本发明涉及特定计算模型的计算机系统技术领域,尤其涉及一种基于知识图谱的软件缺陷预测方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
软件缺陷预测是软件测试的重要方法之一。软件缺陷预测根据软件历史开发数据以及已发现的缺陷数据,借助机器学习等方法来预测软件项目中缺陷的数目、类型和所在组件等信息。软件缺陷识别模型可以确定哪些组件具有最大的安全风险,软件工程师可以根据模型预测结果做出风险管理决策,指导安全检查和测试,并确定软件安全防御工作的优先级。
然而,在实际测试中,人们发现软件缺陷之间无法做到完全独立存在,而是存在某种关联关系,即某个缺陷被触发时,其他缺陷也会被触发,而现有识别模型通常缺乏对此类关联性的挖掘,导致预测准确度不理想。因此,如何根据语句或缺陷特征快速准确地找出代码组件中潜在的关联缺陷,这也是目前软件测试的需要解决的主要问题之一。
发明人发现,已有的缺陷关联性挖掘方法存在着各种不足:1、在缺陷分类依据的选择上过于单一;2、仅关注缺陷间的相互关系,并未考虑相似缺陷与代码组件间的适配程度;3、只考虑同类缺陷间的局部关联性,而忽视了不同类别间的全局关联性等。
发明内容
本发明为了解决上述问题,提出了一种基于知识图谱的软件缺陷预测方法及系统,通过本发明方法构建的软件缺陷识别模型进行软件缺陷预测时,提高了软件缺陷预测的准确率。
为实现上述目的,本发明采用如下技术方案:
第一方面,提出了一种基于知识图谱的软件缺陷预测方法,包括:
获取多个软件缺陷数据;
根据软件缺陷数据,获得软件缺陷数据所在组件特征和软件缺陷数据自身特征;
将软件缺陷数据所在组件特征及软件缺陷数据自身特征,作为训练数据,对构建的软件缺陷识别模型进行训练,训练完成,获得训练好的软件缺陷识别模型,其中,软件缺陷识别模型,根据软件缺陷数据所在组件特征和软件缺陷数据自身特征,计算获得各软件缺陷数据间相似度;根据软件缺陷数据所在组件特征,计算获得各软件缺陷数据间耦合度;对各软件缺陷数据间相似度和耦合度进行加权求和,获得各软件缺陷数据间的关联系数;以各软件缺陷数据为节点,以软件缺陷数据间的关联系数为节点间的连接边,将软件缺陷数据所在组件特征作为节点属性,通过图卷积神经网络构建获得;
通过训练好的软件缺陷识别模型进行软件缺陷预测。
第二方面,提出了一种基于知识图谱的软件缺陷预测系统,包括:
缺陷数据获取模块,用于获取多个软件缺陷数据;
缺陷特征提取模块,用于根据软件缺陷数据,获得软件缺陷数据所在组件特征和软件缺陷数据自身特征;
软件缺陷识别模型获取模块,用于将软件缺陷数据所在组件特征及软件缺陷数据自身特征,作为训练数据,对构建的软件缺陷识别模型进行训练,训练完成,获得训练好的软件缺陷识别模型,其中,软件缺陷识别模型,根据软件缺陷数据所在组件特征和软件缺陷数据自身特征,计算获得各软件缺陷数据间相似度;根据软件缺陷数据所在组件特征,计算获得各软件缺陷数据间耦合度;对各软件缺陷数据间相似度和耦合度进行加权求和,获得各软件缺陷数据间的关联系数;以各软件缺陷数据为节点,以软件缺陷数据间的关联系数为节点间的连接边,将软件缺陷数据所在组件特征作为节点属性,通过图卷积神经网络构建获得;
软件缺陷预测模块,用于通过训练好的软件缺陷识别模型进行软件缺陷预测。
第三方面,提出了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成一种基于知识图谱的软件缺陷预测方法所述的步骤。
第四方面,提出了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成一种基于知识图谱的软件缺陷预测方法所述的步骤。
与现有技术相比,本发明的有益效果为:
1、本发明从已有的各软件缺陷数据中提取软件缺陷数据所在组件特征和软件缺陷数据自身特征,分别根据软件缺陷数据自身特征和软件缺陷数据所在组件特征,计算获得各软件缺陷数据间相似度和各软件缺陷数据间耦合度,通过各软件缺陷数据间相似度和耦合度计算获得软件缺陷数据间的关联系数,根据软件缺陷数据间的关联系数构建获得软件缺陷识别模型,解决了缺陷关联信息表达方式单一、知识过于分散和关联性不强等问题,当通过本发明构建的软件缺陷识别模型进行软件缺陷预测时,提高了软件缺陷预测的准确率。
2、本发明在将软件缺陷数据所在组件特征添加至为该缺陷数据构建的节点属性中,在后续软件缺陷预测过程中,加入对关联缺陷与代码组件间适配程度的计算,以提高缺陷预测的准确度。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为实施例公开方法的流程图;
图2为实施例公开的缺陷节点属性。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
技术术语解释:
数据流:程序执行过程中,关于变量、数据、值或者表达式在不同程序点(例如语句、函数调用等)之间传递和变化的信息。
控制流:程序执行时,不同语句和代码块之间的控制转移关系。
数据相似度:用于衡量两段或多段代码之间数据流特征的相似程度的概念。
耦合度:用于描述软件系统中模块或组件之间的相互依赖程度的概念。
缺陷间的关联系数:一种用于度量软件缺陷之间相关性的指标。
知识图谱:一种用于表示和组织知识的结构化数据模型,通常以节点图的形式呈现。
实施例1
在该实施例中,公开了一种基于知识图谱的软件缺陷预测方法,利用软件缺陷数据自身特征和软件缺陷数据所在组件特征,通过计算软件缺陷数据间的关联系数;然后,以各软件缺陷数据为节点,以软件缺陷数据间的关联系数为节点间的连接边,将软件缺陷数据所在组件特征作为节点属性,同时进行属性注入;最后,连接缺陷节点、连接边,以此生成软件缺陷识别模型,包括:
步骤1、获取多个软件缺陷数据;根据软件缺陷数据,获得软件缺陷数据所在组件特征和软件缺陷数据自身特征。
本实施例基于已有的软件缺陷数据库中的软件缺陷数据,分析缺陷数据类别并设计信息选择策略,采用爬虫技术从软件缺陷数据库中,提取多个软件缺陷数据,并获得软件缺陷数据所在组件特征和软件缺陷数据自身特征,进行存储。
获取多个软件缺陷数据的数据流和控制流;根据数据流获得软件缺陷数据自身特征;根据控制流获得软件缺陷数据所在组件特征。
优选的,通过分析网站的结构,了解网页的布局、URL结构和数据位置,从软件缺陷数据库中,提取软件缺陷数据。
获取多个软件缺陷数据;并获得软件缺陷数据所在组件特征和软件缺陷数据自身特征的过程包括:
步骤1.1 分析并选择需要提取的软件缺陷数据自身特征类别,并涉及组件特征选择策略。
软件缺陷数据自身特征根据不同的角度,可以划分出数十种不同的类型,例如缺陷的活动、缺陷的影响、缺陷触发、缺陷的修复对象、缺陷类型、缺陷限定词、缺陷来源和缺陷历史等,它们包含了各种维度的缺陷数据特征。本实施例从组件关联度、表示复杂度和是否二义性等角度分析与筛选,选择了以下5类特征:缺陷的影响、缺陷触发、缺陷类型、缺陷限定词和缺陷来源。
步骤1.2 提取软件缺陷数据库中的软件缺陷数据,包括:分析网站的结构、解析网页内容和数据爬取等,同时针对步骤1.1确定的需要提取的软件缺陷数据自身特征类别,设计爬取算法进行数据爬取。具体来说,首先,需要了解网页的布局,即网页的块状结构的分布,和网站的地址结构,以及软件缺陷数据在网页中的具体位置坐标;其次,使用选定的爬虫工具编写代码来请求目标网页的HTML内容,解析网页内容以提取获得软件缺陷数据。
步骤1.3 从软件缺陷数据的数据流中提取软件缺陷数据自身特征;根据每个目标缺陷数据的控制流,确定每个软件缺陷数据所在组件特征,并将提取的软件缺陷数据自身特征以及软件缺陷数据所在组件特征存储至缺陷数据集合中。
本实施例从软件缺陷数据中提取的软件缺陷数据自身特征,包括缺陷的影响、缺陷触发、缺陷类型、缺陷限定词和缺陷来源等。
参考已有工作中组件特征对缺陷产生影响的研究,为了能更有效地表示缺陷产生与组件特征的关系,本实施例从中选择了九十余个可能影响缺陷预测的组件指标,并将其作为软件缺陷数据所在组件特征指标。从软件缺陷数据的数据流中提取软件缺陷数据所在组件特征,其中,软件缺陷数据所在组件特征包括组件运算符、组件操作符、组件类别和复杂度等九十余个可能影响缺陷预测的组件指标。将提取的软件缺陷数据自身特征以及软件缺陷数据所在组件特征,存储于缺陷数据集合中。
本步骤提取的软件缺陷数据自身特征及软件缺陷数据所在组件特征,用于计算各软件缺陷数据间相似度和各软件缺陷数据间耦合度,进而计算获得各软件缺陷数据间的关联系数,通过各软件缺陷数据间的关联系数作为节点间的连接边,构建获得软件缺陷识别模型,并将软件缺陷数据所在组件特征添加至相应缺陷的节点属性中,以便进一步提高图谱数据质量。
步骤2、将软件缺陷数据所在组件特征及软件缺陷数据自身特征,作为训练数据,对构建的软件缺陷识别模型进行训练,训练完成,获得训练好的软件缺陷识别模型,其中,软件缺陷识别模型,根据软件缺陷数据所在组件特征和软件缺陷数据自身特征,计算获得各软件缺陷数据间相似度;根据软件缺陷数据所在组件特征,计算获得各软件缺陷数据间耦合度;对各软件缺陷数据间相似度和耦合度进行加权求和,获得各软件缺陷数据间的关联系数;以各软件缺陷数据为节点,以软件缺陷数据间的关联系数为节点间的连接边,将软件缺陷数据所在组件特征作为节点属性,通过图卷积神经网络构建获得。
本实施例根据软件缺陷数据所在组件特征和软件缺陷数据自身特征,计算获得各软件缺陷数据间相似度;根据软件缺陷数据所在组件特征,计算获得各软件缺陷数据间耦合度;对各软件缺陷数据间相似度和耦合度进行加权求和,获得各软件缺陷数据间的关联系数;以各软件缺陷数据为节点,以软件缺陷数据间的关联系数为节点间的连接边,将软件缺陷数据所在组件特征作为节点属性,通过图卷积神经网络构建软件缺陷识别模型。
其中,软件缺陷数据所在组件特征和软件缺陷数据自身特征,组成软件缺陷数据特征;根据软件缺陷数据特征,计算两个软件缺陷数据相似特征的个数;将相似特征的个数除以每个软件缺陷数据特征的总个数,获得两个软件缺陷数据间相似度。
确定两个软件缺陷数据间相似度的过程为:
根据缺陷管理系统中软件缺陷数据对应的缺陷类型,确定缺陷类型对应的特征维度值。确定了特征维度后,用相同的特征维度对不同软件缺陷数据进行描述,建立软件缺陷数据之间的特征维度相似关系。通过聚类分析计算方法对软件缺陷特征维度进行度量,实现软件缺陷数据相似度的计算。公式定义如下:
定义1:缺陷数据特征集。设是软件缺陷数据/>的特征集,/>是软件缺陷数据/>中的第k个特征。
定义2:特征描述集合。设是软件缺陷数据/>在特征上的描述集合,/>是软件缺陷数据/>在特征/>上的一个描述元素。
定义3:数据相似性。设维模式向量/>分别为软件缺陷数据/>和/>的离散型数据,向量中每个特征值对应一种缺陷特征维度,设/>分别为向量/>中第/>个缺陷特征维度的标识,则有:/>,式中,/>表示向量/>中第/>个维度的缺陷数据特征是否相似。
则两个软件缺陷特征维度集合间相似数据个数,即软件缺陷数据和/>相似特征的个数/>为:/>。
软件缺陷数据和/>间相似度/>为:/>。
通过式上述三式可求得软件缺陷数据间相似度,以此建立缺陷间数据层的关联。
本实施例还根据软件缺陷数据所在组件特征,确定软件缺陷数据所在组件间的继承和调用关系,根据软件缺陷数据所在组件间的继承和调用关系,确定各软件缺陷数据间耦合度。
组件是软件体系结构的基本单位,也是缺陷度量的单位之一。组件之间通过方法调用进行通信,方法之间的耦合度在组件耦合度度量中扮演重要角色。通过度量组件之间的耦合度来间接得到缺陷间的耦合度是可行的。组件的方法中包含需求类和供应类两种。需求类方法代表组件为了实现其功能需要调用其他组件的方法;供应类方法则代表组件向其他组件提供方法,使得其他组件可以调用该组件功能。
软件开发过程中,不同开发模式的本质都是对象之间的相互转化,底层的对象需要由顶层对象转化而来,形成树状结构,底层对象视为子节点,顶层对象视为父节点。建立起树状结构中各个对象节点的关系,也就间接建立起组件间的关联关系。相对的,组件间也存在父子依赖关系。例如,设软件缺陷数据和/>所在组件分别为/>和/>,且组件/>是组件/>的父节点,那么组件/>对组件/>的依赖度则应为组件/>与组件/>需求类的交集在组件中所占比例。当组件/>的需求类均从组件/>中继承或调用得到时,依赖度最大。若组件/>和组件/>之间不是父子关系,则需要通过其他组件的调用来度量两者的依赖关系。
本实施例确定各软件缺陷数据间耦合度的过程为:
若一个系统是由一个组件集和组件外的方法集/>组成的,则有如下定义:
定义4:若组件包含组件/>,则组件/>和组件/>为父子关系。对于一个组件/>,则/>,/>,Parient(c)指组件c的所有父组件的集合;child(c)指组件c的所有子组件的集合。
定义5:对于一个组件,/>,组件/>向外提供的方法集为/>,/>需求外界的方法集为/>。
定义6:表示组件/>与其他组件进行交互,且由组件/>提供的方法集合。
综上,可以得到软件缺陷数据之间的耦合度,公式为:。其中,/>表示软件缺陷数据/>间的耦合度,/>表示需求类,/>表示组件/>需求外界的方法集,即组件/>内所有被调用的方法的集合,/>表示组件/>需求外界的方法集,即组件/>内所有被调用的方法的集合,/>表示提供类,/>表示组件/>向外提供的方法集,即组件/>内所有自定义方法的集合,/>表示组件/>向外提供的方法集,即组件/>内所有自定义方法的集合,/>为缺陷数据/>所在组件,/>为缺陷数据/>所在组件;/>表示组件/>属于组件/>的所有子组件,/>表示组件/>属于组件/>的所有子组件。通过度量组件之间的这种依赖度,间接得到两个直接关联的软件缺陷数据间耦合度。
本实施例分别从数据流和控制流的角度出发,得到软件缺陷数据间相似度和软件缺陷数据间耦合度两个影响缺陷关联系数的因子。在实际情况下,这两者不能完全独立,而是相互作用。为了更精确的度量缺陷关联系数,在计算时应同时考虑两种影响因子,故本实施例对各软件缺陷数据间相似度和耦合度进行加权求和,获得各软件缺陷数据间的关联系数:。其中,/>表示软件缺陷数据/>与/>之间的关联系数,/>和/>分别表示软件缺陷数据间相似度以及缺陷间耦合度各自所占的权重,且/>。
在获取到各软件缺陷数据间的关联系数后,以各软件缺陷数据为节点,以两个软件缺陷数据间的关联系数为两个节点间的连接边,通过图卷积神经网络(GCN)构建获得软件缺陷识别模型,并将软件缺陷数据所在组件特征添加至相应缺陷的节点属性中,进一步提高图谱的缺陷信息表示能力,以此提高后续关联缺陷预测的准确度。
本实施例通过知识图谱生成工具Neo4J构建获得软件缺陷识别模型。具体的:遍历缺陷数据集合,在Neo4J中为每个软件缺陷数据构建节点;将缺陷数据间的关联系数作为连接两个节点的边值,构建获得缺陷连接边集合,遍历缺陷连接边集合,在已有节点上创建边,并将其逐一连接;最后,检查是否有错误并修正,直到集合中没有剩余的节点和边,并输出软件缺陷识别模型。
在构建获得软件缺陷识别模型时,将软件缺陷数据所在组件特征添加至相应缺陷的节点属性中,如图2所示,为某一缺陷的节点属性,其中,“identity”为缺陷节点编号,“labels”为缺陷节点标签,“properties”为具体属性列表,其中,“name”为缺陷节点名称,即缺陷所在的语句;“features”为特征矩阵,对应每一个组件指标;“module”为缺陷所在代码段的类型标识;“function”为缺陷所在函数。同时,将所有节点属性存放于节点集合中,用以便于后续的图谱生成。
图卷积神经网络(GCN)是一种多层神经网络,它直接对一个图进行卷积操作并产生一个嵌入向量。本实施例构建的软件缺陷识别模型,其中,G为构建的知识图谱,V为图谱的节点集合,E为图谱的边集合;设/>是一个包含所有节点及其数据所在组件特征的矩阵,其中,/>是节点总个数,/>是特征向量的维数。
针对构建的软件缺陷识别模型,首先采用双层图卷积神经网络来获得其隐藏状态。然后,对/>层的输出/>进行平均池化操作,获得缺陷的低维表示,然后经过一个全连接层和一个Softmax激活函数, 最终得到一个关联缺陷的二元分类器。图卷积神经网络的第一层和第二层采用的激活函数均为ReLU函数。图卷积神经网络在每一层对所有节点的表示会进行全局更新。/>,其中,/>为邻接矩阵,/>为度矩阵,/>为单位矩阵,/>为激活函数,/>为参数。/>,其中,/>为软件缺陷数据节点/>之间的关联系数。/>表示软件缺陷数据节点/>之间的共线关系。/>是一种用于衡量两个事件之间关联性的统计方法,它的计算基于两个事件的联合概率和各自的独立概率,其中,/>;/>;。/>表示全部节点在所有特征维度的特征总数,/>表示节点所有维度的特征数,/>表示节点/>在所有维度上的特征数。
然后,将得双层知识特征相加,即将和/>相加,得到缺陷知识特征/>,同理,可以将数据所在组件特征这一高维特征信息,聚合为低维表示/>。
最后,为了结合推荐节点对目标组件的适配程度,将缺陷知识特征以及组件知识特征/>的内积施加Sigmoid函数,就得到了模型的预测分数,计算得到的分数将作为组件/>和缺陷/>交互的概率/>:/>。
将软件缺陷数据所在组件特征及软件缺陷数据自身特征,作为训练数据,输入软件缺陷识别模型中,训练完成,获得训练好的软件缺陷识别模型。
S3:通过训练好的软件缺陷识别模型进行软件缺陷预测。
在进行软件缺陷预测时,获取待预测软件数据;从待预测软件数据中提取软件数据所在组件特征和软件数据自身特征;将软件数据所在组件特征和软件数据自身特征输入训练好的软件缺陷识别模型中,获得软件数据缺陷预测结果。
本实施例公开的一种基于知识图谱的软件缺陷预测方法,从已有的各软件缺陷数据中提取软件缺陷数据自身特征和软件缺陷数据所在组件特征,分别根据软件缺陷数据自身特征和软件缺陷数据所在组件特征,计算获得各软件缺陷数据间相似度和耦合度,通过各软件缺陷数据间相似度和耦合度计算获得软件缺陷数据间的关联系数,根据缺陷数据间的关联系数构建获得软件缺陷识别模型,解决了缺陷关联信息表达方式单一、知识过于分散和关联性不强等问题,当通过本实施例构建的软件缺陷识别模型进行软件缺陷预测时,提高了软件缺陷预测的准确率。
实施例2
在该实施例中,公开了一种基于知识图谱的软件缺陷预测系统,包括:
缺陷数据获取模块,用于获取多个软件缺陷数据;
缺陷特征提取模块,用于根据软件缺陷数据,获得软件缺陷数据所在组件特征和软件缺陷数据自身特征;
软件缺陷识别模型获取模块,用于将软件缺陷数据所在组件特征及软件缺陷数据自身特征,作为训练数据,对构建的软件缺陷识别模型进行训练,训练完成,获得训练好的软件缺陷识别模型,其中,软件缺陷识别模型,根据软件缺陷数据所在组件特征和软件缺陷数据自身特征,计算获得各软件缺陷数据间相似度;根据软件缺陷数据所在组件特征,计算获得各软件缺陷数据间耦合度;对各软件缺陷数据间相似度和耦合度进行加权求和,获得各软件缺陷数据间的关联系数;以各软件缺陷数据为节点,以软件缺陷数据间的关联系数为节点间的连接边,将软件缺陷数据所在组件特征作为节点属性,通过图卷积神经网络构建获得;
软件缺陷预测模块,用于通过训练好的软件缺陷识别模型进行软件缺陷预测。
实施例3
在该实施例中,公开了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例1公开的一种基于知识图谱的软件缺陷预测方法所述的步骤。
实施例4
在该实施例中,公开了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例1公开的一种基于知识图谱的软件缺陷预测方法所述的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (10)
1.一种基于知识图谱的软件缺陷预测方法,其特征在于,包括:
获取多个软件缺陷数据;
根据软件缺陷数据,获得软件缺陷数据所在组件特征和软件缺陷数据自身特征;
将软件缺陷数据所在组件特征及软件缺陷数据自身特征,作为训练数据,对构建的软件缺陷识别模型进行训练,训练完成,获得训练好的软件缺陷识别模型,其中,软件缺陷识别模型,根据软件缺陷数据所在组件特征和软件缺陷数据自身特征,计算获得各软件缺陷数据间相似度;根据软件缺陷数据所在组件特征,计算获得各软件缺陷数据间耦合度;对各软件缺陷数据间相似度和耦合度进行加权求和,获得各软件缺陷数据间的关联系数;以各软件缺陷数据为节点,以软件缺陷数据间的关联系数为节点间的连接边,将软件缺陷数据所在组件特征作为节点属性,通过图卷积神经网络构建获得;
通过训练好的软件缺陷识别模型进行软件缺陷预测。
2.如权利要求1所述的一种基于知识图谱的软件缺陷预测方法,其特征在于,获取多个软件缺陷数据的数据流和控制流;
根据数据流获得软件缺陷数据自身特征;
根据控制流获得软件缺陷数据所在组件特征。
3.如权利要求1所述的一种基于知识图谱的软件缺陷预测方法,其特征在于,根据软件缺陷数据所在组件特征,确定软件缺陷数据所在组件间的继承和调用关系,根据软件缺陷数据所在组件间的继承和调用关系,确定软件缺陷数据间耦合度。
4.如权利要求1所述的一种基于知识图谱的软件缺陷预测方法,其特征在于,采用爬虫技术从软件缺陷数据库中,提取多个软件缺陷数据。
5.如权利要求1所述的一种基于知识图谱的软件缺陷预测方法,其特征在于,软件缺陷数据自身特征包括缺陷的影响、缺陷触发、缺陷类型、缺陷限定词和缺陷来源类型。
6.如权利要求1所述的一种基于知识图谱的软件缺陷预测方法,其特征在于,软件缺陷数据所在组件特征和软件缺陷数据自身特征,组成软件缺陷数据特征;根据软件缺陷数据特征,计算两个软件缺陷数据相似特征的个数;将相似特征的个数除以每个软件缺陷数据特征的总个数,获得两个软件缺陷数据间相似度。
7.如权利要求1所述的一种基于知识图谱的软件缺陷预测方法,其特征在于,在进行软件缺陷预测时,获取待预测软件数据;从待预测软件数据中提取软件数据所在组件特征和软件数据自身特征;将软件数据所在组件特征和软件数据自身特征输入训练好的软件缺陷识别模型中,获得软件数据缺陷预测结果。
8.一种基于知识图谱的软件缺陷预测系统,其特征在于,包括:
缺陷数据获取模块,用于获取多个软件缺陷数据;
缺陷特征提取模块,用于根据软件缺陷数据,获得软件缺陷数据所在组件特征和软件缺陷数据自身特征;
软件缺陷识别模型获取模块,用于将软件缺陷数据所在组件特征及软件缺陷数据自身特征,作为训练数据,对构建的软件缺陷识别模型进行训练,训练完成,获得训练好的软件缺陷识别模型,其中,软件缺陷识别模型,根据软件缺陷数据所在组件特征和软件缺陷数据自身特征,计算获得各软件缺陷数据间相似度;根据软件缺陷数据所在组件特征,计算获得各软件缺陷数据间耦合度;对各软件缺陷数据间相似度和耦合度进行加权求和,获得各软件缺陷数据间的关联系数;以各软件缺陷数据为节点,以软件缺陷数据间的关联系数为节点间的连接边,将软件缺陷数据所在组件特征作为节点属性,通过图卷积神经网络构建获得;
软件缺陷预测模块,用于通过训练好的软件缺陷识别模型进行软件缺陷预测。
9.一种电子设备,其特征在于,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1-7任一项所述的一种基于知识图谱的软件缺陷预测方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1-7任一项所述的一种基于知识图谱的软件缺陷预测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311616158.7A CN117312809B (zh) | 2023-11-30 | 2023-11-30 | 一种基于知识图谱的软件缺陷预测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311616158.7A CN117312809B (zh) | 2023-11-30 | 2023-11-30 | 一种基于知识图谱的软件缺陷预测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117312809A CN117312809A (zh) | 2023-12-29 |
CN117312809B true CN117312809B (zh) | 2024-01-26 |
Family
ID=89250324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311616158.7A Active CN117312809B (zh) | 2023-11-30 | 2023-11-30 | 一种基于知识图谱的软件缺陷预测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117312809B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108121829A (zh) * | 2018-01-12 | 2018-06-05 | 扬州大学 | 面向软件缺陷的领域知识图谱自动化构建方法 |
CN112597038A (zh) * | 2020-12-28 | 2021-04-02 | 中国航天系统科学与工程研究院 | 软件缺陷预测方法及系统 |
EP3916635A1 (en) * | 2020-05-26 | 2021-12-01 | Fujitsu Limited | Defect detection method and apparatus |
CN114328277A (zh) * | 2022-03-11 | 2022-04-12 | 广东省科技基础条件平台中心 | 一种软件缺陷预测和质量分析方法、装置、设备及介质 |
CN116048956A (zh) * | 2022-10-28 | 2023-05-02 | 中国农业银行股份有限公司 | 一种软件缺陷发生情况预测方法、装置、设备及存储介质 |
-
2023
- 2023-11-30 CN CN202311616158.7A patent/CN117312809B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108121829A (zh) * | 2018-01-12 | 2018-06-05 | 扬州大学 | 面向软件缺陷的领域知识图谱自动化构建方法 |
EP3916635A1 (en) * | 2020-05-26 | 2021-12-01 | Fujitsu Limited | Defect detection method and apparatus |
CN112597038A (zh) * | 2020-12-28 | 2021-04-02 | 中国航天系统科学与工程研究院 | 软件缺陷预测方法及系统 |
CN114328277A (zh) * | 2022-03-11 | 2022-04-12 | 广东省科技基础条件平台中心 | 一种软件缺陷预测和质量分析方法、装置、设备及介质 |
CN116048956A (zh) * | 2022-10-28 | 2023-05-02 | 中国农业银行股份有限公司 | 一种软件缺陷发生情况预测方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于缺陷传递的缺陷关联系数调整策略研究;董萌;包晓安;张娜;熊子健;俞成海;;浙江理工大学学报(自然科学版)(第02期);77-81 * |
Also Published As
Publication number | Publication date |
---|---|
CN117312809A (zh) | 2023-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106997474A (zh) | 一种基于深度学习的图节点多标签分类方法 | |
CN113344700B (zh) | 一种基于多目标优化的风控模型构建方法、装置和电子设备 | |
CN114897181B (zh) | 一种基于电网潮流数据因果关系的元学习解释方法 | |
Ishikawa | Concepts in quality assessment for machine learning-from test data to arguments | |
CN114036531A (zh) | 一种基于多尺度代码度量的软件安全漏洞检测方法 | |
CN115757103A (zh) | 基于树结构的神经网络测试用例生成方法 | |
CN117669384A (zh) | 基于物联网的温度传感器生产智能监测方法及系统 | |
CN117312809B (zh) | 一种基于知识图谱的软件缺陷预测方法及系统 | |
du Preez et al. | A systems theoretic approach to online machine learning | |
CN117312979A (zh) | 对象分类方法、分类模型训练方法及电子设备 | |
Lounis et al. | Machine-learning techniques for software product quality assessment | |
CN114757391B (zh) | 一种面向服务质量预测的网络数据空间设计与应用方法 | |
CN113393023B (zh) | 模具质量评估方法、装置、设备及存储介质 | |
Wu et al. | GMBFL: Optimizing Mutation-Based Fault Localization via Graph Representation | |
Khan et al. | Applying Machine Learning Analysis for Software Quality Test | |
Şahin | The role of vulnerable software metrics on software maintainability prediction | |
CN114662009A (zh) | 一种基于图卷积的工业互联网工厂协同推荐算法 | |
Yao et al. | Cross-project dynamic defect prediction model for crowdsourced test | |
CN113392921B (zh) | 一种数据驱动的风控策略规则生成方法及系统 | |
CN118569655B (zh) | 一种分阶段数据生命周期安全评估方法和系统 | |
CN118196567B (zh) | 基于大语言模型的数据评价方法、装置、设备及存储介质 | |
Li et al. | On Testing and Evaluation of Artificial Intelligence Models | |
CN115906089B (zh) | 一种基于二进制函数相似性的漏洞检测方法与系统 | |
CN117151247B (zh) | 机器学习任务建模的方法、装置、计算机设备和存储介质 | |
Hao et al. | Ontology Alignment Repair Through 0-1 Programming |
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 |