Towards Better Static Code Analysis Reports: Sentence Transformer-based Filtering of Non-Actionable Alerts
2026-04-20 • Software Engineering
Software Engineering
AI summaryⓘ
The authors address the problem of 'alert fatigue,' where developers get overwhelmed by too many irrelevant warnings from static code analysis tools. They propose STAF, a method that uses transformer-based sentence embeddings to sort warnings into important (actionable) and unimportant (non-actionable) ones. Testing STAF on Java code showed it reduces unnecessary alerts while keeping accuracy high, improving the helpfulness of these tools. Their method outperforms previous techniques both within the same project and across different projects.
Static code analysisAlert fatigueTransformer modelsSentence embeddingsActionability filteringSoftware bugsSoftware vulnerabilitiesF1 scoreWithin-project evaluationCross-project evaluation
Authors
Tamás Aladics, Norbert Vándor, Rudolf Ferenc, Péter Hegedűs
Abstract
Static code analysis (SCA) tools are widely used as effective ways to detect bugs and vulnerabilities in software systems. However, the reports generated by these tools often contain a large number of non-actionable findings, which can overwhelm developers to the point of ignoring them altogether -- this phenomenon is known as "alert fatigue". In this paper, we combat alert fatigue by proposing STAF: Sentence Transformer-based Actionability Filtering. Our approach leverages a transformer based architecture with sentence embeddings to classify findings into actionable and non-actionable categories. Evaluating STAF on a large dataset of reports from Java projects, we demonstrate that our method can effectively reduce the number of non-actionable findings while maintaining a high level of accuracy in identifying actionable issues. The results show that our approach can improve the usability of static analysis tools reaching an F1 score of 89%, outperforming existing methods for SCA warning filtering by at least 11% in a within-project setting and by at least 6% in a cross-project setting. By providing a more focused and relevant set of findings, we aim to enhance the overall effectiveness of static analysis in software development.