What helped, and what did not? An Evaluation of the Strategies to Improve Continuous Integration

02/12/2021
by   Xianhao Jin, et al.
0

Continuous integration (CI) is a widely used practice in modern software engineering. Unfortunately, it is also an expensive practice - Google and Mozilla estimate their CI systems in millions of dollars. There are a number of techniques and tools designed to or having the potential to save the cost of CI or expand its benefit - reducing time to feedback. However, their benefits in some dimensions may also result in drawbacks in others. They may also be beneficial in other scenarios where they are not designed to help. In this paper, we perform the first exhaustive comparison of techniques to improve CI, evaluating 14 variants of 10 techniques using selection and prioritization strategies on build and test granularity. We evaluate their strengths and weaknesses with 10 different cost and time-tofeedback saving metrics on 100 real-world projects. We analyze the results of all techniques to understand the design decisions that helped different dimensions of benefit. We also synthesized those results to lay out a series of recommendations for the development of future research techniques to advance this area.

READ FULL TEXT

page 1

page 9

research
04/18/2022

Automated Test Generation for REST APIs: No Time to Rest Yet

Modern web services routinely provide REST APIs for clients to access th...
research
03/26/2018

SEAT: A Taxonomy to Characterize Automation in Software Engineering

Reducing cost and time required to build high quality software is a majo...
research
02/27/2021

A Brief Survey of Current Software Engineering Practices in Continuous Integration and Automated Accessibility Testing

It's long been accepted that continuous integration (CI) in software eng...
research
08/10/2023

Using Machine Learning To Identify Software Weaknesses From Software Requirement Specifications

Secure software engineering is crucial but can be time-consuming; theref...
research
06/30/2018

EnFuzz: From Ensemble Learning to Ensemble Fuzzing

Fuzzing is widely used for software vulnerability detection. There are v...
research
12/25/2018

Assuring Autonomous Systems: Opportunities for Integrated Formal Methods?

Formal methods have provided approaches for investigating software engin...
research
09/27/2018

FMIT: Feature Model Integration Techniques

Although feature models are widely used in practice, for example, repres...

Please sign up or login with your details

Forgot password? Click here to reset