Early Conflict Detection with Mined Models
Leonardo Mariani, Daniela Micucci, Fabrizio Pastore · 2014
The key idea introduced in this paper consists of running a multi-branch server-side dynamic analysis at every commit operation. The analysis will execute the test cases available in the source code management (SCM) system to trace the behavior of the application and automatically derive models that capture how the program behaves according to multiple dimensions. For instance, the functional behavior of the program can be represented with method pre- and post-conditions, API usage protocols, and precedence rules among method invocations. The temporal behavior of a program can be represented with models that capture aspects, such as deadlines, periodicity, and constraints on the timing of the tasks. These models are used on the server side to run automated conflict detection. Models are derived for every version in every branch, and automatically compared every time a change is introduced. Comparing models allows identifying behavioral conflicts regardless the presence of textual conflicts, which do not need to be resolved to run the analysis. We call this analysis Behavioral Driven Continuous Integration (BDCI).