Comparing static analyses for improved semantic conflict detection
Dec 23, 23230·,,
·
1 min read
Galileu Santos
Paulo Borba
Rodrigo Bonifácio
Matheus Barbosa
Abstract
Version control systems are essential in software development, allowing teams to collaborate simultaneously without interfering with each other’s work. Tools like Git facilitate code integration through merge operations, which automatically detect textual conflicts. However, these systems focus solely on source code differences, overlooking more complex semantic conflicts that can lead to failures or unexpected behavior after integration. To address this challenge, static analysis emerges as an effective solution, detecting semantic conflicts that traditional merge tools might miss, providing an additional layer of security and quality to the code integration process. In this study, we explore combinations of static analysis techniques to improve the detection of semantic conflicts. Our approach was evaluated on a dataset from 32 real-world GitHub projects, all manually labeled to include ground truth information. These outcomes highlight the adaptability of our approach: in contexts where minimizing false positives is essential, high-precision techniques can be prioritized; in contrast, recall-focused techniques are preferable for broader conflict coverage. The results show that combining static analysis strategies delivers superior performance in terms of precision, recall, F1 score, and accuracy compared to previous methods, and is a more lightweight and flexible approach to adapt to the application context.
Type
Publication
Automated Software Engineering, Volume 33, Issue 2
Subjects: Software Engineering (cs.SE)