Classifying False Positive Static Checker Alarms in Continuous Integration Using Convolutional Neural Networks
Authors:
- 1 April 2019
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 391-401
Abstract
Static code analysis in Continuous Integration (CI) environment can significantly improve the quality of a software system because it enables early detection of defects without any test executions or user interactions. However, being a conservative over-approximation of system behaviours, static analysis also produces a large number of false positive alarms, identification of which takes up valuable developer time. We present an automated classifier based on Convolutional Neural Networks (CNNs). We hypothesise that many false positive alarms can be classified by identifying specific lexical patterns in the parts of the code that raised the alarm: human engineers adopt a similar tactic. We train a CNN based classifier to learn and detect these lexical patterns, using a total of about 10K historical static analysis alarms generated by six static analysis checkers for over 27 million LOC, and their labels assigned by actual developers. The results of our empirical evaluation suggest that our classifier can be highly effective for identifying false positive alarms, with the average precision across all six checkers of 79.72%.Keywords
This publication has 18 references indexed in Scilit:
- Tricorder: Building a Program Analysis Ecosystem2015
- The Oracle Problem in Software Testing: A SurveyIEEE Transactions on Software Engineering, 2015
- Selective context-sensitivity guided by impact pre-analysisACM SIGPLAN Notices, 2014
- A few billion lines of code laterCommunications of the ACM, 2010
- Thorough static analysis of device driversACM SIGOPS Operating Systems Review, 2006
- Taming False Alarms from a Domain-Unaware C Analyzer by a Bayesian Statistical Post AnalysisLecture Notes in Computer Science, 2005
- Finding bugs is easyACM SIGPLAN Notices, 2004
- Learning methods for generic object recognition with invariance to pose and lighting2004
- Search‐based software test data generation: a surveySoftware Testing, Verification and Reliability, 2004
- Gradient-based learning applied to document recognitionProceedings of the IEEE, 1998