Write a Blog >>
ICSE 2023
Sun 14 - Sat 20 May 2023 Melbourne, Australia
Fri 19 May 2023 11:15 - 11:30 at Meeting Room 106 - Static analysis Chair(s): Marsha Chechik

Automatic static analysis tools (ASATs) detect source code violations to static analysis rules and are usually used as a guard for source code quality. The adoption of ASATs, however, is often challenged because of several problems such as a large number of false alarms, invalid rule priorities, and inappropriate rule configurations. Research has shown that tracking the history of the violations is a promising way to solve the above problems because the facts of violation fixing may reflect the developers’ subjective expectations on the violation detection results. Precisely identifying the revisions that induce or fix a violation is however challenging because of the imprecise matching of violations between code revisions and ignorance of merge commits in the maintenance history.

In this paper, we propose ViolationTracker, an approach to precisely matching the violation instances between adjacent revisions and building the lifecycle of violations with the identification of inducing, fixing, deleting, and reopening of each violation case. The approach employs code entity anchoring heuristics for violation matching and considers merge commits that used to be ignored in existing research. We evaluate ViolationTracker with a manually-validated dataset that consists of 500 violation instances and 158 threads of 30 violation cases with detailed evolution history from open-source projects. ViolationTracker achieves over 93% precision and 98% recall on violation matching, outperforming the state-of-the-art approach, and 99.4% precision on rebuilding the histories of violation cases. We also show that ViolationTracker is useful to identify actionable violations. A preliminary empirical study reveals the possibility to prioritize static analysis rules according to further analysis on the actionable rates of the rules.

Fri 19 May

Displayed time zone: Hobart change

11:00 - 12:30
11:00
15m
Talk
DLInfer: Deep Learning with Static Slicing for Python Type Inference
Technical Track
Yanyan Yan Nanjing University, Yang Feng Nanjing University, Hongcheng Fan Nanjing University, Baowen Xu Nanjing University
11:15
15m
Talk
ViolationTracker: Building Precise Histories for Static Analysis Violations
Technical Track
Ping Yu Fudan University, China, Yijian Wu Fudan University, Xin Peng Fudan University, Jiahan Peng Fudan University, Jian Zhang Fudan University, Peicheng Xie Fudan University, Wenyun Zhao Fudan University, China
Pre-print
11:30
15m
Talk
On the use of static analysis to engage students with software quality improvement: An experience with PMD
SEET - Software Engineering Education and Training
Eman Abdullah AlOmar Stevens Institute of Technology, Salma Abdullah AlOmar NA, Mohamed Wiem Mkaouer Rochester Institute of Technology
Pre-print
11:45
15m
Talk
Long-term Static Analysis Rule Quality Monitoring Using True Negatives
SEIP - Software Engineering in Practice
Linghui Luo Amazon Web Services, Rajdeep Mukherjee Amazon Web Services, Omer Tripp Amazon, Martin Schäf Amazon Web Services, Qiang Zhou Amazon Web Services, Daniel J Sanchez Amazon Alexa
12:00
15m
Talk
A Language-agnostic Framework for Mining Static Analysis Rules from Code Changes
SEIP - Software Engineering in Practice
David Baker Effendi Stellenbosch University, Berk Cirisci IRIF, University Paris Diderot and CNRS, France, Rajdeep Mukherjee Amazon Web Services, Hoan Anh Nguyen Amazon, Omer Tripp Amazon
12:15
7m
Talk
GradeStyle: GitHub-Integrated and Automated Assessment of Java Code Style
SEET - Software Engineering Education and Training
Callum Iddon University of Auckland, Nasser Giacaman The University of Auckland, Valerio Terragni University of Auckland
12:22
7m
Talk
The Challenges of Shift Left Static Analysis
SEIP - Software Engineering in Practice
Quoc-Sang Phan Facebook, Inc., KimHao Nguyen University of Nebraska-Lincoln, ThanhVu Nguyen George Mason University