Machine learning applied to code development

development-processmachine learning

My background is in mechanical engineering, so please forgive my ignorance to this area.

I really enjoy programming and software development. Also, I recently took a free online Machine Learning (ML) class, which I highly recommend, taught by Stanford professor Andrew Ng. Link here.

I've heard this professor say that it's difficult to find areas that ML will never impact.

Question

So my question is, what research has been done so far in applying machine learning to code development? How about debugging?

Please include resources/sources/scientific papers if possible.

I haven't had luck searching for this because often searching ML and software development (or programming) ends up leading to results in the software development (or programming) of ML applications.

Best Answer

Fuzzing is a testing method where machine learning can & has been applied. Fuzzing is a method of testing in the realm of automated exploratory testing. It attempts to find defects in software by running a large number of inputs and looking for errors. Unhandled exceptions are the simplest category, but a smart implementation can use ML to find suspect outputs. ML is largely used in this domain in order to make the process more efficient however. This works by using ML to avoid testing every possible input by training on "interesting" inputs. (Dis-similar inputs that are likely to cause failure.)

Related Topic