Usage of Static Analysis Tools in the Integrated Development Environment

Master Thesis (2018)
Author(s)

T.J. van der Lippe (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Contributor(s)

Andy Zaidman – Mentor

Moritz Beller – Mentor

Faculty
Electrical Engineering, Mathematics and Computer Science
Copyright
© 2018 Tim van der Lippe
More Info
expand_more
Publication Year
2018
Language
English
Copyright
© 2018 Tim van der Lippe
Graduation Date
04-07-2018
Awarding Institution
Delft University of Technology
Programme
['Computer Science']
Faculty
Electrical Engineering, Mathematics and Computer Science
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Developers make use of automation to perform repetitive and potentially error- prone tasks. One such automation can be categorised as, which aims to analyse program properties. The particular focus of this investigation are so-called ASATs (Automatic Static Analysis Tools). These ASATs are readily available for many programming languages and can be used to check coding style guidelines, elements of functional correctness and maintainability related issues. Previous studies on static analysis involved qualitative developer interviews and quantitative repository mining studies. This thesis uses automated telemetry to carry out a field study within the Integrated Development Environment (IDE), to obtain fine-grained data on developer behavior with regard to the actual use of ASATs. In addition, we have carried out a survey to validate the observed patterns. The field study is based on the Eclipse and IntelliJ plugin WatchDog, for which we elaborate upon an extensive investigation of static analysis observation techniques in the IDEs. Based on the quantitative data, we conclude the majority of all observed static analysis IDE events originate from few categories of warnings.
Moreover, most of the warnings are resolved within one minute, with warnings related to type resolution being resolved the quickest.
Developers corroborate these findings, but also confirm perceptions of earlier research that warnings contain large numbers of false positives.
Based on both datapoints, we envision a data-driven future of static analysis tooling to optimize for usefulness for the developer rather than absolute correctness of tool implementations.

Files

License info not available