一句话:将 CI 中的优先级排序对象从测试套件改为提交,提出基于失败与执行历史的轻量持续排序方法。
持续集成(CI)环境让开发者可以频繁集成并测试代码,但也会消耗大量时间与资源。已有的应对手段是把测试用例优先级排序(TCP)技术移植到 CI 中,然而这些技术作用于测试套件层面,改进幅度有限,并且在系统构建成本较高时并不适用。本文提出一条替代路径:对提交(commit)进行优先级排序。作者设计了一种基于测试套件失败历史与执行历史的轻量方法,效率很高;该方法在每个新提交到达以及每个先前调度的提交完成时,对等待执行的提交进行“持续”重排序。作者在三个非平凡的 CI 数据集上进行了评估,结果表明该方法在效果上可以优于已有技术。
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.
DOI 原文 ·
@inproceedings{paperbot4486,
title = {Redefining prioritization},
author = {Jingjing Liang and Sebastian Elbaum and Gregg Rothermel},
booktitle = {ICSE},
year = {2018},
doi = {10.1145/3180155.3180213}
}