paperbot · PL 论文追踪

全部论文 待读 收藏

P2 A Framework for Checking Regression Test Selection Tools

检查回归测试选择(RTS)工具的框架
ICSE 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)2019匹配度 1/10 · 论文聚焦回归测试选择(RTS)工具的正确性检查与缺陷发现,属于软件测试/调试领域,与用户关注的静态分析、LLM/Agent、浮点程序分析及贝叶斯程序分析等方向没有直接交集。引用 46 inbox
Chenguang Zhu, Owolabi Legunsen, August Shi, Milos Gligoric
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出首个检查回归测试选择(RTS)工具的框架 RTSCheck,在三个 Java RTS 工具中发现 27 个缺陷。

回归测试选择(RTS)通过只重跑可能受代码变更影响的测试来降低回归测试成本,但工具的正确性和效率至关重要,现有检查却依赖手工编写的有限测试。本文提出 RTSCheck,首个检查 RTS 工具的框架:它向工具输入演化程序(程序修订序列),将输出与受现有 RTS 测试套件启发的规则比对,以发现异常或缺陷。RTSCheck 用三类演化程序来源:AutoEP 自动生成程序及测试,DefectsEP 取自缺陷数据库中的有缺陷与修复后修订,EvoEP 取自真实开源项目历史中的修订序列。作者检查了 Java RTS 工具 Clover、Ekstazi 和 STARTS,发现 27 个缺陷。

问题
RTS 工具被广泛采用,但其正确性和效率缺乏系统检查,现有做法仅依赖开发者手工编写的有限测试。
方法
提出 RTSCheck,向 RTS 工具输入演化程序并将输出与受现有 RTS 测试套件启发的规则比对;通过 AutoEP、DefectsEP、EvoEP 三个组件生成或收集演化程序。
评估
在三个 Java RTS 工具 Clover、Ekstazi 和 STARTS 上评估,共发现 27 个缺陷。
原文摘要(Abstract)

Regression test selection (RTS) reduces regression testing costs by re-running only tests that can change behavior due to code changes. Researchers and large software organizations recently developed and adopted several RTS tools to deal with the rapidly growing costs of regression testing. As RTS tools gain adoption, it becomes critical to check that they are correct and efficient. Unfortunately, checking RTS tools currently relies solely on limited tests that RTS tool developers manually write. We present RTSCheck, the first framework for checking RTS tools. RTSCheck feeds evolving programs (i.e., sequences of program revisions) to an RTS tool and checks the output against rules inspired by existing RTS test suites. Violations of these rules are likely due to deviations from expected RTS tool behavior, and indicative of bugs in the tool. RTSCheck uses three components to obtain evolving programs: (1) AutoEP automatically generates evolving programs and corresponding tests, (2) DefectsEP uses buggy and fixed program revisions from bug databases, and (3) EvoEP uses sequences of program revisions from actual open-source projects' histories. We used RTSCheck to check three recently developed RTS tools for Java: Clover, Ekstazi, and STARTS. RTSCheck discovered 27 bugs in these three tools.

链接与引用

DOI 原文 · DBLP

BibTeX
@inproceedings{ZhuLSG19,
  title = {A Framework for Checking Regression Test Selection Tools},
  author = {Chenguang Zhu and Owolabi Legunsen and August Shi and Milos Gligoric},
  booktitle = {ICSE},
  year = {2019},
  doi = {10.1109/icse.2019.00056}
}