Many implementations of research techniques that automatically repair software bugs target programs written in C. Work that targets Java often begins from or compares to direct translations of such techniques to a Java context. However, Java and C are very different languages, and Java should be studied to inform the construction of repair approaches to target it. We conduct a large-scale study of bugfixing commits in Java projects, focusing on assumptions underlying common search-based repair approaches. We make observations that can be leveraged to guide high quality automatic software repair to target Java specifically, including common and uncommon statement modifications in human patches and the applicability of previously-proposed patch construction operators in the Java context.
Soto et al. REF performed a large-scale study of bug-fixing commits in Java projects and provided insights for high-quality automated software repair to target Java code.
A deeper look into bug fixes: patterns, replacements, deletions, and additions
MSR '16
Computer Science