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

02/22/2019
by   Benjamin Danglot, et al.
0

When a developer pushes a change to an application's codebase, in the form of a commit, the newly introduced behavior may be incorrect. To prevent such regressions, developers rely on a continuous integration (CI) server to run a test suite on the application, at every commit. However, if the test suite lacks the test cases that specify the behavioral changes introduced by this commit, or the changes introduced by previous commits, the bug goes undetected. In this paper, we propose an approach that takes a program, its test suite, and a commit as input, and generates test methods that detect the behavioral changes of the commit, i.e., the behavioral difference between the pre-commit and post-commit versions of the program. In essence, this helps developers evolve the test suite (i.e., the application's specification) at the same time they evolve the application. We call our approach DCI (Detecting behavioral changes in CI). It works by generating variations of the existing test cases through (i) assertion amplification and (ii) a search-based exploration of input spaces. We evaluate our approach on a curated set of 50 commits from 5 open source Java projects. Our study exposes the characteristics of commits in modern open-source software and the ability of our approach to generate test methods that detect behavioral changes.

READ FULL TEXT
research
06/17/2022

CATTO: Just-in-time Test Case Selection and Execution

Regression testing ensures a System Under Test (SUT) still works as expe...
research
12/10/2019

Search-based Crash Reproduction using Behavioral Model Seeding

Search-based crash reproduction approaches assist developers during debu...
research
09/15/2017

Erlang Code Evolution Control

During the software lifecycle, a program can evolve several times for di...
research
08/04/2017

BDCI: Behavioral Driven Conflict Identification

Source Code Management (SCM) systems support software evolution by provi...
research
12/19/2022

Using Microbenchmark Suites to Detect Application Performance Changes

Software performance changes are costly and often hard to detect pre-rel...
research
09/22/2020

Evolutionary Conflict Checking

During the software evolution, existing features may be adversely affect...
research
09/10/2019

Suggestions on Test Suite Improvements with Automatic Infection and Propagation Analysis

An extreme transformation removes the body of a method that is reached b...

Please sign up or login with your details

Forgot password? Click here to reset