ChangeGuard: Validating Code Changes via Pairwise Learning-Guided Execution
Not on the map. Why?
Abstract (arXiv)
Code changes are an integral part of the software development process. Many code changes are meant to improve the code without changing its functional behavior, e.g., refactorings and performance improvements. Unfortunately, validating whether a code change preserves the behavior is non-trivial, particularly when the code change is performed deep inside a complex project. This paper presents ChangeGuard, an approach that uses learning-guided execution to compare the runtime behavior of a modified function. The approach is enabled by the novel concept of pairwise learning-guided execution and by a set of techniques that improve the robustness and coverage of the state-of-the-art learning-guided execution technique. Our evaluation applies ChangeGuard to a dataset of 224 manually annotated code changes from popular Python open-source projects and to three datasets of code changes obtained by applying automated code transformations. Our results show that the approach identifies semantics-changing code changes with a precision of 77.1% and a recall of 69.5%, and that it detects unexpected behavioral changes introduced by automatic code refactoring tools. In contrast, the existing regression tests of the analyzed projects miss the vast majority of semantics-changing code changes, with a recall of only 7.6%. We envision our approach being useful for detecting unintended behavioral changes early in the development process and for improving the quality of automated code transformations.
Key facts. Cited by 6 papers in the map (data through 14 Oct 2026). First posted on arXiv 21 Oct 2024.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2025: 2; 2026: 4.
6 papers.
- 2025Disproving Program Equivalence with LLMscited by 5
- 2025Treefix: Enabling Execution with a Tree of Prefixescited by 2
- 2026SemaDiff: Identifying Semantic-Changing Commits with Generated Code and Testscited by 1
- 2026AgentExecutor: Partial Code Execution via Agentic Context Generationcited by 1
- 2026Do Uncertainty Signals Help? A Systematic Study of Uncertainty-Aware Decoding with Rollback Mechanismscited by 0
- 2026Impact Is Not Invalidation: Ask About the Claim, Not the Diffcited by 0
- 2026Impact Is Not Invalidation: Ask About the Claim, Not the Diff20 Sep 2026
- 2026AgentExecutor: Partial Code Execution via Agentic Context Generation6 Aug 2026
- 2026Do Uncertainty Signals Help? A Systematic Study of Uncertainty-Aware Decoding with Rollback Mechanisms31 Jul 2026
- 2026SemaDiff: Identifying Semantic-Changing Commits with Generated Code and Tests14 Jul 2026
- 2025Disproving Program Equivalence with LLMs5 Feb 2025
- 2025Treefix: Enabling Execution with a Tree of Prefixes21 Jan 2025