Pith. sign in

REVIEW 2 cited by

ChangeGuard: Validating Code Changes via Pairwise Learning-Guided Execution

Not yet reviewed by Pith; the record is open.

This paper has not been read by Pith yet. Machine review is queued; the pith claim, tier, and objections will appear here once it completes.

SPECIMEN: schema-true, not a live event

T0 review · schema-true

One-sentence machine reading of the paper's core claim.

pith:XXXXXXXX · record.json · timestamp

arxiv 2410.16092 v2 pith:VHYCVV6N submitted 2024-10-21 cs.SE

classification cs.SE
keywords codechangesapproachexecutionlearning-guidedbehaviorchangeguardautomated
verification ladder T0 review T1 audit T2 compute T3 formal
0 comments
read the original abstract

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.

Discussion (0). Continue with ORCID to comment.

Forward citations

Cited by 2 Pith papers

Reviewed papers in the Pith corpus that reference this work. Sorted by Pith novelty score. Full citation record

  1. Disproving Program Equivalence with LLMs

    cs.SE 2025-02 conditional novelty 7.0 of 10

    LLM-generated probes with execution feedback find counterexamples that unit tests miss, and semantic clustering based on these probes improves code-generation evaluation.

  2. Treefix: Enabling Execution with a Tree of Prefixes

    cs.SE 2025-01 accept novelty 6.0 of 10

    By iteratively generating and refining code prefixes with an LLM, Treefix reaches 84% and 82% line coverage on two Python snippet datasets, exceeding prior learning-guided execution tools by 25 and 7 percentage points.

Pith tools