Connect with us

Deutsch

Entwickler: Intels automatisiertes Debugging-Tool ControlFlag ist jetzt Open Source

Published

on

ControlFlag wird bisher nur intern von Intel verwendet, um Anomalien in der eigenen Softwareentwicklung zu erkennen.

Bild: LukaTDB / Getty Images

Intels automatisiertes Code-Debugging-Tool ControlFlag ist jetzt Open Source und steht Entwicklern kostenlos zur Verfügung – ein Schritt, der für viele eine Erleichterung sein wird, die es leid sind, stundenlang ihre Softwareprogramme auf die Suche nach einer potenziellen Anomalie zu untersuchen.

ControlFlag ist jetzt über GitHub verfügbar und nutzt maschinelles Lernen, um automatisch Fehler im Software- und Firmware-Code zu identifizieren, und erspart Entwicklern die zeitaufwändige Aufgabe, die von ihnen geschriebenen Programme manuell zu debuggen.

Ende letzten Jahres erstmals angekündigt, wird ControlFlag bisher nur intern von Intel verwendet, um Anomalien in der eigenen Softwareentwicklung zu erkennen. Durch die Öffnung des Tools für externe Entwickler und die Möglichkeit, darauf aufbauen zu können, erwartet Intel, die Grenzen dessen zu überschreiten, was das System tun kann, um den Prozess des Schreibens von Code zu rationalisieren.

Debugging ist für die Programmentwicklung von entscheidender Bedeutung: Fast alle umfangreiche Software enthält Genauigkeits-, Leistungs- oder Sicherheitsfehler, die gemildert werden müssen. Darüber hinaus bietet jedes Update dieser Programme, zum Beispiel die Einführung einer neuen Funktion, eine weitere Möglichkeit, eine Anomalie aufzutauchen.

Für die überwiegende Mehrheit der Entwickler ist der Prozess jedoch eine zeitaufwändige und immer noch weitgehend manuelle Arbeit. Dies liegt daran, dass die meisten Fehler eine semantische Analyse erfordern, um die Ursache zu identifizieren, zu bewerten und abzuschwächen – eine Analyse, die selbst moderne Debugging-Systeme nicht effektiv durchführen können.

“In der Vergangenheit waren solche semantischen Analysatoren einfach Softwareentwickler”, sagt Justin Gottschlich, leitender KI-Wissenschaftler bei Intel Labs, gegenüber ZDNet. “Als solches ist dies ein wichtiger Grund, warum das Debuggen ein weitgehend von Menschen gesteuerter Prozess bleibt.”

In den letzten Jahrzehnten wurden Fortschritte bei der Automatisierung des Debuggings erzielt, aber vorhandene Tools sind den immer komplexer werdenden Softwarefehlern nicht gewachsen. Deshalb sei das Debuggen bei Entwicklern nicht so gern gesehen, sagt Gottschlich: Es kann Tage, Wochen und sogar Monate dauern, einen einzelnen Softwarefehler zu beheben. Es wird geschätzt, dass bis zu 50 % der gesamten Softwareentwicklungszeit für das Debugging verwendet wird.

Dies ist auch für Unternehmen mit Kosten verbunden. Laut Intel gab die IT-Branche im Jahr 2020 geschätzte 2 Billionen US-Dollar an Softwareentwicklungskosten im Zusammenhang mit dem Debuggen von Code aus, was etwa der Hälfte des durchschnittlichen IT-Budgets entspricht.

ControlFlag wurde entwickelt, um diese Lücke durch eine Funktion namens Anomalieerkennung zu schließen. Das Tool lernt aus vorherigen Beispielen, um normale Codierungsmuster zu erkennen und kann daher Anomalien identifizieren, die wahrscheinlich einen Fehler verursachen, unabhängig von der Programmiersprache.

Das Intel-Team stellte fest, dass ein unüberwachter Lernansatz erforderlich wäre, damit ControlFlag Fehler in einer breiteren Palette von Repositorys erkennen kann. Das System lernte Codierungsmuster aus über einer Milliarde Zeilen unbeschrifteten Quellcodes, wodurch es ein hohes Maß an Genauigkeit erreichte und sich sogar an den Stil eines Entwicklers anpasste, um eine Softwareanomalie von einer stilistischen Variation einer Programmiersprache zu unterscheiden.

Seit seiner Einführung im vergangenen Jahr hat Intel das Machine-Learning-Tool auf verschiedenen Softwaresystemen getestet, mit vielversprechenden Ergebnissen. „Als wir das System ursprünglich entworfen haben, haben wir nicht damit gerechnet, dass es hochkomplexe Fehler finden kann“, sagt Gottschlich. “Angesichts seines selbstüberwachten Designs hat ControlFlag jedoch selbst uns, die Entwickler, in seiner Fähigkeit, hochkomplexe, nuancierte Softwarefehler zu finden, verblüfft.”

Die Verwendung von ControlFlag auf nur zwei proprietären Software-Repositorys führte laut Gottschlich zur Identifizierung von über 300 Fehlern in den bereitgestellten Programmen in Produktionsqualität. ControlFlag hat beispielsweise letztes Jahr eine Codeanomalie in einem Computersoftwareprojekt namens Client URL (cURL) entdeckt, das über eine Milliarde Mal pro Tag Daten über verschiedene Netzwerkprotokolle überträgt. Nachdem sie die Anomalie dem cURL-Team gemeldet hatten, stimmten sie den Ergebnissen von ControlFlag zu und überarbeiteten ihren Code, um das Problem zu beheben.

Das vergangene Jahr brachte auch eine Menge Lernpunkte mit sich, als Intels Team an der Entwicklung von ControlFlag arbeitete. Zwei wichtige Verbesserungsbereiche sind laut Gottschlich die Reduzierung der vom Tool gemeldeten Fehlalarme – die Anzahl der gemeldeten Fehler, die keine tatsächlichen Fehler sind – und die Integration eines noch fortschrittlicheren sematischen Analysators in die Argumentation von ControlFlag.

Als ein System, das zu einem der Flaggschiff-Produkte von Intels Tool-Suite für die Maschinenprogrammierung werden soll, wird ControlFlag sich jedoch ständig weiterentwickeln. “Es ist unwahrscheinlich, dass die Fortschritte von ControlFlag jemals zum Stillstand kommen”, sagt Gottschlich. “Dies liegt hauptsächlich daran, dass sich ControlFlag mit der Weiterentwicklung von Softwareprogrammiersprachen, Hardwarebeschreibungssprachen und Computergeräten auch weiterentwickeln muss, um mit ihnen Schritt zu halten.”

Das System ist Teil des Machine Programming Research (MPR)-Projekts von Intel, dessen übergeordnetes Ziel es ist, die Zeit für die Entwicklung von Software dank Automatisierung um das 1.000-fache zu verkürzen. Einer der Bereiche, den das Team von Gottschlich untersucht, ist beispielsweise, die Fähigkeiten von ControlFlag zu erweitern, um die erkannten Fehler automatisch zu reparieren.

Parallel dazu arbeitet das MPR-Team von Intel an einer Handvoll Projekte, die sich auf die Vereinfachung der Softwareentwicklung konzentrieren. Im vergangenen Jahr hat das Unternehmen beispielsweise ein gemeinsam mit den MIT-Labors entwickeltes Tool veröffentlicht, das Codeschnipsel untersuchen kann, um zu verstehen, was eine Software tun soll. Das als MISIM (Machine Inferred Code Similarity) bezeichnete System verwendet einen Katalog von bereits vorhandenem Code, um die Absicht hinter einem neuen Algorithmus zu verstehen und Ingenieuren bei der Arbeit an Software zu helfen, indem es andere Programmiermöglichkeiten vorschlägt oder Optionen anbietet, um den Code effizienter zu machen.

Gottschlich geht davon aus, dass MISIM eines Tages neben ControlFlag arbeiten wird. „Wenn es richtig miteinander verschmolzen ist, stellen wir uns ein leistungsfähigeres neues System vor, das in der Lage sein wird, alle Fehler zu erkennen, die ControlFlag derzeit erkennen kann, sowie Hunderte von Fehlern, die es aufgrund ihrer zugrunde liegenden Komplexität derzeit nicht erkennen kann“, sagt Gottschlich.

In der Zwischenzeit können Entwickler, die daran interessiert sind, mit dem Tool zu beginnen, jetzt hier auf ControlFlag auf GitHub zugreifen.

Continue Reading

Copyright © 2021 Meta Mag Inc.