Code snippets are prevalent, but are hard to reuse because they often lack an accompanying environment configuration. Most are not actively maintained, allowing for drift between the most recent possible configuration and the code snippet as the snippet becomes out-of-date over time. Recent work has identified the problem of validating and detecting out-of-date code snippets as the most important consideration for code reuse. However, determining if a snippet is correct, but simply out-of-date, is a non-trivial task. In the best case, breaking changes are well documented, allowing developers to manually determine when a code snippet contains an out-of-date API usage. In the worst case, determining if and when a breaking change was made requires an exhaustive search through previous dependency versions.
We present V2, a strategy for determining if a code snippet is out-of-date by detecting discrete instances of configuration drift, where the snippet uses an API which has since undergone a breaking change. Each instance of configuration drift is classified by a failure encountered during validation and a configuration patch, consisting of dependency version changes, which fixes the underlying fault. V2 uses feedback-directed search to explore the possible configuration space for a code snippet, reducing the number of potential environment configurations that need to be validated. When run on a corpus of public Python snippets from prior research, V2 identifies 248 instances of configuration drift.
Wed 13 NovDisplayed time zone: Tijuana, Baja California change
13:40 - 15:20 | Configurations and VariabilityJournal First Presentations / Research Papers at Hillcrest Chair(s): Shin Hwei Tan | ||
13:40 20mTalk | ACTGAN: Automatic Configuration Tuning for Software Systems with Generative Adversarial Networks Research Papers Liang Bao School of Computer Science and Technology, XiDian University, Xin Liu Department of Computer Science, University of California, Davis, Fangzheng Wang School of Computer Science and Technology, XiDian University, Baoyin Fang School of Computer Science and Technology, XiDian University | ||
14:00 20mTalk | Automated N-way Program Merging for Facilitating Family-Based Analyses of Variant-Rich Software Journal First Presentations Dennis Reuling Software Engineering Group, University of Siegen, Udo Kelter Software Engineering Group, University of Siegen, Johannes Bürdek TU Darmstadt, Real-time Systems Lab, Malte Lochau TU Darmstadt Link to publication DOI | ||
14:20 20mTalk | V2: Fast Detection of Configuration Drift in Python Research Papers Pre-print | ||
14:40 20mTalk | Feature-Interaction Aware Configuration Prioritization for Configurable Code Research Papers Son Nguyen The University of Texas at Dallas, Hoan Anh Nguyen Amazon, Ngoc Tran University of Texas at Dallas, Hieu Tran The University of Texas at Dallas, Tien N. Nguyen University of Texas at Dallas | ||
15:00 20mTalk | Search-based test case implantation for testing untested configurations Journal First Presentations Dipesh Pradhan Simula Research Laboratory, Norway, Shuai Wang Hong Kong University of Science and Technology, Tao Yue Nanjing University of Aeronautics and Astronautics & Simula Research Laboratory, Shaukat Ali Simula Research Lab, Marius Liaaen Cisco Systems Link to publication |