Detecting Semantic Conflicts with Unit Tests

Branching and merging are common practices in collaborative software development, increasing developer's productivity. Despite such benefits, developers need to merge software and resolve merge conflicts. While modern merge techniques can resolve textual conflicts automatically, they fail when...

Full description

Saved in:
Bibliographic Details
Published inarXiv.org
Main Authors Léuson Da Silva, Borba, Paulo, Maciel, Toni, Mahmood, Wardah, Berger, Thorsten, Moisakis, João, Gomes, Aldiberg, Leite, Vinícius
Format Paper
LanguageEnglish
Published Ithaca Cornell University Library, arXiv.org 03.10.2023
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:Branching and merging are common practices in collaborative software development, increasing developer's productivity. Despite such benefits, developers need to merge software and resolve merge conflicts. While modern merge techniques can resolve textual conflicts automatically, they fail when the conflict arises at the semantic level. Although semantic merge tools have been proposed, they are usually based on heavyweight static analyses or need explicit specifications of program behavior. In this work, we take a different route and propose SAM (SemAntic Merge), a semantic merge tool based on the automated generation of unit tests that are used as partial specifications. To evaluate SAM's feasibility for detecting conflicts, we perform an empirical study analyzing more than 80 pairs of changes integrated into common class elements from 51 merge scenarios. Furthermore, we also assess how the four unit-test generation tools used by SAM contribute to conflict identification. We propose and assess the adoption of Testability Transformations and Serialization. Our results show that SAM best performs when combining only the tests generated by Differential EvoSuite and EvoSuite and using the proposed Testability Transformations (nine detected conflicts out of 28). These results reinforce previous findings about the potential of using test-case generation to detect test conflicts.
ISSN:2331-8422