2019-121
2019-121
Deep Learning to Detect Software Defects
MICHAEL D. NAPLES, WILLIAM H. JACOBS, ALEXANDER V. BOYLE, DEEP DESAI, and VINCENT J. PEDATAModern bug detection algorithms rely on hand written rules to ensure source code follows a certain format. As software engineering progresses and source code becomes more complicated the number of different bugs and their complexity increases. Building algorithms by hand to detect more subtle bugs is almost impossible. To build a more robust bug detector this project takes a natural language processing approach to solving this problem. Using deep learning we create word embeddings on source code and use a recurrent neural network to distinguish between buggy and non-buggy code. To frame bug detection as a machine learning task large amounts of source code, both buggy and non-buggy are required. Our program can download a list of GitHub repositories, extract the source code and we use simple code transformations that take clean code and alter it in some way to make it buggy. This allows us to collect an arbitrarily large amount of labeled buggy and non-buggy code. This program is far from being a commercial product but as a proof of concept we achieved an accuracy of 85% predicting swapped parameters in previously unseen code.
College of Science & Mathematics
Main Menu
- Computer Science
- Academic Programs
- BS Computer Science
- BA Computing & Informatics
- BA Computer Systems Technology
- MS Computer Science
- MS Cybersecurity
- MS Data Science
- PhD Data Science
- Minor in Computer Science
- Minor in Data Science
- Accelerated Dual Degree Program
- Certificates of Undergraduate Study
- Certificates of Graduate Study
- Concentrations BS CS
- Concentrations BA C&I
- Cybersecurity
- Data Science
- Compare University Computing Programs
- Compare our Undergraduate Programs
- Advising Materials
- Undergraduate
- BS Computer Science
- BA Computing & Informatics
- BA Computer Systems Technology
- Certificate of Undergraduate Studies
- Computer Programming
- Mobile Apps CUGS
- Fundamental Computing CUGS
- Cybersecurity
- Blockchain Technologies and Cryptocurrencies
- Advanced Network Technology
- Azure Fundamentals
- Cybersecurity in Information Technology
- Database Development
- Database Fundamentals
- Digital Forensics
- Ethical Hacking
- Internet of Things
- Intrusion Detection/Prevention
- Linux Systems Administration
- Network Fundamentals
- Operating Systems Fundamentals
- Minor Degrees
- CS Undergraduate Catalog
- Graduate
- "4+1" (ADDP)
- Program Guides
- BS Computer Science
- BS Data Science
- Minor in Computer Science
- Concentrations
- CUGS Guides
- Advanced Network Technology
- Azure Fundamentals
- Blockchain Technologies & Cryptocurrencies
- Computer Programming
- Cybersecurity
- Cybersecurity in Information Technology
- Database Development
- Database Fundamentals
- Digital Forensics
- Ethical Hacking
- Fundamental Computing
- Internet of Things
- Intrusion Detection/Prevention
- Linux Systems Administration
- Mobile Application Development
- Network Fundamentals
- Operating Systems Funamentals
- 4+1 Programs
- MS Computer Science
- MS Cybersecurity
- COGS Guides
- MS Data Science
- Standard Course Syllabi
- Forms & Policies
- Undergraduate
- Faculty and Staff
- Students
- Research
- News
- Events
- Contacts
- Faculty Portal - secured
- Site Index
- Can't find it?
- Computer Science