Hier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.

Investigating automatic static analysis results to identify quality problems. An inductive study

: Vetro, A.; Zazworka, N.; Shull, F.; Seaman, C.; Shaw, M.A.


Institute of Electrical and Electronics Engineers -IEEE-:
35th Annual IEEE Software Engineering Workshop, SEW 2012 : Heraclion, Crete, Greece, 12 - 13 October 2012
Piscataway, NJ: IEEE, 2012
ISBN: 978-1-4673-5574-2 (print)
ISBN: 978-0-7695-4947-7 (online)
Software Engineering Workshop (SEW) <35, 2012, Heraclion>
Fraunhofer CESE ()

Background: Automatic static analysis (ASA) tools examine source code to discover "issues", i.e. code patterns that are symptoms of bad programming practices and that can lead to defective behavior. Studies in the literature have shown that these tools find defects earlier than other verification activities, but they produce a substantial number of false positive warnings. For this reason, an alternative approach is to use the set of ASA issues to identify defect prone files and components rather than focusing on the individual issues. Aim: We conducted an exploratory study to investigate whether ASA issues can be used as early indicators of faulty files and components and, for the first time, whether they point to a decay of specific software quality attributes, such as maintainability or functionality. Our aim is to understand the critical parameters and feasibility of such an approach to feed into future research on more specific quality and defect prediction models. Method: We analyzed an industrial C# web application using the Resharper ASA tool and explored if significant correlations exist in such a data set. Results: We found promising results when predicting defectprone files. A set of specific Resharper categories are better indicators of faulty files than common software metrics or the collection of issues of all issue categories, and these categories correlate to different software quality attributes. Conclusions: Our advice for future research is to perform analysis on file rather component level and to evaluate the generalizability of categories. We also recommend using larger datasets as we learned that data sparseness can lead to challenges in the proposed analysis process.