ChangeGuard: Validating Code Changes via Pairwise Learning-Guided Execution
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.
Tue 24 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
10:30 - 12:30 | Verification and ValidationDemonstrations / Ideas, Visions and Reflections / Research Papers / Journal First at Cosmos 3A Chair(s): Alex Orso Georgia Institute of Technology | ||
10:30 10mTalk | TraceMOP: An Explicit-Trace Runtime Verification Tool for Java Demonstrations | ||
10:40 10mTalk | VO-GCSE: Verification Optimization through Global Common Subexpression Elimination Demonstrations Rafael Menezes University of Manchester, Norbert Tihanyi Technology Innovation Institute, Ridhi Jain Technology Innovation Institute (TII), Abu Dhabi, UAE, Alexander Levin Nvidia, Rosiane de Freitas Federal University of Amazonas, Lucas C. Cordeiro University of Manchester, UK and Federal University of Amazonas, Brazil | ||
10:50 10mTalk | GIVUP: Automated Generation and Verification of Textual Process Descriptions Demonstrations Quentin Nivon University Grenoble Alpes, Gwen Salaün University of Grenoble Alpes, Frederic Lang Univ. Grenoble Alpes, Inria, CNRS, Grenoble INP, LIG, Grenoble, France | ||
11:00 10mTalk | NeuroStrata: Harnessing Neuro-Symbolic Paradigms for Improved Testability and Verifiability of Autonomous CPS Ideas, Visions and Reflections Xi Zheng Macquarie University, Ziyang Li University of Pennsylvania, Ivan Ruchkin University of Florida, Ruzica Piskac Yale University, Miroslav Pajic Duke University | ||
11:10 20mTalk | Scene Flow Specifications: Encoding and Monitoring Rich Temporal Safety Properties of Autonomous Systems Research Papers Trey Woodlief University of Virginia, United States, Felipe Toledo , Matthew B Dwyer University of Virginia, Sebastian Elbaum University of Virginia DOI | ||
11:30 20mTalk | QSF: Multi-Objective Optimization based Efficient Solving for Floating-Point Constraints Research Papers Xu Yang College of Computer Science and Technology, National University of Defense Technology, Zhenbang Chen College of Computer, National University of Defense Technology, Wei Dong National University of Defense Technology, Ji Wang National University of Defense Technology DOI | ||
11:50 20mTalk | Consistent Local-First Software: Enforcing Safety and Invariants for Local-First Applications Journal First Mirko Köhler TU Darmstadt, George Zakhour University of St. Gallen, Pascal Weisenburger University of St. Gallen, Guido Salvaneschi University of St. Gallen | ||
12:10 20mTalk | ChangeGuard: Validating Code Changes via Pairwise Learning-Guided Execution Research Papers Lars Gröninger University of Stuttgart, Beatriz Souza Universität Stuttgart, Michael Pradel University of Stuttgart DOI |
Cosmos 3A is the first room in the Cosmos 3 wing.
When facing the main Cosmos Hall, access to the Cosmos 3 wing is on the left, close to the stairs. The area is accessed through a large door with the number “3”, which will stay open during the event.