Use and Misuse of Continuous Integration Features: An Empirical Study of Projects That (Mis)Use Travis CI

Authors: Keheliya Gallaba Shane McIntosh

Venue: TSE   IEEE Transactions on Software Engineering, Vol. 46, No. 1, pp. 33-50, 2020

Year: 2020

Abstract: Continuous Integration (CI) is a popular practice where software systems are automatically compiled and tested as changes appear in the version control system of a project. Like other software artifacts, CI specifications require maintenance effort. Although there are several service providers like TRAVIS CI offering various CI features, it is unclear which features are being (mis)used. In this paper, we present a study of feature use and misuse in 9,312 open source systems that use TRAVIS CI. Analysis of the features that are adopted by projects reveals that explicit deployment code is rare-48.16 percent of the studied TRAVIS CI specification code is instead associated with configuring job processing nodes. To analyze feature misuse, we propose HANSEL-an anti-pattern detection tool for TRAVIS CI specifications. We define four anti-patterns and HANSEL detects anti-patterns in the TRAVIS CI specifications of 894 projects in the corpus (9.60 percent), and achieves a recall of 82.76 percent in a sample of 100 projects. Furthermore, we propose GRETEL-an anti-pattern removal tool for TRAVIS CI specifications, which can remove 69.60 percent of the most frequently occurring antipattern automatically. Using GRETEL, we have produced 36 accepted pull requests that remove TRAVIS CI anti-patterns automatically.

BibTeX:

@article{keheliyagallaba2020uamocifaesopt(tc,
    author = "Keheliya Gallaba and Shane McIntosh",
    title = "Use and Misuse of Continuous Integration Features: An Empirical Study of Projects That (Mis)Use Travis
            CI
        ",
    year = "2020",
    pages = "33-50",
    journal = "IEEE Transactions on Software Engineering",
    volume = "46",
    number = "1"
}

Plain Text:

Keheliya Gallaba and Shane McIntosh, "Use and Misuse of Continuous Integration Features: An Empirical Study of Projects That (Mis)Use Travis
            CI
        ," IEEE Transactions on Software Engineering, pp. 33-50