Finding latent code errors via machine learning over program executions

By Yuriy Brun, Michael D. Ernst. 2004

197 citations recorded by the source corpus.

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.

Subfields: Information Systems, Software, Signal Processing

How researchers see this paper

The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.

In Information Systems

  1. Xifeng Yan
  2. Jiawei Han
  3. Rui Abreu
  4. Swarat Chaudhuri
  5. Chao Liu
  6. Navid Yaghmazadeh
  7. Işıl Dillig
  8. Michael D. Ernst

In Software

  1. Rui Abreu
  2. Swarat Chaudhuri
  3. Navid Yaghmazadeh
  4. Yihao Li
  5. Ruizhi Gao
  6. W. E. Wong
  7. David R. Cok
  8. Joseph R. Kiniry

In Signal Processing

  1. Jiawei Han
  2. Xifeng Yan
  3. David R. Cok
  4. Joseph R. Kiniry
  5. Samuel P. Midkiff
  6. Long Fei
  7. Chao Liu
  8. Stuart J. Russell

Citations in the corpus