Finding latent code errors via machine learning over program executions

Finding latent code errors via machine learning over program executions
复制标题

DOI:
10.1109/icse.2004.1317470
复制
发表时间:
2004-05
期刊:
Proceedings. 26th International Conference on Software Engineering
影响因子:
--
通讯作者:
Yuriy Brun;Michael D. Ernst
Yuriy Brun;Michael D. Ernst
中科院分区:
其他
文献类型:
--
作者:
Yuriy Brun;Michael D. Ernst

文献摘要

被引文献

相似文献

本文提出了一种技术,用于识别程序属性,指示错误。该技术生成已知由错误导致的程序属性的机器学习模型,并将这些模型应用于用户编写的代码的程序属性,以对可能导致用户错误的属性进行分类和排名。给定程序分析产生的一组属性,该技术选择最有可能揭示错误的属性子集。故障不变分类器的实现,证明了该技术的有效性。该实现使用动态不变检测来生成程序属性。它使用支持向量机和决策树学习工具对这些属性进行分类。在我们的实验评估中,该技术增加了相关性(浓度的故障揭示属性)的一个因素,平均为50的C程序,和4.8的Java程序。初步经验表明,大多数故障揭示属性确实会导致程序员出错。
This paper proposes a technique for identifying program properties that indicate errors. The technique generates machine learning models of program properties known to result from errors, and applies these models to program properties of user-written code to classify and rank properties that may lead the user to errors. Given a set of properties produced by the program analysis, the technique selects a subset of properties that are most likely to reveal an error. An implementation, the fault invariant classifier, demonstrates the efficacy of the technique. The implementation uses dynamic invariant detection to generate program properties. It uses support vector machine and decision tree learning tools to classify those properties. In our experimental evaluation, the technique increases the relevance (the concentration of fault-revealing properties) by a factor of 50 on average for the C programs, and 4.8 for the Java programs. Preliminary experience suggests that most of the fault-revealing properties do lead a programmer to an error.