Enhancing Compositional Static Analysis with Dynamic Analysis
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.
Authors
- Ke Mao (ORCID: https://orcid.org/0000-0003-3956-9184)
- Ákos Hajdu (ORCID: https://orcid.org/0000-0001-8001-8865)
- Timotej Kapus (ORCID: https://orcid.org/0009-0002-8261-9650)
- Radu Grigore (ORCID: https://orcid.org/0000-0003-1128-0311)
- Matteo Marescotti (ORCID: https://orcid.org/0000-0003-4478-9931)
- Cons T. Åhs (ORCID: https://orcid.org/0009-0003-6729-5931)
- Gabriela Sampaio (ORCID: https://orcid.org/0000-0003-3701-277X)
- Dino Distefano (ORCID: https://orcid.org/0009-0007-5644-5411)
- Suzanne Thibault (ORCID: https://orcid.org/0009-0003-2517-0057)
- Sopot Cela (ORCID: https://orcid.org/0009-0002-1396-1049)
Institutions
- Queen Mary University of London (GB)
- Meta (United Kingdom) (GB)
Publication Details
- Published
- 2024-10-18
- DOI
- https://doi.org/10.1145/3691620.3695599
- Citations
- 1
- Primary Topic
- Software Testing and Debugging Techniques
- Type
- article
- Field-Weighted Citation Impact
- 0.49