Exploring Faulty Software Code with Artificial Intelligence
Software bugs (a.k.a., faulty software code) are human-made errors in code that lead to erroneous behaviours in software. Developers spend ~50% of their programming time dealing with them. Once a software bug is encountered, developers attempt to find its original location in the code and then understand its erroneous behaviours, which is a prerequisite to correcting any bug. Although there has been significant research to find the bugs automatically, only a little attempt has been made to explain the faults in the code that trigger these bugs. In this project, we propose to design and develop a novel, intelligent framework to explain faulty software code with (a) auto-generated, human-readable, succinct explanation and (b) auto-generated, tentative solution code. Unlike traditional alternatives (e.g., static analysis tools), this project will offer data-driven, scalable, intelligent solutions that learn from millions of reported bugs, their fixed code, and their corresponding explanations stored at GitHub. We will evaluate our designed solutions both empirically using historical data from GitHub and qualitatively involving professional developers. It will not only advance the current state of research for understanding bugs but also will produce methods and tools that will be adopted by industry.