Programming errors in software can be expensive and in extreme cases can cost lives. Previously, they were detected by testing software, but this method is not foolproof. Michael Pradel, professor at the Institute of Software Technology at the University of Stuttgart since September 1, 2019, is focusing on artificial intelligence when it comes to detecting errors. A few days ago, he received one of the prestigious Starting Grants from the European Research Council, worth 1.5 million Euros, for his revolutionary research ideas.
We all have seen the consequences of software errors for ourselves. Crashing apps, websites that are slow to load, features that don’t work… but these are only the tip of the iceberg. Programming errors in online retail can cost millions. In safety-critical applications, for example in self-driving cars or in medicine, they can even cost lives. Because software is developed by human beings, it is impossible to completely eliminate errors. And with the increasing prevalence and complexity of software, the number of errors is also going up.
Previously, software errors were detected by analyzing or testing software, which is based on the idea that one program analyses another program. However, the analysis software is still made by human beings, and can only detect kinds of errors that are already known. To be able to also predict and prevent future errors, Michael Pradel is focusing on artificial intelligence in his Software Lab. “The core idea is using the many existing software errors out there to learn how new errors can be detected automatically”, explains Pradel. “This is why we're developing machine learning models that predict whether a piece of program code is correct or not.”
To achieve this goal, Pradel and his team want to develop new techniques as part of the ERC project, which will enable a computer to “understand” a program and its underlying ideas. The approach uses the “deep learning”, which the researchers plan to develop and apply in previously unseen ways. For example, identifiers names in source code will serve as an important indicator of errors. Artificial intelligence looks at a huge number of lines of code and learns how the names are commonly used. If it then comes across an surprising interactions between variables called, say, “length” and “color”, then it reports it as a likely error.
“What makes this new approach so revolutionary is that every developer can create their own tools to detect errors. Currently, these kind of tools can be created only by a few specialists”, explains Pradel. The researchers have already achieved some very encouraging results with first prototypes and have been able to detect a variety of errors that were previously unknown or unidentified – even when using software that has already been in use for a very long time. Michael Pradel has also applied his ideas in practice during his six-month sabbatical spent researching at Facebook.
However, Pradel doesn’t think that artificial intelligence will replace programmers any time soon. “Our aim is more to use the automatic tools to support the relatively monotonous work of searching for errors and to free up more time for the programmers to concentrate on more interesting tasks, such as creating new functions”, says Pradel. Ultimately the goal is to make software development more productive – also because it’s getting more and more difficult for companies to find qualified developers on the job market.
About Michael Pradel
Michael Pradel was born in Jena in 1983 and studied Computer Science and Engineering in Dresden, Paris and Lausanne. He completed a doctorate at ETH Zurich in 2012 in the field of program analysis in automatic and precise error detection. After a research stay at UC Berkeley, USA, he has worked at TU Darmstadt since 2014, most recently as an assistant professor. During an industrial sabbatical between February and July 2019, he gained first-hand experience of the industry giant Facebook.
Since September 1, 2019 he has held the Chair of Programming Languages at the Institute of Software Technology at the University of Stuttgart.