Modern computer programs are so complex that the process of their development inevitably involves many bugs. Finding and fixing those bugs is a big part of a software developer’s job, and it takes a lot of time.
There are many bots out there that automate this process, but they are rather problematic. They are usually too slow and the code that they write doesn’t pass muster.
But there is great news for software developers. A group of Swedish researchers have built a bot that can compete with human developers in finding bugs and writing high-quality patches. They named it the Repairnator and tested it by having it compete with human developers to find fixes.
To do this, they disguised Repairnator as a human developer and created a user called Luc Esape on GitHub, a version control website for software developers. Luc had a profile picture and looked like an average junior developer. The idea was to have other developers check his work and see whether they could accept it as valid contributions to the code base.
The Repairnator team ran several tests. During their first attempt, the bot did develop patches, but they weren’t accepted because it took too long to develop them or wrote low-quality patches that couldn’t be accepted. As a result, the team took this opportunity to improve the bot.
The second experimental run was more successful. It actually wrote a patch that a human moderator accepted into a build. And over the next six months, Repairnator went on to produce five patches that were accepted by human moderators.
This definitely opens a whole new field of opportunities for a new generation of software development. However, it also raises some interesting questions. Since the bot itself cannot physically sign a license agreement, who owns the intellectual property and responsibility of a bot contribution? The robot operator, the bot implementer, or the repair algorithm designer?
While these problems will need to be resolved before humans and bots can start collaborating more closely, we can now safely predict that soon enough bots and humans will work together and even cooperate on software artifacts.
- Inevitably – as is certain to happen; naturally; unavoidably
- Pass muster – be accepted as adequate or satisfactory
- Disguise – give a different appearance in order to conceal one’s identity
- Valid – reasonable; having a sound basis in logic
- Run (noun) – an opportunity or attempt to achieve something; attempt; trial
- Implementer – someone who implements something or puts it into practice
Questions for Discussion
- What are some of the problems mentioned in the article that are associated with bots?
- Do you think bots will ever replace humans altogether when it comes to software development?
- Do you like the direction in which software development is headed? Explain your answer.
Start improving your English speaking skills with English Ninjas today!