What changes in where?
Md. Rakibul Islam, Minhaz F. Zibran
Abstract
A deep understanding of the common patterns of bug-fixing changes is useful in several ways: (a) such knowledge can help developers in proactively avoiding coding patterns that lead to bugs and (b) bug-fixing patterns are exploited in devising techniques for automatic bug localization and program repair. This work includes an in-depth quantitative and qualitative analysis over 4,653 buggy revisions of five software systems. Our study identifies 38 bug-fixing edit patterns and discovers 37 new patterns of nested code structures, which frequently host the bug-fixing edits. While some of the edit patterns were reported in earlier studies, these nesting patterns are new and were never targeted before.
Topics & Concepts
Computer scienceNesting (process)Software bugCoding (social sciences)SoftwareCode (set theory)Software engineeringData scienceProgramming languageEngineeringMathematicsMechanical engineeringStatisticsSet (abstract data type)Software Engineering ResearchSoftware Testing and Debugging TechniquesSoftware Reliability and Analysis Research