Oops, my tests broke the build: An analysis of Travis CI builds with GitHub

Delft University of Technology, Delft, The Netherlands
Radboud University Nijmegen, Nijmegen, Netherlands
DOI
10.7287/peerj.preprints.1984v1
Subject Areas
Data Science, Programming Languages, Software Engineering
Keywords
Travis CI, GitHub, TravisTorrent, GHTorrent, Testing, JUnit, Ruby, Java, IDE, Continuous Integration
Copyright
© 2016 Beller et al.
Licence
This is an open access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, reproduction and adaptation in any medium and for any purpose provided that it is properly attributed. For attribution, the original author(s), title, publication source (PeerJ Preprints) and either DOI or URL of the article must be cited.
Cite this article
Beller M, Gousios G, Zaidman A. (2016) Oops, my tests broke the build: An analysis of Travis CI builds with GitHub. PeerJ Preprints 4:e1984v1

Abstract

Continuous Integration (CI) has become a best practice of modern software development. At present, we have a shortfall of insight into the testing practices that are common in CI-based software development. In particular, we seek quantifiable evidence on how central testing really is in CI, how strongly the project language influences testing, whether different integration environments are valuable and if testing on the CI can serve as a surrogate to local testing in the IDE. In an analysis of 2,640,825 Java and Ruby builds on Travis CI, we find that testing is the single most important reason why builds fail. Moreover, the programming language has a strong influence on both the number of executed tests, their test run time and proneness to fail. The use of multiple integration environments leads to 10% more failures being caught at build time. However, testing in the CI does not seem to be a good surrogate for running tests in the IDE. To facilitate further research on Travis CI with GitHub, we introduce TravisTorrent.

Author Comment

This paper is currently under peer review in a Software Engineering venue. This is a pre-print copy.