Nalin: Learning from Runtime Behavior to Find Name-Value Inconsistencies
Tue 10 May 2022 13:25 - 13:30 at ICSE room 5-odd hours - Validation and Verification 7 Chair(s): Guido Salvaneschi
Wed 25 May 2022 11:35 - 11:40 at Room 304+305 - Papers 7: Evolution and Maintenance Chair(s): Thomas LaToza
Wed 25 May 2022 13:30 - 15:00 at Ballroom Gallery - Posters 1
Variable names are important to understand and maintain code. If a variable name and the value stored in the variable do not match, then the program suffers from a name-value inconsistency, which is due to one of two situations that developers may want to fix: Either a correct value is referred to through a misleading name, which negatively affects code understandability and maintainability, or the correct name is bound to a wrong value, which may cause unexpected runtime behavior. Finding name-value inconsistencies is hard because it requires an understanding of the meaning of names and knowledge about the values assigned to a variable at runtime. This paper presents Nalin, a technique to automatically detect name-value inconsistencies. The approach combines a dynamic analysis that tracks assignments of values to names with a neural machine learning model that predicts whether a name and a value fit together. To the best of our knowledge, this is the first work to formulate the problem of finding coding issues as a classification problem over names and runtime values. We apply Nalin to 106,652 real-world Python programs, where meaningful names are particularly important due to the absence of statically declared types. Our results show that the classifier detects name-value inconsistencies with high accuracy, that the warnings reported by Nalin have a precision of 80% and a recall of 76% w.r.t. a ground truth created in a user study, and that our approach complements existing techniques for finding coding issues.
Tue 10 MayDisplayed time zone: Eastern Time (US & Canada) change
Wed 25 MayDisplayed time zone: Eastern Time (US & Canada) change
11:00 - 12:30 | Papers 7: Evolution and MaintenanceJournal-First Papers / Technical Track / SEIP - Software Engineering in Practice at Room 304+305 Chair(s): Thomas LaToza George Mason University | ||
11:00 5mTalk | A Software Impact Analysis Tool based on Change History Learning and its Evaluation SEIP - Software Engineering in Practice Haruya Iwasaki Shibaura Institute of Technologies, Tsuyoshi Nakajima Shibaura Institute of Technology, Ryota Tsukamoto Mitsubishi Electric Corporation, Kazuko Takahashi Mitsubishi Electric Corporation, Shuichi Tokumoto Mitsubishi Electric Corporation DOI Media Attached | ||
11:05 5mTalk | Using Pre-Trained Models to Boost Code Review Automation Technical Track Rosalia Tufano Università della Svizzera Italiana, Simone Masiero Software Institute @ Università della Svizzera Italiana, Antonio Mastropaolo Università della Svizzera italiana, Luca Pascarella Università della Svizzera italiana (USI), Denys Poshyvanyk William and Mary, Gabriele Bavota Software Institute, USI Università della Svizzera italiana Pre-print Media Attached | ||
11:10 5mTalk | Self-Admitted Technical Debt Practices: A Comparison Between Industry and Open-Source Journal-First Papers Fiorella Zampetti University of Sannio, Italy, Gianmarco Fucci University of Sannio, Alexander Serebrenik Eindhoven University of Technology, Massimiliano Di Penta University of Sannio, Italy Link to publication DOI Pre-print Media Attached | ||
11:15 5mTalk | Journal First Submission of the Article: What do class comments tell us? An investigation of comment evolution and practices in Pharo Smalltalk Journal-First Papers Pooja Rani University of bern, Sebastiano Panichella Zurich University of Applied Sciences, Manuel Leuenberger Software Composition Group, University of Bern, Switzerland, Mohammad Ghafari School of Computer Science, University of Auckland, Oscar Nierstrasz University of Bern, Switzerland Link to publication DOI Authorizer link Media Attached | ||
11:20 5mTalk | An Ensemble Approach for Annotating Source Code Identifiers with Part-of-speech Tags Journal-First Papers Christian D. Newman Rochester Institute of Technology, Michael J. Decker Bowling Green State University, Reem S. Alsuhaibani Kent State University, Anthony Peruma Rochester Institute of Technology, Mohamed Wiem Mkaouer Rochester Institute of Technology, Satyajit Mohapatra Rochester Institute of Technology, Tejal Vishnoi Rochester Institute of Technology, Marcos Zampieri Rochester Institute of Technology, Timothy Sheldon BNY Mellon, Emily Hill Drew University Link to publication DOI Pre-print Media Attached | ||
11:25 5mTalk | Retrieving Data Constraint Implementations Using Fine-Grained Code Patterns Technical Track Juan Manuel Florez The University of Texas at Dallas, Jonathan Perry The University of Texas at Dallas, Shiyi Wei University of Texas at Dallas, Andrian Marcus University of Texas at Dallas Pre-print Media Attached | ||
11:30 5mTalk | Learning to Find Usages of Library Functions in Optimized Binaries Journal-First Papers Toufique Ahmed University of California at Davis, Prem Devanbu Department of Computer Science, University of California, Davis, Anand Ashok Sawant University of California, Davis Link to publication DOI Pre-print Media Attached | ||
11:35 5mTalk | Nalin: Learning from Runtime Behavior to Find Name-Value Inconsistencies Technical Track Pre-print Media Attached |