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:005m Talk | 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 CorporationDOI Media Attached | ||
| 11:055m Talk | 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 italianaPre-print Media Attached | ||
| 11:105m Talk | 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, ItalyLink to publication DOI Pre-print Media Attached | ||
| 11:155m Talk | 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, SwitzerlandLink to publication DOI Authorizer link Media Attached | ||
| 11:205m Talk | 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 UniversityLink to publication DOI Pre-print Media Attached | ||
| 11:255m Talk | 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 DallasPre-print Media Attached | ||
| 11:305m Talk | 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, DavisLink to publication DOI Pre-print Media Attached | ||
| 11:355m Talk | Nalin: Learning from Runtime Behavior to Find Name-Value Inconsistencies Technical TrackPre-print Media Attached | ||

