首页> 外文期刊>Automated software engineering >How effective are existing Java API specifications for finding bugs during runtime verification?
【24h】

How effective are existing Java API specifications for finding bugs during runtime verification?

机译:现有的Java API规范在运行时验证期间发现错误的效率如何?

获取原文
获取原文并翻译 | 示例

摘要

Runtime verification can be used to find bugs early, during software development, by monitoring test executions against formal specifications (specs). The quality of runtime verification depends on the quality of the specs. While previous research has produced many specs for the Java API, manually or through automatic mining, there has been no large-scale study of their bug-finding effectiveness. Our conference paper presented the first in-depth study of the bug-finding effectiveness of previously proposed specs. We used JavaMOP to monitor 182 manually written and 17 automatically mined specs against more than 18K manually written and 2.1M automatically generated test methods in 200 open-source projects. The average runtime overhead was under 4.3x. We inspected 652 violations of manually written specs and (randomly sampled) 200 violations of automatically mined specs. We reported 95 bugs, out of which developers already fixed or accepted 76. However, most violations, 82.81% of 652 and 97.89% of 200, were false alarms. Based on our empirical results, we conclude that (1) runtime verification technology has matured enough to incur tolerable runtime overhead during testing, and (2) the existing API specifications can find many bugs that developers are willing to fix; however, (3) the false alarm rates are worrisome and suggest that substantial effort needs to be spent on engineering better specs and properly evaluating their effectiveness. We repeated our experiments on a different set of 18 projects and inspected all resulting 742 violations. The results are similar, and our conclusions are the same.
机译:通过根据正式规范(规范)监视测试执行,可以在软件开发过程中使用运行时验证来及早发现错误。运行时验证的质量取决于规范的质量。尽管先前的研究已经通过手动或自动挖掘为Java API制定了许多规范,但尚未对其错误发现有效性进行大规模研究。我们的会议论文首次对以前提出的规范的错误发现有效性进行了深入研究。在200个开源项目中,我们使用JavaMOP来监视182份手动编写的规范和17项自动挖掘的规范,而超过18K手动编写的规范和2.1M条自动生成的测试方法。平均运行时开销低于4.3倍。我们检查了652次违反手动编写规范的行为,并检查了200次违反了自动挖掘规范的行为(随机抽样)。我们报告了95个错误,其中开发人员已经修复或接受了76个错误。但是,大多数违规行为是虚假警报,占652个的82.81%,占200个的97.89%。根据我们的经验结果,我们得出的结论是:(1)运行时验证技术已经足够成熟,可以在测试期间产生可忍受的运行时开销;(2)现有的API规范可以找到开发人员愿意修复的许多错误;但是,(3)错误警报率令人担忧,这表明需要花费大量精力来设计更好的规格并正确评估其有效性。我们在一组18个项目中重复进行了实验,并检查了所有742起违规行为。结果是相似的,我们的结论是相同的。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号