[发明专利]一种软件缺陷组件预测的方法有效
申请号: | 201510139774.7 | 申请日: | 2015-03-27 |
公开(公告)号: | CN104699614B | 公开(公告)日: | 2017-04-26 |
发明(设计)人: | 徐玲;杨梦宁;葛永新;洪明坚;张小洪;刘海林;鄢萌 | 申请(专利权)人: | 重庆大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 重庆信航知识产权代理有限公司50218 | 代理人: | 穆祥维 |
地址: | 400044 *** | 国省代码: | 重庆;85 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 缺陷 组件 预测 方法 | ||
技术领域
本发明涉及软件安全领域,特别涉及一种软件缺陷组件预测的方法。
背景技术
软件缺陷是指计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。软件缺陷产生主要是由软件本身的特点和开发过程决定的,如何控制软件缺陷对于生产高质量的软件是非常关键的。
软件缺陷预测通过对软件或软件度量相关数据进行统计或数学分析,预测软件中缺陷的分布情况和可能的数量。缺陷预测技术通过找到有出错倾向的实体并给出相应的解决方案,可以帮助管理人员和开发人员重点关注容易出现缺陷的实体,降低了软件开发和维护的成本,提高了软件可靠性。
近年来关于缺陷预测的研究主要关注在两个方面,其一是缺陷历史,其二是软件源代码本身。Nagappan等人通过研究发现如果一个实体在过去几个版本中很容易引进缺陷,那么这个实体在未来也很容易出现缺陷。他们将历史缺陷信息作为选择度量元的一个依据,然后用选择的度量元来进行缺陷组件的预测研究。但是Gill等人在论文中阐述了基于组件的软件特征并指出传统的度量元用来描述基于组件的软件是不合适的。他们认为语义信息和源代码复杂度等信息应该被考虑到组件缺陷预测的研究中。
与此同时,一种基于上下文语义相关的度量元(基于主题的度量元)被大量应用到软件缺陷预测的工作中,并被证明在缺陷预测研究中具有较好的效果。这些研究中大多数用LDA来进行主题提取和构建工作。Nguyen等人就是较早就使用主题模型研究软件缺陷问题。在他的研究中给出了基于主题的度量元与软件缺陷数目之间具有强烈关系,并断言基于主题度量元的缺陷预测效果将会优于其他传统度量元。Chen利用主题模型来描述带有缺陷的源代码。在他的实验中先定义缺陷主题,并通过缺陷主题来描述源代码缺陷情况。结果表明缺陷主题可以很好的描述软件源代码缺陷程度。但是,Chen在他的研究中主要关注的是缺陷与单个文件的缺陷关系,而没有分析缺陷主题与组件的关系,也没有很好的证明缺陷主题与缺陷预测的关系。
发明内容
针对现有技术存在的上述问题,本发明的目的是提供一种综合考虑源代码缺陷信息和语义信息、源代码不同版本间主题的关联信息的软件缺陷组件预测的方法。
为实现上述目的,本发明采用如下技术方案:一种软件缺陷组件预测的方法,具体包括如下步骤:
S1:数据抽取与预处理:提取源代码,对所提取的源代码进行去噪处理。
S2:定义组件缺陷密度:
将组件缺陷数与组件文件个数的比值定义为组件缺陷密度FD(com)如式(1)所示:
其中comj表示第j组件,FD(comj)为第j组件缺陷密度,Failure(comj)为组件j包含的缺陷总数,File(comj)表示组件j包含的文件总数;
S3:定义主题缺陷密度:
组件主题和组件缺陷密度均来自于软件源代码,定义主题缺陷密度TFD(Z)如式(7)所示:
其中Zi表示第i个主题,TFD(Zi)表示第i个主题的主题缺陷密度,θij为主题分布矩阵,n表示组件个数;
S4:缺陷组件预测:
S4a:定义相似关系,如式(8):
其中HighestWordfromTi表示第i个主题下的高频词汇,HighestWordfromTk表示第k个主题下的高频词汇,NumberofHighestWord表示第i个主题或第k个主题下的总的高频词汇个数,Similarity表示第i个主题与第k个主题的相似关系;使i和k遍历其取值范围,得到主题相似矩阵;
S4b:通过主题相似矩阵构建不同版本间主题的演化公式如式(9):
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆大学,未经重庆大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510139774.7/2.html,转载请声明来源钻瓜专利网。