Continuous Integration and Software Quality: A Causal Explanatory Study

09/18/2023
by   Eliezio Soares, et al.
0

Continuous Integration (CI) is a software engineering practice that aims to reduce the cost and risk of code integration among teams. Recent empirical studies have confirmed associations between CI and the software quality (SQ). However, no existing study investigates causal relationships between CI and SQ. This paper investigates it by applying the causal Direct Acyclic Graphs (DAGs) technique. We combine two other strategies to support this technique: a literature review and a Mining Software Repository (MSR) study. In the first stage, we review the literature to discover existing associations between CI and SQ, which help us create a "literature-based causal DAG" in the second stage. This DAG encapsulates the literature assumptions regarding CI and its influence on SQ. In the third stage, we analyze 12 activity months for 70 opensource projects by mining software repositories – 35 CI and 35 no-CI projects. This MSR study is not a typical "correlation is not causation" study because it is used to verify the relationships uncovered in the causal DAG produced in the first stages. The fourth stage consists of testing the statistical implications from the "literature-based causal DAG" on our dataset. Finally, in the fifth stage, we build a DAG with observations from the literature and the dataset, the "literature-data DAG". In addition to the direct causal effect of CI on SQ, we find evidence of indirect effects of CI. For example, CI affects teams' communication, which positively impacts SQ. We also highlight the confounding effect of project age.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/09/2021

The Effects of Continuous Integration on Software Development: a Systematic Literature Review

Context: Continuous integration (CI) is a software engineering technique...
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
03/29/2023

Applications of Causality and Causal Inference in Software Engineering

Causal inference is a study of causal relationships between events and t...
research
03/16/2023

Dataflow graphs as complete causal graphs

Component-based development is one of the core principles behind modern ...
research
08/05/2015

Mining for Causal Relationships: A Data-Driven Study of the Islamic State

The Islamic State of Iraq and al-Sham (ISIS) is a dominant insurgent gro...
research
05/14/2020

Simpson's paradox in Covid-19 case fatality rates: a mediation analysis of age-related causal effects

We point out an example of Simpson's paradox in COVID-19 case fatality r...
research
10/08/2021

A Mining Software Repository Extended Cookbook: Lessons learned from a literature review

The main purpose of Mining Software Repositories (MSR) is to discover th...

Please sign up or login with your details

Forgot password? Click here to reset