Static bug detection tools help developers detect code problems. However, it is known that they remain underutilized due to various reasons. Recent advances to incorporate static bug detectors in modern software development workflows can better motivate developers to fix the reported warnings on the fly. In this paper, we study the effectiveness of the state-of-the-art (SOA) solution in tracking warnings by static bug detectors and propose a better solution based on our analysis of the insufficiencies of the SOA solution. In particular, we examined four large-scale open-source systems and crafted a data set of 3,452 static code warnings by two static bug detectors. We manually uncover the ground-truth evolution status of the selected warnings: persistent, resolved, or newly-introduced. Moreover, upon manual analysis, we identified the critical reasons behind the insufficiencies of the SOA matching algorithm. Finally, we propose a better approach to improve the tracking of static warnings over software development history. Our evaluation shows that our proposed approach provides a significant improvement in the precision of the tracking, i.e., from 66.9% to 90.0%.
翻译:然而,众所周知,由于各种原因,将静态错误探测器纳入现代软件开发工作流程的最近进展可以更好地激励开发者修正所报道的飞行警报。在本文中,我们研究了最新技术(SOA)解决方案在通过静态错误探测器跟踪警报方面的有效性,并根据我们对SOA解决方案不足的分析,提出了更好的解决方案。特别是,我们研究了四个大型开放源码系统,并用两个静态错误探测器制作了一套3 452个静态代码警告数据。我们手工发现了所选警报的地面真实性:持久性、分辨率或新引入状态。此外,在人工分析后,我们发现了SOA匹配算法不足背后的关键原因。最后,我们提出了更好的方法来改进对软件开发史上静态警告的跟踪。我们的评估表明,我们拟议的方法大大改进了跟踪的精确性,即从66.9%到90.0%。