Fade to Grey: Tuning Static Program Analysis

被引:3
|
作者
Fehnker, Ansgar [1 ]
Huuck, Ralf [1 ]
Seefried, Sean [1 ]
Tapp, Michael [1 ]
机构
[1] Univ New South Wales, Natl ICT Australia Ltd NICTA, Locked Bag 6016, Sydney, NSW 1466, Australia
基金
澳大利亚研究理事会;
关键词
Source code analysis; static analysis; C/C++; false positive reduction; case study; Firefox;
D O I
10.1016/j.entcs.2010.08.046
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Static program analysis complements traditional dynamic testing by discovering generic patterns and relations in source code, which indicate software deficiencies such as memory corruption, unexpected program behavior and memory leaks. Since static program analysis builds on approximations of a program's concrete behavior there is often a trade-off between reporting potential bugs that might be the result of an over-approximation and silently suppressing those defects in that grey area. While this trade-off is less important for small files it has severe implications when facing large software packages, i.e., 1, 000, 000 LoC and more. In this work we report on experiences with using our static C/C++ analyzer Goanna on such large software systems, motivate why a flexible property specification language is vital, and present a number of decisions that had to be made to select the right checks as well as a sensible reporting strategy. We illustrate our findings by empirical data obtained from regularly analyzing the Firefox source code.
引用
收藏
页码:17 / 32
页数:16
相关论文
共 50 条
  • [21] High Performance Static Analysis for Industry
    Bradley, Mark
    Cassez, Franck
    Fehnker, Ansgar
    Given-Wilson, Thomas
    Huuck, Ralf
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2012, 289 : 3 - 14
  • [22] Inferring Energy Bounds via Static Program Analysis and Evolutionary Modeling of Basic Blocks
    Liqat, Umer
    Bankovic, Zorana
    Lopez-Garcia, Pedro
    Hermenegildo, Manuel, V
    LOGIC-BASED PROGRAM SYNTHESIS AND TRANSFORMATION (LOPSTR 2017), 2018, 10855 : 54 - 72
  • [23] Static Analysis of Corpus of Source Codes of Python Applications
    D. A. Kapustin
    V. V. Shvyrov
    T. I. Shulika
    Programming and Computer Software, 2023, 49 : 302 - 309
  • [24] STATIC CABLE ANALYSIS
    Gopcevic, Spiro
    Brcic, Stanko
    Zugic, Ljiljana
    GRADEVNSKI MATERIJIALI I KONSTRUKCIJE-BUILDING MATERIALS AND STRUCTURES, 2011, 54 (03): : 19 - 43
  • [25] Static Analysis in Motion
    Chess, Brian
    Britton, Kris
    Eng, Chris
    Pugh, Bill
    Raghavan, Lakshmikanth
    West, Jacob
    IEEE SECURITY & PRIVACY, 2012, 10 (03) : 53 - 56
  • [26] Debugging Static Analysis
    Do, Lisa Nguyen Quang
    Kruger, Stefan
    Hill, Patrick
    Ali, Karim
    Bodden, Eric
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2020, 46 (07) : 697 - 709
  • [27] Static Analysis at GitHub
    Clem T.
    Thomson P.
    Queue, 2021, 19 (04): : 42 - 67
  • [28] Towards Efficient Large-Scale Interprocedural Program Static Analysis on Distributed Data-Parallel Computation
    Gu, Rong
    Zuo, Zhiqiang
    Jiang, Xi
    Yin, Han
    Wang, Zhaokang
    Wang, Linzhang
    Li, Xuandong
    Huang, Yihua
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2021, 32 (04) : 867 - 883
  • [29] Static Analysis of Corpus of Source Codes of Python']Python Applications
    Kapustin, D. A.
    Shvyrov, V. V.
    Shulika, T. I.
    PROGRAMMING AND COMPUTER SOFTWARE, 2023, 49 (04) : 302 - 309
  • [30] Source Code Analysis for Static Prediction of Dynamic Memory Usage
    Kim, Sangwho
    Ryou, Jaecheol
    2019 INTERNATIONAL CONFERENCE ON PLATFORM TECHNOLOGY AND SERVICE (PLATCON), 2019, : 46 - 49