摘要
在软件开发过程中,软件缺陷是不可避免的。在缺陷跟踪系统中,一个重要的问题是如何根据用户所提交的缺陷报告,进行缺陷的自动定位。本文在综合考虑缺陷报告与源代码文件结构相似性的基础上,进一步分析已修复缺陷报告、缺陷报告中的异常堆栈(StackTrace)信息对软件缺陷定位的作用,从而提高定位的精度。在Eclipse、AspectJ和SWT开源项目数据程序集上进行相关实验,并与Buglocator、BRTracer和BLUiR缺陷定位方法进行了比较分析,实验结果表明,本文方法能显著提高软件缺陷定位的精度。
Software defects are inevitable during the software development process. In the defect tracking system,an important issue is how to automatically locate defects based on the bug report submitted by the user. Based on the comprehensive consideration of the structural similarity between the defect report and the source code file, this paper further analyzes the effect of the abnormal stack information in the fixed defect report and defect report on the software defect location, thus improving the positioning accuracy. Related experiments are carried out on the Eclipse,Aspect J and SWT open source project data assemblies, and compared with Buglocator, BRTracer and BLUiR defect location methods. The experimental results show that the proposed method can significantly improve the accuracy of software defect location.
引文
[1]王云.《软件测试》课程教学探索与思考[J].软件,2015,36(7):129-131
[2]Schoop G,Lamina J.On the Effectiveness of the Tarantula Fault Localization Technique for Different Fault Classes[J].2011,69(5):317-324.
[3]张琪.大数据背景下软件测试的挑战与展望[J].软件,2018,39(6):181-183
[4]Zhou Jian,Zhang Hongyu,Lo D.Where should the bugs be fixed?More accurate information retrieval-based bug localization based on bug reports[C].Proc of International Conference on Software Engineering.2012:14-24.
[5]Wong,C.P.,Xiong,Y.,Zhang,H.,Hao,D.,Zhang,L.,&Mei,H.Boosting Bug-Report-Oriented Fault Localization with Segmentation and Stack-Trace Analysis.IEEE International Conference on Software Maintenance and Evolution.IEEE Computer Society,2014:181-190.
[6]Saha R K,Lease M,Khurshid S,Perry DE.Improving bug localization using structured information retrieval.Ieee/acm,International Conference on Automated Software Engineering.ACM,2015:345-355.
[7]Reza Gharibi;Amir Hossein Rasekh;Mohammad Hadi Sadreddini.Locating relevant source files for bug reports using textual analysis//2017 International Symposium on Computer Science and Software Engineering Conference(CSSE),2017:67-72.
[8]Antoniol.G.,Canfora,G.,Casazza,G.,Lucia,A.D.,Merlo,E.,2002.Recovering traceability links between code and documention.IEEE Transations on Software Engineering 28,970-983.
[9]Schroter,A.,Bettenburg,N.,Premraj,R.,2010.Do stack traces help developers fix bugs?,in:Mining Software Repositories,pp.118-121
[10]Brand M V D.Generator of efficient strongly typed abstract syntax trees in Java[J].IEE Proceedings-Software,2005,152(2):70-78.
[11]Neamtiu I,Foster J S,Hicks M.Understanding source code evolution using abstract syntax tree matching[J].Acm Sigsoft Software Engineering Notes,2005,30(4):1-5.
[12]Porter,M.,F.,1980.An algorithm for suffix stripping.Program Electronic Library&Information Systems 14,130-137.
[13]杨勋姮,段明璐.软件缺陷分析技术的研究[J].软件,2018,39(2):93-101
[14]Wang S,Lo D,Lawall J.Compositional Vector Space Models for Improved Bug Localization[C].//2014 IEEE International Conference on Software Maintenance and Evolution(ICSME).IEEE Computer Society,2014:171-180.
[15]郭庆琳,李艳梅,唐琦.基于VSM的文本相似度计算的研究[J].计算机应用研究,2008,25(11):3256-3258.