当前位置: X-MOL 学术Sci. China Inf. Sci. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Learning a graph-based classifier for fault localization
Science China Information Sciences ( IF 8.8 ) Pub Date : 2020-05-09 , DOI: 10.1007/s11432-019-2720-1
Hao Zhong , Hong Mei

Because software emerged, locating software faults has been intensively researched, culminating in various approaches and tools that have been applied in real development. Despite the success of these developments, improved tools are still demanded by programmers. Meanwhile, some programmers are reluctant to use any tools when locating faults in their development. The state-of-the-art situation can be naturally improved by learning how programmers locate faults. The rapid development of open-source software has accumulated many bug fixes. A bug fix is a specific type of comments containing a set of buggy files and their corresponding fixed files, which reveal how programmers repair bugs. Feasibly, an automatic model can learn fault locations from bug fixes, but prior attempts to achieve this vision have been prevented by various technical challenges. For example, most bug fixes are not compilable after checking out, which hinders analyzing bug fixes by most advanced static/dynamic tools. This paper proposes an approach called ClaFa that trains a graph-based fault classifier from bug fixes. ClaFa is built on a recent partial-code tool called Grapa, which enables the analysis of partial programs by the complete code tool called WALA. Once Grapa has built a program dependency graph from a bug fix, ClaFa compares the graph from the buggy code with the graph from the fixed code, locates the buggy nodes, and extracts the various graph features of the buggy and clean nodes. Based on the extraction result, ClaFa trains a classifier that combines Adaboost and decision tree learning. The trained ClaFa can predict whether a node of a program dependency graph is buggy or clean. We evaluate ClaFa on thousands of buggy files collected from four open-source projects: Aries, Mahout, Derby, and Cassandra. The f-scores of ClaFa achieves are approximately 80% on all projects.



中文翻译:

学习基于图的分类器进行故障定位

由于出现了软件,因此已经对定位软件故障的方法进行了深入研究,最终形成了已在实际开发中应用的各种方法和工具。尽管这些开发取得了成功,但程序员仍然需要改进的工具。同时,一些程序员在定位开发中的错误时不愿使用任何工具。通过学习程序员如何定位故障,可以自然地改善最新状况。开源软件的飞速发展已经积累了许多错误修复。错误修复是一种特定类型的注释,其中包含一组错误文件及其对应的固定文件,这些注释揭示了程序员如何修复错误。可行的是,自动模型可以从错误修复中了解故障位置,但是,由于各种技术挑战,先前为实现这一愿景而进行的尝试已被阻止。例如,大多数错误修复在签出后无法编译,这阻碍了使用大多数高级静态/动态工具分析错误修复。本文提出了一种称为C的方法la F a从错误修复中训练基于图的故障分类器。C la F a建立在最新的名为G rapa的部分代码工具的基础上,该工具可以通过名为WALA的完整代码工具来分析部分程序。一旦G rapa通过错误修复构建了程序依赖关系图,C la F a就会将错误代码中的图形与固定代码中的图形进行比较,找到错误节点,并提取错误和干净节点的各种图形特征。基于提取结果,C la F a训练结合了Adaboost和决策树学习的分类器。训练有素的C la F一个可预测的程序依赖图的节点是否是手推车或清洁。我们评估ç˚F对数以千计的马车文件从四个开源项目收集:白羊座,象夫,德比和卡桑德拉。所述˚F的Ç-scores LA ˚F一个实现是在所有项目上大约80%。

更新日期:2020-05-09
down
wechat
bug