基于信息检索的方法级别软件缺陷定位研究

来源 :北京化工大学 | 被引量 : 0次 | 上传用户:re_man
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件质量管理是信息系统领域一个重要的研究内容。当软件的质量存在问题时,将会带来很严重地影响。由于软件生产具备知识密集和人力密集的特点,这将不可避免的会产生软件缺陷。当软件缺陷报告在缺陷跟踪系统中被指派给开发人员进行缺陷修复之后,缺陷修复人员就需要根据提交的缺陷报告来进行软件缺陷定位并做出相应的代码变更以修复该软件缺陷。在缺陷修复的整个过程之中,软件缺陷定位占用了开发人员大量的时间。本文提出了两种基于信息检索的方法级别软件缺陷定位方法以提高软件修复人员的工作效率,分别称之为 MethodLocator 及 FineLocator。MethodLocator首先对缺陷报告和源代码方法体通过利用词向量(word2vec)和TF-IDF结合的方法进行向量表示,然后根据源代码文件中方法体之间的相似度,对方法体进行扩充,最后对扩充后的方法体和缺陷报告计算其余弦距离并排序,来定位为修复软件缺陷所需做出变更的方法。在四个开源软件项目ArgoUML,Ant,Maven和Kylin上的实验结果表明,MethodLocator方法优于现有的缺陷定位方法,它能够在方法级别上有效地将软件缺陷定位到源代码。在FineLocator中,与MethodLocator相似,首先对缺陷报告和源代码方法体通过利用词向量(word2vec)和TF-IDF结合的方法进行向量表示。然后本文在FineLocator的框架下提出三个查询扩展分数分别为语义相似度得分,时间接近度得分和调用依赖性得分,以解决由源代码中的方法体短长度而引起的表示稀疏性问题。之后,通过查询扩展的方法对源代码方法体进行扩充。最后,当一个新的缺陷报告传入时,FineLocator将利用缺陷报告和通过查询扩展后的方法体之间的余弦相似度对源代码方法体进行排序,来定位为修复软件缺陷所需做出变更的方法。在五个开源软件项目ArgoUML,Ant,Maven,Kylin和AspectJ上的实验结果证明了 FineLocator的有效性。本文得到的管理启示:利用信息检索方法有助于软件质量管理,帮助软件维护人员进行缺陷定位,减少软件维护成本,提高软件开发质量。为软件项目管理人员采用信息检索方法进行软件质量改进,提供一种有效手段。
其他文献
本文利用Fluent模拟软件对UASB内部气液两相流场的二维分布状况进行数值模拟,主要研究内容及结论如下:(1)固定三相分离器角度为50o,通过改变不同的OLR(容积负荷)(4、5、6、7
分析化学是一门实践性和应用性很强的学科.是解决生产和科研实际问题的重要工具。在分析化学教学过程中,改革和创新教学内容、教学模式和教学方法,有利于充分调动学生的积极性和
营商环境是体现政府治理能力的重要指标,也是反映区域经济综合实力的主要体现。营商环境在治理主体上表现为多元性参与,强调以制度化、合作性、公共性为特征,全面推进改革战
晋升是公务员最具有激励手段的方式之一,影响公务员的物质与精神方面的需求,只有良好的公务员职务晋升才能起到有效的激励公务员作用。然而现实中基层公务员职务晋升因公务员
今年以来,山东狠抓促进外贸发展的政策落实,积极推进外贸新旧动能转换,妥善应对贸易摩擦等一系列新挑战,努力实现全省进出口稳定增长。2018年1~8月份,全省完成进出口12158.1亿元,同
报纸