Tue 5 Dec 2023 14:15 - 14:30 at Golden Gate C2 - Software Evolution I Chair(s): Rangeet Pan

Code review is a crucial step in ensuring the quality and maintainability of software systems. However, this process can be time-consuming and resource-intensive, especially in large-scale projects where a significant number of code changes are submitted every day. Fortunately, not all code changes require human reviews, as some may only contain syntactic modifications that do not alter the behavior of the system, such as format changes, variable / function renamings, and constant extractions.

In this paper, we propose a multi-language automated code approver — Last Diff Analyzer for Go and Java, which is able to detect if a reviewable incremental unit of code change (diff) contains only changes that do not modify system behavior. It is built on top of a novel multi-language static analysis framework that unifies common features of multiple languages while keeping unique language constructs separate. This makes it easy to extend to other languages such as TypeScript, Kotlin, Swift, and others. Besides skipping unnecessary code reviews, Last Diff Analyzer could be further applied to skip certain resource-intensive end-to-end (E2E) tests for auto-approved diffs for significant reduction of resource usage. We have deployed the analyzer at scale within Uber, and data collected in production shows that approximately 15% of analyzed diffs are auto-approved weekly for code reviews. Furthermore, 13.5% reduction in server node usage dedicated to E2E tests (measured by number of executed E2E tests) is observed as a result of skipping E2E tests, compared to the node usage if Last Diff Analyzer were not enabled.

Tue 5 Dec

Displayed time zone: Pacific Time (US & Canada) change

14:00 - 15:30
Software Evolution IIndustry Papers / Research Papers / Demonstrations at Golden Gate C2
Chair(s): Rangeet Pan IBM Research
14:00
15m
Talk
Understanding Solidity Event Logging Practices in the Wild
Research Papers
Lantian Li Shandong University, Yejian Liang Shandong University, Zhihao Liu Shandong University, Zhongxing Yu Shandong University
Media Attached
14:15
15m
Talk
Last Diff Analyzer: Multi-language Automated Approver for Behavior-Preserving Code Revisions
Industry Papers
Yuxin Wang Uber Technologies, Adam Welc Mysten Labs, Lazaro Clapp Uber Technologies Inc, Lingchao Chen Uber Technologies
DOI Media Attached
14:30
15m
Talk
EvaCRC: Evaluating Code Review Comments
Research Papers
Lanxin Yang Nanjing University, Jinwei Xu Nanjing University, YiFan Zhang Nanjing University, He Zhang Nanjing University, Alberto Bacchelli University of Zurich
Media Attached
14:45
15m
Talk
HyperDiff: Computing Source Code Diffs at Scale
Research Papers
Quentin Le-dilavrec Univ. Rennes, IRISA, INRIA, Djamel Eddine Khelladi CNRS, IRISA, University of Rennes, Arnaud Blouin Univ Rennes, INSA Rennes, Inria, CNRS, IRISA, Jean-Marc Jézéquel Univ Rennes - IRISA
Media Attached
15:00
7m
Talk
npm-follower: A Complete Dataset Tracking the NPM Ecosystem
Demonstrations
Donald Pinckney Northeastern University, Federico Cassano Northeastern University, Arjun Guha Northeastern University and Roblox, Jonathan Bell Northeastern University
Media Attached
15:08
7m
Talk
Issue Report Validation in an Industrial Context
Industry Papers
Ethem Utku Aktas Softtech Inc., Ebru Cakmak Microsoft EMEA, Mete Cihad Inan Softtech Research and Development, Cemal Yilmaz Sabancı University
DOI Media Attached
15:15
15m
Talk
Dead Code Removal at Meta: Automatically Deleting Millions of Lines of Code and Petabytes of Deprecated Data
Industry Papers
DOI