Academic research in static analysis produces software implementations. These implementations are time-consuming to develop and some need to be maintained in order to enable building further research upon the implementation. While necessary, these processes can be quickly challenging. This article documents the tools and techniques we have come up with to simplify the maintenance of Mopsa since 2017. Mopsa is a static analysis platform that aims at being sound. First, we describe an automated way to measure precision that does not require any baseline of true bugs obtained by manually inspecting the results. Further, it improves transparency of the analysis, and helps discovering regressions during continuous integration. Second, we have taken inspiration from standard tools observing the concrete execution of a program to design custom tools observing the abstract execution of the analyzed program itself, such as abstract debuggers and profilers. Finally, we report on some cases of automated testcase reduction.
翻译:静态分析领域的学术研究会产生软件实现。这些实现开发耗时,且部分需要持续维护以支持基于该实现的后续研究。尽管必要,这些过程可能迅速变得具有挑战性。本文记录了自2017年以来我们为简化Mopsa维护工作所开发的工具与技术。Mopsa是一个以完备性为目标的静态分析平台。首先,我们描述了一种无需通过人工检查结果获取真实缺陷基准的自动化精度度量方法。该方法进一步提升了分析过程的透明度,并有助于在持续集成过程中发现性能退化。其次,我们借鉴了观察程序具体执行的标准工具设计思路,开发了用于观察被分析程序抽象执行的定制工具,例如抽象调试器和性能分析器。最后,我们报告了若干自动化测试用例精简的实践案例。