Litcius/Paper detail

Boosting static analysis accuracy with instrumented test executions

Tianyi Chen, Kihong Heo, Mukund Raghothaman

202116 citationsDOIOpen Access PDF

Abstract

The two broad approaches to discover properties of programs---static and dynamic analyses---have complementary strengths: static techniques perform exhaustive exploration and prove upper bounds on program behaviors, while the dynamic analysis of test cases provides concrete evidence of these behaviors and promise low false alarm rates. In this paper, we present DynaBoost, a system which uses information obtained from test executions to prioritize the alarms of a static analyzer. We instrument the program to dynamically look for dataflow behaviors predicted by the static analyzer, and use these results to bootstrap a probabilistic alarm ranking system, where the user repeatedly inspects the alarm judged most likely to be a real bug, and where the system re-ranks the remaining alarms in response to user feedback. The combined system is able to exploit information that cannot be easily provided by users, and provides significant improvements in the human alarm inspection burden: by 35% compared to the baseline ranking system, and by 89% compared to an unaided programmer triaging alarm reports.

Topics & Concepts

Computer scienceStatic analysisProgrammerALARMExploitProbabilistic logicFalse alarmConstant false alarm rateBoosting (machine learning)Ranking (information retrieval)Code coverageDynamic testingBaseline (sea)Data miningReal-time computingMachine learningArtificial intelligenceComputer securityEmbedded systemOperating systemProgramming languageSoftwareEngineeringGeologyOceanographyAerospace engineeringSoftware Testing and Debugging TechniquesSoftware System Performance and ReliabilitySoftware Engineering Research