BDCI: Behavioral Driven Conflict Identification

08/04/2017
by   Fabrizio Pastore, et al.
0

Source Code Management (SCM) systems support software evolution by providing features, such as version control, branching, and conflict detection. Despite the presence of these features, support to parallel software development is often limited. SCM systems can only address a subset of the conflicts that might be introduced by developers when concurrently working on multiple parallel branches. In fact, SCM systems can detect textual conflicts, which are generated by the concurrent modification of the same program locations, but they are unable to detect higher-order conflicts, which are generated by the concurrent modification of different program locations that generate program misbehaviors once merged. Higher-order conflicts are painful to detect and expensive to fix because they might be originated by the interference of apparently unrelated changes. In this paper we present Behavioral Driven Conflict Identification (BDCI), a novel approach to conflict detection. BDCI moves the analysis of conflicts from the source code level to the level of program behavior by generating and comparing behavioral models. The analysis based on behavioral models can reveal interfering changes as soon as they are introduced in the SCM system, even if they do not introduce any textual conflict. To evaluate the effectiveness and the cost of the proposed approach, we developed BDCIf , a specific instance of BDCI dedicated to the detection of higher-order conflicts related to the functional behavior of a program. The evidence collected by analyzing multiple versions of Git and Redis suggests that BDCIf can effectively detect higher-order conflicts and report how changes might interfere.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/22/2019

An Approach and Benchmark to Detect Behavioral Changes of Commits in Continuous Integration

When a developer pushes a change to an application's codebase, in the fo...
research
02/29/2020

Automated Regression Unit Test Generation for Program Merges

Merging other branches into the current working branch is common in coll...
research
11/18/2019

Invariant Diffs

Software development is inherently incremental. Nowadays, many software ...
research
09/22/2020

Evolutionary Conflict Checking

During the software evolution, existing features may be adversely affect...
research
05/17/2022

A Multi-level Methodology for Behavioral Comparison of Software-Intensive Systems

Software-intensive systems constantly evolve. To prevent software change...
research
04/22/2021

Effectively Sampling Higher Order Mutants Using Causal Effect

Higher Order Mutation (HOM) has been proposed to avoid equivalent mutant...
research
03/29/2019

Fooling the Parallel Or Tester with Probability 8/27

It is well-known that the higher-order language PCF is not fully abstrac...

Please sign up or login with your details

Forgot password? Click here to reset