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 Nov
13:40 - 15:20: Papers - Configurations and Variability at Hillcrest Chair(s): Shin Hwei TanSouthern University of Science and Technology | ||||||||||||||||||||||||||||||||||||||||||
13:40 - 14:00 Talk | ACTGAN: Automatic Configuration Tuning for Software Systems with Generative Adversarial Networks Liang BaoSchool of Computer Science and Technology, XiDian University, Xin LiuDepartment of Computer Science, University of California, Davis, Fangzheng WangSchool of Computer Science and Technology, XiDian University, Baoyin FangSchool of Computer Science and Technology, XiDian University | |||||||||||||||||||||||||||||||||||||||||
14:00 - 14:20 Talk | Automated N-way Program Merging for Facilitating Family-Based Analyses of Variant-Rich Software Dennis ReulingSoftware Engineering Group, University of Siegen, Udo KelterSoftware Engineering Group, University of Siegen, Johannes BürdekTU Darmstadt, Real-time Systems Lab, Malte LochauTU Darmstadt Link to publication DOI | |||||||||||||||||||||||||||||||||||||||||
14:20 - 14:40 Talk | V2: Fast Detection of Configuration Drift in Python Pre-print | |||||||||||||||||||||||||||||||||||||||||
14:40 - 15:00 Talk | Feature-Interaction Aware Configuration Prioritization for Configurable Code Son NguyenThe University of Texas at Dallas, Hoan Anh NguyenAmazon, Ngoc TranUniversity of Texas at Dallas, Hieu TranThe University of Texas at Dallas, Tien N. NguyenUniversity of Texas at Dallas | |||||||||||||||||||||||||||||||||||||||||
15:00 - 15:20 Talk | Search-based test case implantation for testing untested configurations Dipesh PradhanSimula Research Laboratory, Norway, Shuai WangHong Kong University of Science and Technology, Tao YueNanjing University of Aeronautics and Astronautics & Simula Research Laboratory, Shaukat AliSimula Research Lab, Marius LiaaenCisco Systems Link to publication |