Learning from mistakes: how artificial intelligence can help making software more reliable
Software is all around. It not only determines huge parts of our everyday life but also countless processes and decisions in economy, politics and industry. Unfortunately, the growing complexity of software leads to a rising number of bugs. Everyone has witnessed the effects of bugs: crashing apps, slow websites and non-functional features. Bugs in online sales can cost millions of Euros. In security-relevant applications like autonomous vehicles or in medicine, bugs can threaten human lives. However, software is made by humans, therefore mistakes can never be fully avoided.
One of the big challenges in our more and more computer-based society is finding and preventing bugs in software. The “Software Lab” of Prof. Dr. Michael Pradel does just that with the help of artificial intelligence. The basic concept is to learn from the many already existing bugs how to automatically find new ones. The researchers develop machine-learning models that predict if a piece of code is correct or defective. To reach this goal, the researchers use the concept of “Deep Learning”. An important indication of bugs is natural-language information in the code. For example, if a software engineer connects two variables “length” and “color” by accident, then there is a potential bug.
Prof. Pradel’s groundbreaking method gives software engineers the ability to learn their own tools to find bugs. Until now, only a small number of specialists were able to make such tools. First prototypes already showed great results. Prof. Dr. Michael Pradel also tested his ideas during a sixth month stay in Silicon Valley (at Facebook).
The work of Prof. Pradel’s team will be funded with 1.5 million Euros in the upcoming five years by the European Research Council (ERC). Only a few projects, selected based on their potential to significantly impact their research field, receive such funding each year.
Is artificial intelligence to replace software engineers? Not really – in fact, the project is rather about freeing developers from manually searching for bugs to create time for more interesting and creative tasks.