kirancodes.me
To Proof Maintenance & Beyond!

Redefining prioritization: continuous prioritization for continuous integration

Jingjing Liang, Sebastian G. Elbaum, Gregg Rothermel

Abstract

Continuous integration (CI) development environments allow software engineers to frequently integrate and test their code. While CI environments provide advantages, they also utilize non-trivial amounts of time and resources. To address this issue, researchers have adapted techniques for test case prioritization (TCP) to CI environments. To date, however, the techniques considered have operated on test suites, and have not achieved substantial improvements. Moreover, they can be inappropriate to apply when system build costs are high. In this work we explore an alternative: prioritization of commits. We use a lightweight approach based on test suite failure and execution history that is highly efficient; our approach "continuously" prioritizes commits that are waiting for execution in response to the arrival of each new commit and the completion of each previously scheduled commit. We have evaluated our approach on three non-trivial CI data sets. Our results show that our approach can be more effective than prior techniques.

BibTeX
@inproceedings{Liang-al:ICSE18,
  author    = {Jingjing Liang and
               Sebastian G. Elbaum and
               Gregg Rothermel},
  title     = {Redefining prioritization: continuous prioritization for continuous integration},
  booktitle = {ICSE},
  pages     = {688--698},
  publisher = {{ACM}},
  year      = {2018},
}

Related papers