DeepBugs - A Learning Approach to Name-based Bug Detection
summary
Uses simple code transformations to seed millions of training examples, learns identifier embeddings with word2vec and concatenates those vectors into a shallow feed‑forward neural classifier to detect swapped arguments and two kinds of binary-op mistakes. Trained on ~150,000 JavaScript files (≈86M LOC), classifiers reach about 89–95% accuracy, run under 20 ms per file, and surface 102 real-world mistakes with a 68% true‑positive rate, showing seeded bugs generalize to real defects.
AI-written summary · about
chapters (15)
- 0:00Intro
- 0:13Automated Bug Detection
- 1:36Learning to Find Bugs
- 3:46Name-related Bugs (2)
- 4:36Overview of DeepBugs
- 5:52Generating Training Data
- 7:42Representing Code as Vectors
- 8:53Example: Embeddings
- 12:08Predicting Bugs in New Code
- 12:38Evaluation: Setup
- 13:40Accuracy of Classifier
- 14:12Examples of Detected Bugs
- 15:48Precision
- 16:51Importance of Embeddings
- 18:33Conclusion
related talks
07mFinding Bugs in Deep Learning Programs
38mApplying machine learning to software development to reduce bugs
07mInterview
48mUsing Machine Learning to find Linux bugs
47mBug prediction based on your code history
37mMachine Learning on Source Code
50mPractical Applications of ML in Software Testing
30mData Driven Security
