您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    顺序员的革命or灾难:机器人在GitHub修复bug、与人不相上下(附论文)
    时间:2018-10-26 21:09 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    这个名为Repairnator的自动顺序员编写的补丁好得足以骗过真正的人类工程师。

    1789年本杰明•富兰克林写道:“在这个世界上,除了死亡和税收外,没有什么可以说是确定无疑的。”但假设富兰克林生活在现代,他能够会另外添加“软件bug”这一项。

    现代计算机顺序十分复杂,开发进程中难免会出现各种各样的bug(缺陷)。这就是为什么找到缺陷并编写修复它们的补丁是任何软件开发方案的一项常规任务。确实,像Travis这样的公司在向广阔开发人员提供这项效劳。

    但是,查找和修复补丁是一件很费时的差事,耗用少量资源。众多研讨人员开收回了使这个进程自动化的机器人,但是它们往往不是速度慢,就是编写的代码差强者意,过不了关。因此,开发人员十分希望可以依赖一种速度快、质量高的机器人来查找代码中的错误,然后编写补丁来修复错误。

    顺序员的革命or灾难:机器人在GitHub修复bug、与人不相上下(附论文)

    明天开发人员终于梦想成真了,这归功于瑞典斯德哥尔摩KTH皇家理工学院的马丁•蒙佩卢斯(Martin Monperrus)及其同仁所做的任务。这些研讨人员最终开收回了一款机器人,它在寻觅缺陷并编写高质量的补丁方面与人类开发人员相比毫不逊色。

    这些人称这款机器人为Repairnator,已成功地停止了测试,让它可与人类开发人员一较上下、找到修复顺序。他们说:“这是顺序自动修复方面的软件工程研讨界取得的严重里程碑,做到了可以与人类相竞争。”

    计算机迷信家们早就知道,可以使编写补丁的进程完成自动化。但目前尚不清楚机器人能不能与人类一样快速地完成这项任务,并取得相反的质量。

    因此蒙佩卢斯和同仁对此停止了测试,他们将Repairnator伪装成人类开发人员,让它可以与人类一较上下,开发放在GitHub(面向软件开发人员的版本控制网站)上的补丁。蒙佩卢斯和同仁说:“Repairnator的关键设计想法是,自动生成修复构建错误的补丁,然后将补丁拿给人类开发人员过目,最终看看那些人类开发人员会不会接受这些补丁,视作代码库的有效贡献。”

    该团队创立了一个名为Luc Esape的GitHub用户,他似乎是他们研讨实验室的一名软件工程师。他们说:“Luc有一张团体材料照片,看起来像是一名初级开发人员,盼望在GitHub上贡献开源代码。”

    顺序员的革命or灾难:机器人在GitHub修复bug、与人不相上下(附论文)

    顺序员的革命or灾难:机器人在GitHub修复bug、与人不相上下(附论文)

    链接:https://github.com/lucesape

    但Luc实践上是伪装的Repairnator。这种诈骗很有必要,由于人类版主往往以不同的视角或标准来评价机器人的任务和人类的任务。蒙佩卢斯和同仁说:“为了测试与人类相竞争的迷信假定,这种伪装必不可少。”他们如今已向相关人员告知了真相。

    该团队停止了两次测试Repairnator。第一趟测试是在2017年2月至12月,事先团队针对14188个GitHub项目的固定列表运转了Repairnator,以寻觅错误。他们说:“我们发现,我们的原型每天可以执行大约30次修复。”

    在此时期,Repairnator剖析了11500多个有缺陷的构建项目。其中,它可以重现3000多个项目中的缺陷。然后它又针对15个项目开发了补丁。

    但是,这些补丁没有一个失掉接受、成为构建项目的一部分,由于Repairnator花了太长的时间来开发,或许编写了无法接受的低质量补丁。

    第二次实验的结果比较成功。这一回,该团队让Luc在2018年1月至6月时期在Travis继续集成效劳上运转。虽然团队没有详细表明他们对Repairnator做了哪些改良,但是在1月12日,该机器人编写了失掉人类版主接受、成为构建项目一部分的补丁。“换句话说,Repairnator第一次可以与人类相竞争。”

    在接上去的六个月里,Repairnator继续编写了人类版主接受的五个补丁。

    这项出色的任务为新一代软件开发奠定了基础。它还提出了一些值得关注的成绩。

    蒙佩卢斯和同仁提到了Repairnator在5月12日为一个名为“eclipse/ditto”的GitHub项目开发的补丁。

    然后,该团队收到了其中一位开发人员发来的下列音讯:“我们只能接受来自签署了Eclipse基金会贡献者容许证协议的用户的兼并央求(pull-request)。”

    这引发了一个顺手的成绩,由于机器人无法实践签署容许证协议。蒙佩卢斯和同仁问道: “谁拥无机器人贡献的代码的知识产权,并承当相应责任:是机器人操作者、机器人实施者还是修复算法设计师?”

    在人类和机器人可以更深化细致地协作之前,必须处置这类成绩。不过蒙佩卢斯和同仁颇为悲观。他们说:“我们以为,Repairnator预示着软件开发的美妙未来,到机遇器人和人类将在软件开发上顺畅协作,甚至通力协作。”

    富兰克林这位以发明性知名的发明家本人若在世的话,一定也会大为惊叹。

    论文《用Repairnator自动修复顺序,编写出与人类不相上下的补丁》

    链接:https://arxiv.org/pdf/1810.05806.pdf

    顺序员的革命or灾难:机器人在GitHub修复bug、与人不相上下(附论文)

    顺序员的革命or灾难:机器人在GitHub修复bug、与人不相上下(附论文)

    (责任编辑:admin)