程序源代码中的缺陷是导致软件不可靠的一个主要原因.软件错误自动定位技术通过计算机分析程序源代码或执行过程中产生的运行状态,检测程序中的异常并将其独立出来作为需要进一步调试的可疑代码,从而缩小缺陷代码的搜索范围,辅助开发人员更快地识别缺陷语句并分析软件失效的产生原因.为了清晰地分析软件错误定位领域的关键科学问题,文中首先定义了"失效-错误定位-理解"模型,然后形式化地描述了软件错误定位相关概念;接下来,调研国内外最新研究进展,统计分析了发展趋势;重点分析了各种错误定位方法的基本思想、优缺点及其对关键问题的解决情况;最后总结了尚待解决的难点问题,指出了未来可能的研究方向.
Bugs in source code is a major cause of software unreliability.Automatic fault localization is a technique which detects program anomalies by analyzing the source code or runtime states of the software.It can isolate anomalies as suspicious code lines which need further debugging,so as to narrow down the searching space.With automatic fault localization techniques,software developers can identify bugs more quickly and understand the root cause of the software failure more deeply.In order to facilitate the analysis of the key issues in software fault localization,a"failure-fault localization-comprehension"model is defined,and the related concepts are formally described.Then,state-art of software fault localization is reviewed,and the development trend is statistically analyzed.Next,the main ideas,advantages and disadvantages of typical software fault localization methods are demonstrated in detail.Finally,key scientific problems which need further researched are summarized.