Semantic conflict detection via dynamic analysis

During collaborative software development, a semantic conflict may occur when the individual behavior expected by different developers is no longer preserved after merging their branches. While potential semantic conflicts are not captured via textual merge tools, different approaches have already been proposed based on static analysis or automated test generation to verify behavioral changes given a merge scenario. However, these approaches share some limitations regarding scalability and reporting false positives and negatives. Trying to address these limitations, in this work, we assess the detection of conflicts by focusing on overriding assignments in JavaScript code through dynamic analysis. Dynamic analysis allows us to detect changes involving writing operations to the same state element at runtime and does not need assertions about the under-analysis code, such as in test-based approaches, requiring only the final version of the merged code (post-merge) to be executed. To evaluate our approach, besides translating test cases from related works, we empirically analyze merge scenarios from 50 JavaScript opensource projects hosted on GitHub, from which we correctly detected one scenario of overriding assignment representing a potential semantic conflict with no false positives.

Authors

Institutions

Publication Details

Published
2024-09-30
DOI
https://doi.org/10.5753/sblp.2024.3471
Citations
1
Primary Topic
Software Testing and Debugging Techniques
Type
article
Field-Weighted Citation Impact
0.49

Funders

Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Semantic conflict detection via dynamic analysis

Léuson Da Silva, Alcione Gomes Moraes, Paulo Borba
1 citations
Software Testing and Debugging Techniques
0.49
article

Semantic conflict detection via dynamic analysis

Léuson Da Silva, Alcione Gomes Moraes, Paulo Borba
article en
1 citations

Abstract

During collaborative software development, a semantic conflict may occur when the individual behavior expected by different developers is no longer preserved after merging their branches. While potential semantic conflicts are not captured via textual merge tools, different approaches have already been proposed based on static analysis or automated test generation to verify behavioral changes given a merge scenario. However, these approaches share some limitations regarding scalability and reporting false positives and negatives. Trying to address these limitations, in this work, we assess the detection of conflicts by focusing on overriding assignments in JavaScript code through dynamic analysis. Dynamic analysis allows us to detect changes involving writing operations to the same state element at runtime and does not need assertions about the under-analysis code, such as in test-based approaches, requiring only the final version of the merged code (post-merge) to be executed. To evaluate our approach, besides translating test cases from related works, we empirically analyze merge scenarios from 50 JavaScript opensource projects hosted on GitHub, from which we correctly detected one scenario of overriding assignment representing a potential semantic conflict with no false positives.

Polytechnique Montréal (CA)
Coordenação de Aperfeiçoamento de Pessoal de Nível Superior, Conselho Nacional de Desenvolvimento Científico e Tecnológico, Fundação de Amparo à Ciência e Tecnologia do Estado de Pernambuco
Openalex Percentile: Top 30%
Software Testing and Debugging Techniques
0.49
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.