paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Treating Run-time Execution History as a First-Class Citizen: Co-Versioning Run-time Behavior alongside Code

将运行时执行历史视为一等公民:让运行时行为与代码共同版本化
FSE Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering2026匹配度 2/10 · 该论文关注运行时行为的共版本化与语义差分,属于动态分析、软件演化与 CI/调试工具方向,与用户核心方向(静态分析、PL 与 LLM/Agent 的双向交叉、浮点程序分析、贝叶斯程序分析)几乎没有交集;文中未涉及 LLM/Agent,也无浮点或概率推理内容。引用 0 inbox
Marcus Kessel
crossref: 2026-09-12dblp: 2026-09-12arxiv: 2026-09-12

AI 速览

一句话:提出行为共版本化范式,把测试运行时的行为观察按提交存档并可查询,以支持语义差分与回归定位。

论文指出,开发者习惯用 Git 版本化源码,却极少持久化并查询运行时行为随修订的演化,这一错配使软件演化分析与 CI 存在盲区:丰富的执行信息被丢弃,通常只归结为通过/失败结果,从而忽略部分测试预言、flakiness 以及静默的输出或性能漂移。作者提出「行为共版本化」(Behavioral Co-Versioning)范式,将 Git 历史与「行为档案」(Behavioral Archive)耦合——后者是仅追加、可查询的存储,保存测试运行中采集的选定运行时观察(如方法输入输出与性能信号),并以 commit 和测试上下文为键。基于此可实现语义差分、行为感知的回归定位与回溯审计,与主动式、面向特定信号的监控工具互补。论文给出最小数据模型及基于代码/测试/行为指纹的变化诊断方法,并用笔记本规模原型验证可行性:原型重放一个 Python 项目的历史提交,将运行时观察存入本地 Parquet 存储,并检测出文本 diff 无法显现的行为变化。

问题
源码被版本化管理,但运行时行为随修订的演化很少被持久化和查询,CI 中的执行信息被压缩为通过/失败,导致 flakiness、部分测试预言与静默的输出/性能漂移难以发现。
方法
提出行为共版本化:将 Git 历史与仅追加、可查询的行为档案耦合,按 commit 与测试上下文为键存储方法 I/O、性能信号等运行时观察,并给出基于代码/测试/行为指纹的最小数据模型与变化诊断。
评估
以笔记本规模原型进行可行性验证:重放一个 Python 项目的历史提交,将运行时观察归档到本地 Parquet 存储,并检测出文本 diff 无法显现的行为变化。
原文摘要(Abstract)

Behavioral Co-Versioning remains absent from mainstream practice: while developers routinely version source code with Git, they rarely persist and query how run-time behavior evolves across revisions. This paper argues that this mismatch contributes to a blind spot in software evolution analysis and CI, where rich execution information is discarded and typically reduced to pass/fail outcomes — despite partial test oracles, flakiness, and silent output or performance drift. We propose Behavioral Co-Versioning, a paradigm that couples the Git history with a Behavioral Archive: an append-only, queryable store of selected run-time observations (e.g., method I/O and performance signals) collected during test runs and keyed by commit and test context. This enables semantic diffing, behavior-aware regression localization, and retrospective auditing by querying historical executions, complementing proactive, signal-specific monitoring tools. We first outline a minimal data model and change diagnostics based on code/test/behavior fingerprints, and then demonstrate feasibility with a laptop-scale prototype that replays historical commits of a Python project, archives run-time observations in a local Parquet-backed store, and detects behavioral changes not apparent from textual diffs.

链接与引用

DOI 原文 · arXiv · PDF(开放获取) · DBLP

BibTeX
@inproceedings{abs-2604-16933,
  title = {Treating Run-time Execution History as a First-Class Citizen: Co-Versioning Run-time Behavior alongside Code},
  author = {Marcus Kessel},
  booktitle = {FSE},
  year = {2026},
  doi = {10.1145/3803437.3805589}
}