一句话:提出首个插桩驱动的演化感知运行时验证框架 IMOP,通过只重插桩变更代码安全加速 RV,最高 40.2 倍。
运行时验证(RV)通过监控测试是否违反形式规约发现缺陷,但高开销阻碍其在持续集成中的应用。已有 spec-driven 演化感知技术用复杂分析仅重监控受变更影响的规约,假设开销主要来自监控,且常牺牲安全性。本文提出 IMOP,首个插桩驱动的演化感知 RV 框架,利用 RV 开销常由插桩而非监控主导的观察,设计 14 种技术:只对变更代码重新插桩,复用旧版未变更代码的插桩,并在新版重监控全部规约。IMOP 实现为 Maven 插件,在 66 个项目 2,028 个修订、160 条 JDK API 规约上评估,设计上安全,比从头运行 RV 快至多 40.2 倍,比安全/不安全 spec-driven 技术快 17.8/6.7 倍,也快于仅对 RV 用回归测试选择。
Runtime verification (RV) found hundreds of bugs by monitoring passing tests against formal specifications (specs). RV first instruments a program to obtain relevant events, e.g., method calls, to monitor. A hindrance to RV adoption, especially in continuous integration, is its high overhead. So, prior work proposed spec-driven evolution-aware techniques to speed up RV. They use complex analysis to re-monitor a subset of specs related to code impacted by changes. But, these techniques assume that RV overhead is dominated by monitoring time, and their designs often sacrifice safety (ability to find all new violations) for speed. We present IMOP, the first instrumentation-driven evolution-aware RV framework. IMOP leverages a recent observation that RV overhead during testing is often dominated by instrumentation, not monitoring. IMOP embodies a family of 14 techniques that aim to safely speed up RV by simply re-instrumenting only changed code. Instrumentation from the old revision is re-used for unchanged code, and all specs are re-monitored in the new revision. We implement IMOP as a Maven plugin and evaluate it on 2,028 revisions of 66 projects, using 160 specs of correct JDK API usage. IMOP is safe by design. It is up to 40.2x faster than re-running RV from scratch after each change, and 17.8x and 6.7x faster than safe and unsafe spec-driven techniques, respectively. IMOP is faster than just applying regression test selection to RV.
DOI 原文 ·
@inproceedings{paperbot8879,
title = {Instrumentation-Driven Evolution-Aware Runtime Verification},
author = {Kevin Guan and Owolabi Legunsen},
booktitle = {ICSE},
year = {2025},
doi = {10.1109/icse55347.2025.00099}
}