Loading [MathJax]/extensions/MathMenu.js
Efficient elimination of false positives using static analysis | IEEE Conference Publication | IEEE Xplore

Efficient elimination of false positives using static analysis


Abstract:

Bug detection using static analysis has been found useful in practice for ensuring software quality and reliability. However, it often requires sifting through a large nu...Show More

Abstract:

Bug detection using static analysis has been found useful in practice for ensuring software quality and reliability. However, it often requires sifting through a large number of warnings. This can be handled by generating an assertion corresponding to each warning and verifying the assertion using a model checker to classify the warning as an error or a false positive. Since model checking over larger code fragments is non-scalable and expensive, it is useful to model check a given assertion with a small calling context length. For this, the variables receiving values from outside the context are initialized with arbitrary values generated by non-deterministic choice functions. The calling context length is then gradually increased on a need basis to include callers higher up in the call chains. While this aids scalability by keeping the calling context as small as possible, it requires multiple calls to model checker for the same assertion, requiring a considerable amount of time. We present a static analysis to expedite false positive elimination. It is based on the following observation: When the variables involved in an assertion are allowed to take arbitrary values at the point of assertion, the assertion is most likely to be violated by some or the other combination of values. In such cases, usage of a model checker is redundant as it does not aid in resolution of the corresponding warning. Our data flow analysis identifies (an over-approximated set of) such variables using a novel lattice so that model checking of assertions involving such variables can be avoided. Our empirical evaluation demonstrates that, on an average, the proposed static analysis avoids 49.49% of the total model checking calls, and it reduces the false positives elimination time by 39.28%. However, this gain is achieved at the cost of missing 2.78% false positives which could have been eliminated otherwise.
Date of Conference: 02-05 November 2015
Date Added to IEEE Xplore: 14 January 2016
ISBN Information:
Conference Location: Gaithersbury, MD, USA

Contact IEEE to Subscribe

References

References is not available for this document.