Font Size: a A A

Automated Software Defect Localization

Posted on:2017-04-16Degree:Ph.DType:Dissertation
University:Ohio UniversityCandidate:Ye, XinFull Text:PDF
GTID:1478390014490650Subject:Computer Science
Abstract/Summary:
In software development, developers usually receive bug reports that describe the abnormal behaviors of the software products. When a new bug report is received, developers usually need to reproduce the bug and perform code reviews to find the cause, a process that can be tedious and time-consuming. To alleviate developers manual efforts of finding the bug, this dissertation presents a learning-to-rank approach that ranks all the source code files for a given bug report automatically. To improve the ranking performance, this dissertation also introduces using word-embedding-based text similarities to bridge the lexical gap between natural languages in bug reports and code in source files.;First, a tool for ranking all the source files with respect to how likely they are to contain the cause of the bug would enable developers to narrow down their search and improve productivity. This dissertation introduces an adaptive ranking approach that leverages project knowledge through functional decomposition of source code, API descriptions of library components, bug-fixing history, code change history, and the file dependency graph. Given a bug report, the ranking score of each source file is computed as a weighted combination of an array of features, where the weights are trained automatically on previously solved bug reports using a learning-to-rank technique. We evaluate the ranking system on six large-scale open source Java projects, using the before-fix version of the project for every bug report. The experimental results show that the learning-to-rank approach outperforms three recent state-of-the-art methods. In particular, our method makes correct recommendations within the top 10 ranked source files for over 70% of the bug reports in the Eclipse Platform and Tomcat projects.;Second, we propose bridging the lexical gap by projecting natural language statements and code snippets as meaning vectors in a shared representation space. In the proposed architecture, word embeddings are first trained on API documents, tutorials, and reference documents, and then aggregated in order to estimate semantic similarities between documents. Empirical evaluations show that the learned vector space embeddings lead to improvements in the report-oriented bug localization task.
Keywords/Search Tags:Bug report, Software, Developers
Related items