Der Automated Repairnator-Programmierer hat Patches erstellt, die gut genug sind, um Menschen irrezuführen
"Nichts kann definitiv auf dieser Welt angegeben werden, außer der Unvermeidlichkeit von Tod und Steuern", schrieb Benjamin Franklin 1789. Wenn er heute leben würde, könnte er der Programmliste immer noch Fehler hinzufügen.
Moderne Computerprogramme sind so komplex, dass bei der Entwicklung unweigerlich Fehler auftreten. Daher ist das Suchen und Schreiben von Patches, mit denen sie behoben werden, ein normaler Bestandteil jedes Softwareentwicklungsplans. Es gibt sogar Unternehmen, die Entwicklern einen solchen Service anbieten - zum Beispiel Travis.
Das Auffinden von Fehlern und das Schreiben von Patches ist jedoch ein langes Geschäft, das erhebliche Ressourcen in Anspruch nimmt. Verschiedene Forscher haben Bots entwickelt, um diesen Prozess zu automatisieren. Sie arbeiten jedoch normalerweise langsam oder produzieren Code von schlechter Qualität, der die Prüfung nicht besteht. Daher möchten sich Entwickler wirklich auf einen schnellen und qualitativ hochwertigen Bot verlassen, der nach Fehlern sucht und Patches darauf schreibt.

Heute werden ihre Träume dank der
Arbeit von Martin Monperas und seinen Freunden vom Royal Institute of Technology in Stockholm, Schweden, wahr. Sie haben schließlich einen Bot entwickelt, der in der Lage ist, mit Menschen zu konkurrieren, um Fehler zu finden und hochwertige Patches zu schreiben.
Die Jungs nannten den Repairnator-Bot und testeten ihn erfolgreich, sodass sie mit menschlichen Programmierern auf der Suche nach Korrekturen konkurrieren konnten. "Dies ist ein wichtiger Meilenstein auf dem Weg zum Wettbewerb mit Menschen bei der Erforschung der automatischen Programmkorrektur", sagen sie.
Informatiker sind sich seit langem der Möglichkeit bewusst, den Prozess des Schreibens von Patches zu automatisieren. Es ist nicht klar, ob Bots diese Aufgabe so schnell und effizient erledigen können wie Menschen.
Aus diesem Grund haben Monperas und das Unternehmen beschlossen, ihren Bot zu testen, indem sie ihn als menschlichen Entwickler tarnten und ihn bei der Entwicklung von Patches für GitHub, einer Website zum Programmieren mit Versionskontrolle, mit anderen konkurrieren ließen. "Die Schlüsselidee von Repairnator besteht darin, automatisch Patches zu erstellen, die Fehler in Assemblys beheben, sie Entwicklern zeigen und prüfen, ob Entwickler diese Patches als würdige Aufnahme in den Code akzeptieren", sagten sie.
Das Team hat Luc Esape als Programmierer aus seinem Labor auf GitHub registriert. "Luke hat ein Profilbild, er sieht aus wie ein Junior-Entwickler, der gerne zur Entwicklung von Open Source auf GitHub beitragen möchte", sagen sie.
Tatsächlich ist Luke ein Undercover-Reparaturbetrieb. Täuschung war notwendig, weil Moderatoren dazu neigen, die Arbeit von Bots und Menschen auf unterschiedliche Weise zu bewerten. "Geheimhaltung war notwendig, um die wissenschaftliche Hypothese der Wettbewerbsfähigkeit der Menschen zu testen", sagte Monperas mit dem Unternehmen, das bereits alle Betroffenen über das Geschehen informiert hatte.
Das Team machte zwei Ansätze zur Überprüfung von Repairnator. Der erste Test dauerte von Februar bis Dezember 2017, als sie Repairnator auf einer permanenten Liste von 14.188 Projekten startete, bei denen GitHub nach Fehlern suchte. "Wir haben festgestellt, dass unser Prototyp in der Lage ist, etwa 30 Korrekturversuche pro Tag durchzuführen", sagten sie.
In dieser Zeit analysierte Repairnator mehr als 11.500 fehlerhafte Projekte. In mehr als 3.000 Fällen konnte er Fehler reproduzieren. In 15 Fällen konnte er einen Patch entwickeln.
Keiner dieser Patches wurde jedoch in die Assembly aufgenommen, da Repairnator sie entweder zu lang machte oder Patches von inakzeptabler Qualität schrieb.
Der zweite Ansatz war erfolgreicher. Das Team schickte Luke von Januar bis Juni 2018 zur Arbeit am Travis Continuous Integration Service. Obwohl das Team nicht genau spezifizierte, was sie in Repairnator geändert hatten, schrieb er am 12. Januar den ersten Patch, den der Moderator in die Versammlung aufgenommen hatte. "Mit anderen Worten, Repairnator konnte zuerst das Niveau des Menschen erreichen", sagen sie. In den nächsten sechs Monaten veröffentlichte Repairnator fünf Patches, die von den Moderatoren akzeptiert wurden.
Eine beeindruckende Leistung, die den Weg für eine neue Generation von Softwareentwicklungsmethoden ebnet. Es wirft auch interessante Fragen auf. Die Entwickler achten auf den Patch, den Repairnator am 12. Mai für das Eclipse / Ditto-Projekt entwickelt hat.
Danach erhielt das Team einen Brief von einem der Entwickler des Projekts: „Wir akzeptieren Poolanfragen von Benutzern, die die Lizenzvereinbarung für Eclipse Foundation Contributor unterzeichnet haben.“
Dies stellt ein unangenehmes Problem dar, da der Bot die Lizenzvereinbarung nicht unterzeichnen kann. "Wem gehört das geistige Eigentum und wer ist für den Beitrag des Bots verantwortlich: Bot-Betreiber, Autor des Bots, Designer des Fix-Algorithmus?" - fragt das Entwicklerteam.
Diese Art von Problemen sollte gelöst werden, bevor Menschen und Bots weiter zusammenarbeiten können. Aber Monperas und sein Team blicken optimistisch in die Zukunft. „Wir glauben, dass Repairnator der Prototyp der zukünftigen Softwareentwicklung ist, bei der Bots und Mitarbeiter nahtlos zusammenarbeiten und Partner bei der Suche nach Softwarefehlern werden“, sagen sie.
Franklin, der berühmte Erfinder selbst, würde sicherlich beeindruckt sein von dem, was geschah.