Die Fehlersuche und -behebung in Code ist ein zeitaufwendiger und oft frustrierender Teil der täglichen Arbeit von Softwareentwicklern. Kann Deep Learning dieses Problem lösen und Entwicklern helfen, bessere Software schneller zu liefern? Ein neues Forschungspapier von Microsoft Research, "Self-Supervised Bug Detection and Repair", präsentiert ein vielversprechendes Deep-Learning-Modell namens BugLab, das ohne die Verwendung von markierten Daten Fehler erkennen und beheben kann.
Fehler in Code zu finden und zu beheben erfordert nicht nur die Überlegung der Code-Struktur, sondern auch das Verständnis von zweideutigen natürlichsprachlichen Hinweisen, die Softwareentwickler in Code-Kommentaren, Variablennamen und anderen Stellen hinterlassen. Zum Beispiel kann ein Bug in einem Open-Source-Projekt auf GitHub durch einen einfachen Vergleichsoperator-Fehler entstehen.
Das BugLab-Modell verwendet zwei konkurrierende Modelle, die durch ein "Versteckspiel" lernen, das von generativen adversarialen Netzwerken (GAN) inspiriert ist. Ein Bug-Selektor-Modell entscheidet, ob es einen Bug einführen soll, wo es ihn einführen soll und in welcher Form (z.B. Ersetzen eines bestimmten "+" durch ein "-"). Dann wird der Code bearbeitet, um den Bug einzuführen. Ein anderes Modell, der Bug-Detektor, versucht, zu bestimmen, ob ein Bug im Code eingeführt wurde, und wenn ja, ihn zu lokalisieren und zu beheben.
Diese beiden Modelle werden gemeinsam ohne markierte Daten trainiert, d.h. in einer selbstüberwachten Weise, über Millionen von Code-Snippets. Der Bug-Selektor lernt, interessante Bugs innerhalb eines Code-Snippets zu "verstecken", während der Bug-Detektor versucht, den Selektor zu schlagen, indem er die Bugs findet und behebt.
BugLab kann ohne die Verwendung von markierten Daten trainiert werden, was bedeutet, dass es keine großen Mengen an markierten Daten benötigt. Dies macht es zu einer vielversprechenden Lösung für die Fehlersuche und -behebung in Code.
BugLab kann in verschiedenen Anwendungsbereichen eingesetzt werden, von der Web-Entwicklung bis hin zur mobilen Entwicklung und darüber hinaus. Es ist einfach zu verwenden, mit einer benutzerfreundlichen Oberfläche, die den Benutzer durch den Prozess der Fehlersuche und -behebung führt. Es bietet auch detaillierte Diagnosen und Einblicke in den Code, damit Entwickler Probleme erkennen und ihre Code-Qualität verbessern können.
BugLab by Microsoft Research ist ein vielversprechendes Deep-Learning-Modell zur Fehlersuche und -behebung in Code. Es kann ohne die Verwendung von markierten Daten trainiert werden und bietet eine einfache und benutzerfreundliche Oberfläche für Entwickler. Durch die Verwendung von BugLab können Entwickler Zeit und Ressourcen einsparen und bessere Software schneller liefern.
* KI-Zusammenfassungen können Fehler enthalten. Alle Angaben ohne Gewähr.