Software debugging has been shown to utilize upwards of half of developers' time. Yet, machine programming (MP), the field concerned with the automation of software (and hardware) development, has recently made strides in both research and production-quality automated debugging systems. In this paper we present ControlFlag, a self-supervised MP system that aims to improve debugging by attempting to detect idiosyncratic pattern violations in software control structures. ControlFlag also suggests possible corrections in the event an anomalous pattern is detected. We present ControlFlag's design and provide an experimental evaluation and analysis of its efficacy in identifying potential programming errors in production-quality software. As a first concrete evidence towards improving software quality, ControlFlag has already found an anomaly in CURL that has been acknowledged and fixed by its developers. We also discuss future extensions of ControlFlag.
翻译:软件调试显示,软件调试利用了开发者时间的一半以上的时间。然而,与软件(和硬件)开发自动化有关的领域机器程序(MP)最近在研究和生产质量自动调试系统方面都取得了长足进展。在本文件中,我们介绍了一个自我监督的MP系统“控制法拉格 ” ( ControlFlag ), 目的是通过试图探测软件控制结构中的异常现象来改进调试。 控制法拉也建议,如果发现异常模式,可能会进行更正。 我们介绍了控制法拉的设计,并提供了对其在确定生产质量软件中潜在编程错误方面的有效性的实验性评估和分析。作为改进软件质量的第一个具体证据,控制法拉已经发现CURL的异常现象,开发者已经承认并固定了这种异常现象。我们还讨论了控制法拉格的未来扩展。