How (Not) to Find Bugs: The Interplay Between Merge Conflicts, Co-Changes, and Bugs
Autor: | Luis Henrique Vieira Amaral, José Augusto Abreu Sá Fortes, Gustavo Pinto, Marcos César de Oliveira, Welder Luz, Daniel Alencar, David Lo, Eduardo Monteiro, Rodrigo Bonifácio |
---|---|
Rok vydání: | 2020 |
Předmět: |
Theoretical computer science
Source code Java Computer science business.industry media_common.quotation_subject Compromise Small number 020207 software engineering 02 engineering and technology Exploratory data analysis 020204 information systems Conflict resolution 0202 electrical engineering electronic engineering information engineering System integration business computer Merge (version control) computer.programming_language media_common |
Zdroj: | ICSME |
DOI: | 10.1109/icsme46990.2020.00049 |
Popis: | Context: In a seminal work, Ball et al. [1] investigate if the information available in version control systems could be used to predict defect density, arguing that practitioners and researchers could better understand errors "if [our] version control system could talk". In the meanwhile, several research works have reported that conflict merge resolution is a time consuming and error-prone task, while other contributions diverge about the correlation between co-change dependencies and defect density. Problem: The correlation between conflicting merge scenarios and bugs has not been addressed before, whilst the correlation between co-change dependencies and bug density has been only investigated using a small number of case studies—which can compromise the generalization of the results. Goal: To address this gap in the literature, this paper presents the results of a comprehensive study whose goal is to understand whether or not (a) conflicting merge scenarios and (b) co-change dependencies are good predictors for bug density. Method: We first build a curated dataset comprising the source code history of 29 popular Java Apache projects and leverage the SZZ algorithm to collect the sets of bug-fixing and bug-introducing commits. We then combine the SZZ results with the set of past conflicting merge scenarios and co-change dependencies of the projects. Finally, we use exploratory data analysis and machine learning models to understand the strength of the correlation between conflict resolution and co-change dependencies with defect density. Findings: (a) conflicting merge scenarios are not more prone to introduce bugs than regular commits, (b) there is a negligible to a small correlation between co-change dependencies and defect density—contradicting previous studies in the literature. |
Databáze: | OpenAIRE |
Externí odkaz: |