A joint team of researchers from technology universities in France and Sweden are exploring the possibility of creating technology to quickly and efficiently fix software vulnerabilities. The bot, named Repairnator, was created as a part of the project, which equipped with an artificial intelligence that comes from advanced machine learning techniques. It is capable of correcting the bugs identified at a given moment by searching for - and adapting - solutions that previously have been used in order to repair similar errors.
“Continuous integration is software development practice that consists of merging working copies into a main branch of development several times a day and performing frequent automated project builds to quickly identify potential defects and solve integration problems.”
Repairnator continuously monitors thousands of new versions of projects added to the GitHub platform and analyzes their respective assemblies to eliminate errors that occur during continuous integration. Every minute the bot starts the process of preliminary correction of errors that precede the intervention of specialists.
Research has been working on Repairnator since 2016, and in 2018 the program created patches that are not inferior to humans for the first time. The bot patched the detected errors before the developers, and they were accepted by the system as a real contribution to the development of the project.
A total of five “patches” were eventually added to the code base.
The number of unsuccessful attempts to fix in the code is unknown. However, in the past bot made 3551 attempts, but they were all less effective than made by people.
The original project developers who accepted requests from Repairnator did not know that the changes were proposed by the bot. In order to avoid prejudice against the bot, the creators of Repairnator filed an application to participate in the development of the project from the user GitHub, a fake engineer Luc Esape. Later for ethical reasons, the true “face” of the bot was revealed with each request for the inclusion of code in the project.