Bug Localization for Version Issues With Defect Patterns

Version issues are becoming more and more prominent with the continuous development of software. Bug localization for version issues is time-consuming and labor-intensive. Although some bug localization techniques, such as those based on information retrieval (IR), have been proposed, they cannot handle these bugs very well as the version-related bugs have their own defect patterns. However, few existing works have focused on revealing these defect patterns and utilizing them for localization of bugs. To fill this gap, we propose a new approach by leveraging the version-related defect patterns to localize the version-related issues integrated with the IR technique. First, we extract version-related bugs from bug repositories and build a version-related bug repository. Given a new version-related bug report, we identify the defect patterns of corresponding similar historical bug reports from the version-related bug repository. Then, we combine these defect patterns with the IR technique to rank the candidate code snippets as suspicious code for developers to fix. The evaluation demonstrates that our approach is more effective to identify the faulty code related to version issues than the existing IR-based bug localization technique.

[1]  David Lo,et al.  Network-Clustered Multi-Modal Bug Localization , 2018, IEEE Transactions on Software Engineering.

[2]  Xingjun Zhang,et al.  Comparing learning to rank techniques in hybrid bug localization , 2018, Appl. Soft Comput..

[3]  Kai Zhang,et al.  How security bugs are fixed and what can be improved: an empirical study with Mozilla , 2018, Science China Information Sciences.

[4]  C.P. Indumathi,et al.  Enhancing fault localization using control and data flow dependence structures , 2018, 2018 2nd International Conference on Inventive Systems and Control (ICISC).

[5]  Hinrich Schütze,et al.  Introduction to information retrieval , 2008 .

[6]  Bogdan Dit,et al.  Integrating information retrieval, execution and link analysis algorithms to improve feature location in software , 2012, Empirical Software Engineering.

[7]  Angela M. Dean,et al.  Design and analysis of experiment , 2013 .

[8]  Hareton K. N. Leung,et al.  MSR4SM: Using topic models to effectively mining software repositories for software maintenance tasks , 2015, Inf. Softw. Technol..

[9]  Giuliano Antoniol,et al.  Recovering Traceability Links between Code and Documentation , 2002, IEEE Trans. Software Eng..

[10]  Marc Roper,et al.  Bug localisation through diverse sources of information , 2013, 2013 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW).

[11]  He Jiang,et al.  Automated Localization for Unreproducible Builds , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[12]  Mohamed Wiem Mkaouer,et al.  Recommending relevant classes for bug reports using multi-objective search , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[13]  Junwu Zhu,et al.  Empirical studies on the NLP techniques for source code data preprocessing , 2014, EAST 2014.

[14]  Avinash C. Kak,et al.  Retrieval from software libraries for bug localization: a comparative study of generic and composite text models , 2011, MSR '11.

[15]  Wenyuan Xu,et al.  Personalized project recommendation on GitHub , 2017, Science China Information Sciences.

[16]  Xiaobing Sun,et al.  Enhancing developer recommendation with supplementary information via mining historical commits , 2017, J. Syst. Softw..

[17]  David Lo,et al.  Will this localization tool be effective for this bug? Mitigating the impact of unreliability of information retrieval based bug localization tools , 2016, Empirical Software Engineering.

[18]  Avinash C. Kak,et al.  Exploiting spatial code proximity and order for improved source code retrieval for bug localization , 2017, J. Softw. Evol. Process..

[19]  Eunseok Lee,et al.  Improved bug localization based on code change histories and bug reports , 2017, Inf. Softw. Technol..

[20]  Zhi-Hua Zhou,et al.  Learning Unified Features from Natural and Programming Languages for Locating Buggy Source Code , 2016, IJCAI.

[21]  Jian Zhou,et al.  Where should the bugs be fixed? More accurate information retrieval-based bug localization based on bug reports , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[22]  Sarfraz Khurshid,et al.  Improving bug localization using structured information retrieval , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[23]  Razvan C. Bunescu,et al.  Mapping Bug Reports to Relevant Files: A Ranking Model, a Fine-Grained Benchmark, and Feature Evaluation , 2016, IEEE Transactions on Software Engineering.

[24]  Yu Zhou,et al.  Augmenting Bug Localization with Part-of-Speech and Invocation , 2017, Int. J. Softw. Eng. Knowl. Eng..

[25]  Robert W. Bowdidge,et al.  Programmers' build errors: a case study (at google) , 2014, ICSE.

[26]  Avinash C. Kak,et al.  Incorporating version histories in Information Retrieval based bug localization , 2012, 2012 9th IEEE Working Conference on Mining Software Repositories (MSR).

[27]  Bin Li,et al.  IPSETFUL: an iterative process of selecting test cases for effective fault localization by exploring concept lattice of program spectra , 2016, Frontiers of Computer Science.

[28]  Hung Viet Nguyen,et al.  A topic-based approach for narrowing the search space of buggy files from a bug report , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[29]  Gregg Rothermel,et al.  On the benefits of providing versioning support for end users: An empirical study , 2014, TCHI.

[30]  Martin F. Porter,et al.  An algorithm for suffix stripping , 1997, Program.

[31]  David Lo,et al.  Version history, similar report, and structure: putting them together for improved bug localization , 2014, ICPC 2014.

[32]  Ming Li,et al.  Enhancing the Unified Features to Locate Buggy Files by Exploiting the Sequential Nature of Source Code , 2017, IJCAI.

[33]  Foyzul Hassan,et al.  HireBuild: An Automatic Approach to History-Driven Repair of Build Scripts , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[34]  Letha H. Etzkorn,et al.  Source Code Retrieval for Bug Localization Using Latent Dirichlet Allocation , 2008, 2008 15th Working Conference on Reverse Engineering.

[35]  Eunseok Lee,et al.  Bug Localization Based on Code Change Histories and Bug Reports , 2015, 2015 Asia-Pacific Software Engineering Conference (APSEC).

[36]  Ming Wen,et al.  Locus: Locating bugs from software changes , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[37]  Anas Mahmoud,et al.  Just enough semantics: An information theoretic approach for IR-based software bug localization , 2018, Inf. Softw. Technol..

[38]  Lu Zhang,et al.  Boosting Bug-Report-Oriented Fault Localization with Segmentation and Stack-Trace Analysis , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[39]  David Lo,et al.  AmaLgam+: Composing Rich Information Sources for Accurate Bug Localization , 2016, J. Softw. Evol. Process..

[40]  Bin Li,et al.  MULAPI: Improving API method recommendation with API usage location , 2018, J. Syst. Softw..