Detecting Semantic Conflicts with Unit Tests

Fuente: arXiv
Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Da Silva, Léuson, Borba, Paulo, Maciel, Toni, Mahmood, Wardah, Berger, Thorsten, Moisakis, João, Gomes, Aldiberg, Leite, Vinícius
Format: Preprint
Veröffentlicht: 2023
Schlagworte:
Online-Zugang:
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
_version_ 1866918086551011328
author Da Silva, Léuson
Borba, Paulo
Maciel, Toni
Mahmood, Wardah
Berger, Thorsten
Moisakis, João
Gomes, Aldiberg
Leite, Vinícius
author_facet Da Silva, Léuson
Borba, Paulo
Maciel, Toni
Mahmood, Wardah
Berger, Thorsten
Moisakis, João
Gomes, Aldiberg
Leite, Vinícius
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2310_02395
institution arXiv
publishDate 2023
record_format arxiv
spellingShingle Detecting Semantic Conflicts with Unit Tests
Da Silva, Léuson
Borba, Paulo
Maciel, Toni
Mahmood, Wardah
Berger, Thorsten
Moisakis, João
Gomes, Aldiberg
Leite, Vinícius
Software Engineering
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.
title Detecting Semantic Conflicts with Unit Tests
topic Software Engineering
url https://arxiv.org/abs/2310.02395