Table of Contents
Fetching ...

Mea culpa: How developers fix their own simple bugs differently from other developers

Wenhan Zhu, Michael W. Godfrey

TL;DR

This study examines how the original author of buggy code vs. a different developer affects simple bug fixes using the SStuBs dataset across the top 100 Java Maven projects. By applying a modified SZZ approach and tracing authorship through implementation commits, the authors quantify differences in fix timing, size, and scope between author and non-author fixes. They find that $44.3\%$ of simple fixes are done by non-authors, with same-author fixes occurring in under $1$ day and embedded in larger commits, while non-author fixes are smaller and occur much later ($\text{median} \approx 148$ days) and are more focused. These patterns have practical implications for tailoring debugging and program repair tools to developer provenance and for interpreting SStuB-based benchmarks in empirical software engineering.

Abstract

In this work, we study how the authorship of code affects bug-fixing commits using the SStuBs dataset, a collection of single-statement bug fix changes in popular Java Maven projects. More specifically, we study the differences in characteristics between simple bug fixes by the original author -- that is, the developer who submitted the bug-inducing commit -- and by different developers (i.e., non-authors). Our study shows that nearly half (i.e., 44.3%) of simple bugs are fixed by a different developer. We found that bug fixes by the original author and by different developers differed qualitatively and quantitatively. We observed that bug-fixing time by authors is much shorter than that of other developers. We also found that bug-fixing commits by authors tended to be larger in size and scope, and address multiple issues, whereas bug-fixing commits by other developers tended to be smaller and more focused on the bug itself. Future research can further study the different patterns in bug-fixing and create more tailored tools based on the developer's needs.

Mea culpa: How developers fix their own simple bugs differently from other developers

TL;DR

This study examines how the original author of buggy code vs. a different developer affects simple bug fixes using the SStuBs dataset across the top 100 Java Maven projects. By applying a modified SZZ approach and tracing authorship through implementation commits, the authors quantify differences in fix timing, size, and scope between author and non-author fixes. They find that of simple fixes are done by non-authors, with same-author fixes occurring in under day and embedded in larger commits, while non-author fixes are smaller and occur much later ( days) and are more focused. These patterns have practical implications for tailoring debugging and program repair tools to developer provenance and for interpreting SStuB-based benchmarks in empirical software engineering.

Abstract

In this work, we study how the authorship of code affects bug-fixing commits using the SStuBs dataset, a collection of single-statement bug fix changes in popular Java Maven projects. More specifically, we study the differences in characteristics between simple bug fixes by the original author -- that is, the developer who submitted the bug-inducing commit -- and by different developers (i.e., non-authors). Our study shows that nearly half (i.e., 44.3%) of simple bugs are fixed by a different developer. We found that bug fixes by the original author and by different developers differed qualitatively and quantitatively. We observed that bug-fixing time by authors is much shorter than that of other developers. We also found that bug-fixing commits by authors tended to be larger in size and scope, and address multiple issues, whereas bug-fixing commits by other developers tended to be smaller and more focused on the bug itself. Future research can further study the different patterns in bug-fixing and create more tailored tools based on the developer's needs.

Paper Structure

This paper contains 18 sections, 3 figures, 1 table.

Figures (3)

  • Figure 1: Illustration of separate fix and integration commit
  • Figure 2: Bug fix time by same author and different author
  • Figure 3: Code churn in bug-fixing commits by authorship