Concise Explanations in Static Analysis Driven Code Reviews – Invited Talk
The strength of automated code reviews, backed by static analyzers, is in finding cumbersome bugs that could be missed by human reviewers due to developer fatigue. However, static analyzers are limited in a key dimension. They either provide no explanation to the origin of static analysis alarms or their explanations are too verbose for developers to use effectively. While industrial-strength tools such as Infer provide trace information for each issue; our experience has been that these traces are often too imprecise and verbose for developers to effectively triage and action. Furthermore, even in the case of a true bug, if the developer is not provided with an understandable explanation, they are may very likely to dismiss it as noise, thus zeroing any precision effort on the part of the static analyzer.
In this talk, I present Rinser, a tool developed at Prime Video that aims to improve the evidence developers receive from static analyzers. Specifically, Rinser provides an on-demand method to check the realizability of potential bugs reported by the static analyzer Infer. We have developed an initial version of Rinser as a post-analysis automated-reasoning pass based on refutation reasoning. On industrial code bases, our tool is able to surface possible bugs to developers with evidence traces on average 4x steps shorter than standard Infer traces. Foremost, our tool has eased the adoption of static analyzers at Amazon and driven additional dialogue between engineers on the quality of the code. As a bonus, it has also provided a means to soundly remove many trivial false-positive warnings, thereby also reducing the subsequent triaging effort.
This is joint work with Toan Ngyuen and Evan Chang.
Tue 16 JunDisplayed time zone: Pacific Time (US & Canada) change
07:00 - 09:00 | Session 2Infer Practitioners at Infer Practitioners live stream Chair(s): Nikos Gorogiannis Facebook and Middlesex University London | ||
07:00 45mTalk | Plugins for Detecting Deadlocks and Atomicity Violation and Performance Analysis Infer Practitioners A: Tomas Fiedor VUT Brno, A: Dominik Harmim Brno University of Technology, Faculty of Information Technology, A: Vladimir Marcin Brno University of Technology, Faculty of Information Technology, A: Ondřej Pavela Brno University of Technology, Faculty of Information Technology, A: Adam Rogalewicz Brno University of Technology, Faculty of Information Technology, A: Tomáš Vojnar Brno University of Technology | ||
07:45 45mTalk | Concise Explanations in Static Analysis Driven Code Reviews – Invited Talk Infer Practitioners | ||
08:30 30mCoffee break | Break Infer Practitioners |