Mozilla gaat machine learning gebruiken om fouten in code te vinden

Mozilla gaat Clever-Commit inzetten, een programmeerassistent op basis van machine learning die het ontwikkelde met spelontwikkelaar Ubisoft. Clever-Commit moet het aantal programmeerfouten die in de Firefox-browser gemaakt worden flink verlagen, meldt Ars Technica.

Clever-Commit analyseert wijzigingen in code als ontwikkelaars ze committen in de Firefox codebase. Die wijzigingen worden vergeleken met alle code die het eerder zag, om te zien of ze vergelijkbaar zijn met code waarvan het systeem weet dat er fouten inzitten. Denkt de assistent dat de commit er verdacht uitziet, dan waarschuwt het de ontwikkelaar. In dat geval kan de fout hersteld worden, voordat het in de source repository terecht komt.

Clever-Commit kan bovendien oplossingen suggereren voor fouten die het vindt. Mozilla wil Clever-Commit in eerste instantie gaan gebruiken bij code reviews, maar het gebruik later uitbreiden naar andere fases van de ontwikkeling. Het werkt met alle drie de programmeertalen die Mozilla voor Firefox gebruikt, namelijk C++, JavaScript en Rust.

De tool borduurt verder op werk van Ubisoft La Forge, het onderzoekslab van Ubisoft. Het bedrijf presenteerde vorig jaar de Commit-Assistant, gebaseerd op onderzoek genaamd CLEVER, wat een systeem is voor het vinden van fouten en het suggereren van oplossingen. Dit systeem vond 60 tot 70 procent van commits met fouten, al zei het in 30 procent van de gevallen ook onterecht dat er fouten waren.

Mozilla verwacht een vergelijkbaar succesniveau als Clever-Commit volledig geïntegreerd is in zijn ontwikkelproces. Daarbij gaan ze er vanuit dat drie tot vier van de vijf fouten gevonden worden, voor ze committed zijn. Dit is goedkoper en eenvoudiger dan wanneer ze gespot worden als ze al in productie zitten.

IntelliCode

Ook Microsoft gebruikt machine learning voor het programmeren. Vorig jaar introduceerde het een functie genaamd IntelliCode in Visual Studio. IntelliCode is een experimentele set aan mogelijkheden gebouwd rond kunstmatige intelligentie, die ontwikkelaars moeten helpen om sneller te kunnen werken. IntelliCode kan ook ingezet worden om fouten te vinden, bijvoorbeeld om te detecteren of variabelen wel correct gebruikt zijn.