一种软件缺陷组件预测的方法

文档序号:8380876阅读:339来源:国知局
一种软件缺陷组件预测的方法
【技术领域】
[0001] 本发明涉及软件安全领域,特别涉及一种软件缺陷组件预测的方法。
【背景技术】
[0002] 软件缺陷是指计算机软件或程序中存在的某种破坏正常运行能力的问题、错误, 或者隐藏的功能缺陷。软件缺陷产生主要是由软件本身的特点和开发过程决定的,如何控 制软件缺陷对于生产高质量的软件是非常关键的。
[0003] 软件缺陷预测通过对软件或软件度量相关数据进行统计或数学分析,预测软件中 缺陷的分布情况和可能的数量。缺陷预测技术通过找到有出错倾向的实体并给出相应的解 决方案,可以帮助管理人员和开发人员重点关注容易出现缺陷的实体,降低了软件开发和 维护的成本,提高了软件可靠性。
[0004] 近年来关于缺陷预测的研宄主要关注在两个方面,其一是缺陷历史,其二是软件 源代码本身。Nagappan等人通过研宄发现如果一个实体在过去几个版本中很容易引进缺 陷,那么这个实体在未来也很容易出现缺陷。他们将历史缺陷信息作为选择度量元的一个 依据,然后用选择的度量元来进行缺陷组件的预测研宄。但是Gill等人在论文中阐述了基 于组件的软件特征并指出传统的度量元用来描述基于组件的软件是不合适的。他们认为语 义信息和源代码复杂度等信息应该被考虑到组件缺陷预测的研宄中。
[0005] 与此同时,一种基于上下文语义相关的度量元(基于主题的度量元)被大量应用 到软件缺陷预测的工作中,并被证明在缺陷预测研宄中具有较好的效果。这些研宄中大多 数用LDA来进行主题提取和构建工作。Nguyen等人就是较早就使用主题模型研宄软件缺陷 问题。在他的研宄中给出了基于主题的度量元与软件缺陷数目之间具有强烈关系,并断言 基于主题度量元的缺陷预测效果将会优于其他传统度量元。Chen利用主题模型来描述带 有缺陷的源代码。在他的实验中先定义缺陷主题,并通过缺陷主题来描述源代码缺陷情况。 结果表明缺陷主题可以很好的描述软件源代码缺陷程度。但是,Chen在他的研宄中主要关 注的是缺陷与单个文件的缺陷关系,而没有分析缺陷主题与组件的关系,也没有很好的证 明缺陷主题与缺陷预测的关系。

【发明内容】

[0006] 针对现有技术存在的上述问题,本发明的目的是提供一种综合考虑源代码缺陷信 息和语义信息、源代码不同版本间主题的关联信息的软件缺陷组件预测的方法。
[0007] 为实现上述目的,本发明采用如下技术方案:一种软件缺陷组件预测的方法,具体 包括如下步骤:
[0008] SI:数据抽取与预处理:提取源代码,对所提取的源代码进行去噪处理。
[0009] S2 :定义组件缺陷密度:
[0010] 将组件缺陷数与组件文件个数的比值定义为组件缺陷密度FD(Com)如式(1)所 示:
[0012] 其中com」表示第j组件,FD (com」)为第j组件缺陷密度,Failure (com」)为组件j 包含的缺陷总数,File(Comj)表示组件j包含的文件总数;
【主权项】
1. 一种软件缺陷组件预测的方法,其特征在于:具体包括如下步骤: S1:数据抽取与预处理:提取源代码,对所提取的源代码进行去噪处理。 52 :定义组件缺陷密度: 将组件缺陷数与组件文件个数的比值定义为组件缺陷密度FD(com)如式(1)所示:
其中com」表示第j组件,FD(com」)为第j组件缺陷密度,Failure(com」)为组件j包含 的缺陷总数,File(comp表示组件j包含的文件总数; 53 :定义主题缺陷密度: 组件主题和组件缺陷密度均来自于软件源代码,定义主题缺陷密度TFD(Z)如式(7)所 示
其中Zi表示第i个主题,TFD(ZJ表示第i个主题的主题缺陷密度,0 u为主题分布矩 阵,n表示组件个数; 54 :缺陷组件预测: S4a:定义相似关系,如式(8):
其中HighestWordfromTi表示第i个主题下的高频词汇,HighestWordfromTk表示第k个主题下的高频词汇,NumberofHighestWord表示第i个主题或第k个主题下的总的高频 词汇个数,Similarity表示第i个主题与第k个主题的相似关系;使i和k遍历其取值范 围,得到主题相似矩阵; S4b:通过主题相似矩阵构建不同版本间主题的演化公式如式(9):
其中'表示第r个版本,vfr+1)表示第r+1个版本,zk表示第k个主题,z,表示第i个 主题,TFD(zk,表示第r个版本中第k个主题的主题缺陷密度,TFD(Zi,v(rt))表示第r+1 个版本中第i个主题的主题缺陷密度,[k]为第r个版本中总的主题个数,yik是主题相似 矩阵中的元素,表示第个i主题和第个k主题之间的相似度。
【专利摘要】本发明涉及一种软件缺陷组件预测的方法,该方法通过定义主题缺陷密度来兼顾源代码语义信息和历史缺陷信息,然后根据版本之间主题的关联信息进行缺陷组件预测,得到组件缺陷数目。本发明提供的方法简单有效,通过定义主题缺陷密度来兼顾源代码语义信息和历史缺陷信息,通过定义相似关系矩阵考虑不同版本间的主题关联信息,从而预测准确率高,可达77.8%,预测结果经过验证,预测精度也很高。
【IPC分类】G06F11-36
【公开号】CN104699614
【申请号】CN201510139774
【发明人】徐玲, 杨梦宁, 葛永新, 洪明坚, 张小洪, 刘海林, 鄢萌
【申请人】重庆大学
【公开日】2015年6月10日
【申请日】2015年3月27日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1