There is a newer version of the record available.

Published September 1, 2022 | Version v2

Resource Waste: An Empirical Study of Repeated Builds During Code Review

Authors/Creators

  • 1. Anonymous

Description

# Resource Waste: An Empirical Study of Repeated Builds During Code Review

##  Abstract
Code review is a popular practice where developers critique each others' changes. 
Since automated builds can identify low-level issues (e.g., syntactic errors, regression bugs), it is not uncommon for software organizations to incorporate automated builds in the code review process.
In such code review deployment scenarios, submitted change sets must be approved for integration by both peer code reviewers and automated build bots.
Since automated builds may produce an unreliable signal of the status of a change set (e.g., due to "flaky" or non-deterministic execution behaviour), code review tools, such as Gerrit, allow developers to request a "recheck", which repeats the build process without updating the change set.
We conjecture that an unconstrained recheck command will waste time and resources if it is not applied judiciously.
To explore how the recheck command is applied in a practical setting, in this paper, we conduct an empirical study of 66,932 code reviews from the OpenStack community.

We quantitatively analyze (i) how often build failures are rechecked; (ii) the extent to which invoking recheck changes build failure outcomes; and (iii) how much waste is generated by invoking recheck.
We observe that (i) 55% of code reviews invoke the recheck command after a failing build is reported; (ii) invoking the recheck command only changes the outcome of a failing build in 42% of the cases; and (iii) invoking the recheck command increases review waiting time by an average of 2,200% and equates to 187.4 compute years of waste---enough compute resources to compete with the oldest land living animal on earth.

Our observations indicate that the recheck command is frequently used after the builds fail, but does not achieve a high likelihood of build success.
While recheck currently generates plenty of wasted computational resources and bloats waiting times, it also presents exciting future opportunities for researchers and tool builders to propose solutions that can reduce waste.

This dataset contains 898,706 review comments (change log) from openstack community (Nova, Cinder, Ironic, and Neutron) from 2012 to 2022.

This is a replication package for study "Resource Waste: An Empirical Study of Repeated Builds During Code Review".

## Project Directory Structure

- "script": Directory with all the scripts include Data preparation, RQ1, RQ2, and RQ3
-- "Data Preparation.ipynb"
-- "RQ1.ipynb": Recheck Prevalence
-- "RQ2.ipynb": Changing CI Build Outcomes
-- "RQ3.ipynb": Waste generated by rechecks
- "Dataset": Directory with the raw data used for analysis and for plotting the graphs, and qualitative study in RQ2.
-- raw_dataset.csv: raw data contains change id, revision number, author name, is bot or not, change log, created date
-- RQ2_qualitative_analysis.csv: Qualitative study for test jobs contains test job, frequency, and annotation from authors

Files

CI_waste.zip

Files (245.0 MB)

Name Size Download all
md5:71cc75565b33c0d3deb967c407a3a31c
245.0 MB Preview Download