The Missing Links: Bugs and Bug-fix Commits - Bachmann, Adrian; Bird, Christian; Rahman, Foyzur; Devanbu, Premkumar; Bernstein, Abraham (SIGSOFT '10/FSE-18: Proceedings of the 16th ACM SIGSOFT Symposium on Foundations of Software Engineering, 2010)
Empirical studies of software defects rely on links between bug databases and program code repositories. This linkage is typically based on bug-fixes identified in manually-entered commit logs. Unfortunately, developers do not always report which commits perform bug-fixes. Prior work suggests that such links can be a biased sample of the entire population of fixed bugs. The validity of statistical hypotheses-testing based on linked data could well be affected by bias. Given the wide use of linked defect data, it is vital to gauge the nature and extent of the bias, and try to develop testable theories and models of the bias. To do this, we must establish ground truth: manually analyze a complete version history corpus, and nail down those commits that fix defects, and those that are not. This is a difficult task, requiring an expert to compare versions, analyze changes, find related bugs in the bug database, reverse-engineer missing links, and finally record their work for use later. This effort must be repeated for hundreds of commits to obtain a useful sample of reported and unreported bug-fix commits. We make several contributions. First, we present Linkageur, a tool to facilitate link reverse-engineering. Second, we evaluate this tool, engaging a core developer of the Apache Webserver project to exhaustively annotate over all five hundred commits that occurred during a six week period. Finally, we analyze this comprehensive data set, showing that there are serious and consequential problems in the data.