一句话:提出 RegMiner 工具,自动从 Git 仓库挖掘可复现的回归缺陷,并构建大规模回归数据集。
论文针对回归缺陷数据集难以大规模、可复现地收集的问题,提出自动化工具 RegMiner。它在 Git 提交历史中搜索满足“测试在修复提交通过、在引入提交失败、在更早工作提交再次通过”条件的回归。技术上,RegMiner 识别候选修复提交,将测试及其代码依赖迁移到历史提交上,并尽量减少回归搜索中的编译开销。实验在 8 周内从 147 个项目成功收集 1035 个回归,构建了据称最大且可复现的回归数据集;结果还表明该数据集具有高精确率、可接受的召回率,以及较高的真实性与多样性。
In this work, we introduce a tool, RegMiner, to automate the process of collecting replicable regression bugs from a set of Git repositories. In the code commit history, RegMiner searches for regressions where a test can pass a regression-fixing commit, fail a regressioninducing commit, and pass a previous working commit again. Technically, RegMiner (1) identifies potential regression-fixing commits from the code evolution history, (2) migrates the test and its code dependencies in the commit over the history, and (3) minimizes the compilation overhead during the regression search. Our experients show that RegMiner can successfully collect 1035 regressions over 147 projects in 8 weeks, creating the largest replicable regression dataset within the shortest period, to the best of our knowledge. In addition, our experiments further show that (1) RegMiner can construct the regression dataset with very high precision and acceptable recall, and (2) the constructed regression dataset is of high authenticity and diversity. The source code of RegMiner is available at https://github.com/SongXueZhi/RegMiner, the mined regression dataset is available at https://regminer.github.io/, and the demonstration video is available at https://youtu.be/yzcM9Y4unok.
@inproceedings{paperbot7097,
title = {RegMiner: mining replicable regression dataset from code repositories},
author = {Xuezhi Song and Yun Lin and Yijian Wu and Yifan Zhang and Siang Hwee Ng and Xin Peng and Jin Song Dong and Hong Mei},
booktitle = {FSE},
year = {2022},
doi = {10.1145/3540250.3558929}
}