Enhancing Compositional Static Analysis with Dynamic Analysis
Abstract
In this paper we introduce a novel method for improving static analysis of real code by using dynamic analysis. We have implemented our technique to enhance the Infer static analyzer [6] for Erlang by supplementing its analysis with data obtained by FAUSTA [24] dynamic analysis. We present the technical details of the algorithm combining static and dynamic analysis and a case study on its evaluation on WhatsApp's Erlang code to detect software defects. Results show an increase in detected bugs in 76% of the runs when data from dynamic analysis is used. In particular, on average, data provided by dynamic analysis for 1 function enables static analysis of 2.1 additional functions. Moreover, dynamic data enabled analysis of a property not verifiable using static analysis alone.
BibTeX
@inproceedings{Distefano-al:ASE24,
author = {Dino Distefano and
Matteo Marescotti and
Cons T. {\r{A}}hs and
Sopot Cela and
Gabriela Cunha Sampaio and
Radu Grigore and
{\'{A}}kos Hajdu and
Timotej Kapus and
Ke Mao and
Thibault Suzanne},
title = {Enhancing Compositional Static Analysis with Dynamic Analysis},
booktitle = {ASE},
pages = {2121--2129},
publisher = {{ACM}},
year = {2024},
}