Automated Regression Unit Test Generation for Program Merges

02/29/2020
by   Tao Ji, et al.
0

Merging other branches into the current working branch is common in collaborative software development. However, developers still heavily rely on the textual merge tools to handle the complicated merge tasks. The latent semantic merge conflicts may fail to be detected and degrade the software quality. Regression testing is able to prevent regression faults and has been widely used in real-world software development. However, the merged software may fail to be well examined by rerunning the existing whole test suite. Intuitively, if the test suite fails to cover the changes of different branches at the same time, the merge conflicts would fail to be detected. Recently, it has been proposed to conduct verification on 3-way merges, but this approach does not support even some common cases such as different changes made to different parts of the program. In this paper, we propose an approach of regression unit test generation specifically for checking program merges according to our proposed test oracles. And our general test oracles support us to examine not only 3-way merges, but also 2-way and octopus merges. Considering the conflicts may arise in other locations besides changed methods of the project, we design an algorithm to select UUTs based on the dependency analysis of the whole project. On this basis, we implement a tool called TOM to generate unit tests for Java program merges. We also design the benchmark MCon4J consisting of 389 conflict 3-way merges and 389 conflict octopus merges to facilitate further studies on this topic. The experimental results show that TOM finds 45 conflict 3- way merges and 87 conflicts octopus merges, while the verification based tool fails to work on MCon4J.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/22/2020

Evolutionary Conflict Checking

During the software evolution, existing features may be adversely affect...
research
02/19/2018

Verifying Semantic Conflict-Freedom in Three-Way Program Merges

Even though many programmers rely on 3-way merge tools to integrate chan...
research
08/04/2017

BDCI: Behavioral Driven Conflict Identification

Source Code Management (SCM) systems support software evolution by provi...
research
07/14/2019

Predicting Merge Conflicts in Collaborative Software Development

Background. During collaborative software development, developers often ...
research
02/23/2023

Sequence-Based Incremental Concolic Testing of RTL Models

Concolic testing is a scalable solution for automated generation of dire...
research
11/23/2021

Can Pre-trained Language Models be Used to Resolve Textual and Semantic Merge Conflicts?

Program merging is standard practice when developers integrate their ind...
research
03/02/2021

Can Program Synthesis be Used to Learn Merge Conflict Resolutions? An Empirical Analysis

Forking structure is widespread in the open-source repositories and that...

Please sign up or login with your details

Forgot password? Click here to reset