一句话:该文论述自动软件修复的必要性,指出调试自动化需从故障定位推进到自动合成修复。
软件故障调试仍然痛苦、耗时且昂贵,研究显示调试活动可占软件开发总成本约50%。导致调试成本的因素很多,但最主要的是识别与移除故障仍需大量人工。现有调试自动化主要提供故障可能位置、导致失败的输入与状态、失败期间异常操作等线索,但开发者仍需分析失败执行并精确识别故障,且这些技术不能帮助合成合适的修复。该文因此讨论自动软件修复的目标与挑战,强调需要将自动化从故障定位推进到自动生成修复,以减少人工修复负担。
Debugging software failures is still a painful, time consuming, and expensive process. For instance, recent studies showed that debugging activities often account for about 50% of the overall development cost of software products [3]. There are many factors contributing to the cost of debugging, but the most impacting one is the extensive manual effort that is still required to identify and remove faults. So far, the automation of debugging activities essentially resulted in the development of techniques that provide useful insights about the possible locations of faults, the inputs and states of the application responsible for the failures, as well as the anomalous operations executed during failures. However, developers must still put a relevant effort on the analysis of the failed executions to exactly identify the faults that must be fixed. In addition, these techniques do not help the developers with the synthesis of an appropriate fix.