Aus Fehlern lernen: Wie künstliche Intelligenz hilft Software zuverlässiger zu machen
Software ist allgegenwärtig. Sie bestimmt nicht nur weite Teile unseres Alltags, sondern auch zahlreiche Abläufe und Entscheidungen in Wirtschaft, Politik und Industrie. Leider führt die steigende Verbreitung und Komplexität von Software auch zu einer zunehmenden Zahl an Programmierfehlern. Die Folgen solcher Fehler hat jeder schon am eigenen Leib gespürt: Abstürzende Apps, langsame Webseiten und nicht funktionierende Features sind nur die Spitze des Eisbergs. Fehler im Online-Handel können Millionenbeträge kosten. In sicherheitskritischen Anwendungen, z.B. bei autonomen Fahrzeugen oder in der Medizin, können Programmierfehler unter Umständen sogar Menschenleben bedrohen. Da Software von Menschen entwickelt wird, sind Fehler leider nie ganz zu vermeiden.
Eine der größten Herausforderungen unserer zunehmend digitalen Gesellschaft ist es, Fehler in Software zu finden und verhindern. Das “Software Lab” um Prof. Dr. Michael Pradel geht diese Herausforderung mit Hilfe von künstlicher Intelligenz an. Die Kernidee ist es, aus den vielen bereits existierenden Softwarefehlern zu lernen wie neue Fehler automatisch gefunden werden können. Die Forscher entwickeln maschinelle Lernmodelle, die vorhersagen ob ein Stück Programmcode korrekt oder fehlerhaft ist. Um dieses Ziel zu erreichen, kommt das sogenannte “tiefe Lernen” (Deep Learning) zum Einsatz. Ein wichtiger Hinweis auf Fehler sind dabei natürlichsprachliche Informationen im Programmcode. Verknüpft ein Programmierer beispielsweise versehentlich zwei Variablen “Länge” und “Farbe”, dann liegt eventuell ein Fehler vor.
Das revolutionäre an Prof. Pradels neuen Verfahren ist, dass jeder Entwickler seine eigenen Werkzeuge zum Fehler finden lernen kann. Bisher konnten solche Werkzeuge nur von einigen wenigen Spezialisten erstellt wurden. Mit ersten Prototypen konnten die Forscher bereits bahnbrechende Erfolge erzielen. Prof. Dr. Michael Pradel hat seine Ideen außerdem bei einem 6-monatigen Aufenthalt im Silicon Valley (bei Facebook) in der Praxis getestet, von wo aus er an die Universität Stuttgart wechselt.
Die Arbeit des Teams um Prof. Pradel wird für die kommenden 5 Jahre mit 1,5 Millionen Euro vom European Research Council (ERC) gefördert. Nach einem hoch kompetitiven Auswahlverfahren kommt diese Förderung jedes Jahr nur einigen wenigen bahnbrechenden Projekten zugute, die das Potenzial haben ihr Gebiet maßgeblich zu beeinflussen.
Soll künstliche Intelligenz also schlussendlich Programmierer ersetzen? Nicht wirklich - vielmehr geht es darum die sonst eher eintönige Fehlersuche durch automatische Werkzeuge zu unterstützen, und den Programmierern mehr Zeit für interessanter Aufgabe, z.B. das Erstellen neuer Funktionalitäten, zu schaffen.