分析リュック・エサペは二重生活を送っている。フランスのリール大学にあるスパイラル研究チームのソフトウェアエンジニアである彼は、別名「Repairnator(リペアネーター)」と呼ばれている。
Repairnator には、継続的インテグレーション中にバグを修正できるという強力な機能があります。継続的インテグレーションとは、コードリポジトリに流入するコミットに対してサーバーが継続的に自動的にコードをコンパイルし、ビルドを作成することで、対応するアプリケーションの健全性を確保するプロセスです。
Repairnatorは2017年1月にバグ修正に取り組み始め、コツを掴みながら断続的に作業を続けてきました。このバグ自警団にとって栄光の瞬間は、2018年1月12日13時8分に訪れました。GeoWebCacheというプロジェクトのビルドが10分前に失敗したことを知ったのです。
10分後、Repairnatorはすぐに動き出し、パッチを作成しました。14時10分、プロジェクトの責任者である開発者がRepairnatorのプルリクエストを承認し、マージしました。「おかしいな、もう修正したと思ったんだけど…もしかしたら別の場所で修正したのかもしれない。パッチをありがとう!」
Repairnator は人間を装ったコンピュータ コードであるため、この感謝は認められませんでした。
偏見の問題
コンピューター サイエンスの専門家である Martin Monperrus、Simon Urli、Thomas Durieux、Matias Martinez、Benoit Baudry、Lionel Seinturier は、最近発表された研究論文「Repairnator による自動プログラム修復における人間と競合するパッチ」の中で、Repairnator が初めて人間と競合するようになった瞬間について説明しています。
研究者たちは、Repairnator が他の人よりも先に高品質なパッチを作成できる必要があると言っている。このボットは Java で動作し、Maven ツールチェーンを使用して、GitHub でホストされ Travis CI を使用しているオープンソース プロジェクトで動作する。
コンピュータ科学者が人間のアイデンティティ Luc Esape を作成した理由は、「人間のエンジニアは、たとえ厳密に同一であったとしても、ボットからの貢献を他の人間からの貢献ほど容易に受け入れない」ためである、と彼らは主張している。
人間は機械に対して偏見を持っており、他人の失敗を許容し、ボットに高い基準を設定する傾向があると研究者は指摘する。Repairnatorのコード貢献がその価値に基づいて評価されるためには、秘密のアイデンティティが必要とされた。そして今、研究者たちは倫理的な問題として、各プルリクエストにおいてボットの本質を明らかにしている。
Repairnator はビルドの修正に重点を置くという点でユニークだが、開発者らによれば、Facebook の SapFix など、ソフトウェア開発用のインテリジェント ボットの範囲に当てはまるという。
スウェーデン、ストックホルムのKTH王立工科大学のソフトウェア技術教授、マーティン・モンペルス氏によると、Repairnatorは人間の開発者に受け入れられ、それぞれのコードベースに統合された5つのパッチを作成したという。
「これは、自動プログラム修復に関するソフトウェアエンジニアリング研究における、人間との競争力における画期的な出来事だ」と彼は火曜日のブログ投稿で述べた。
書類仕事は致命的
Monperrusによると、過去にもバグ修正に関する研究があり、自動システムがコードのバグを修正できることが示されています。しかし、それらのバグはすべて人間の開発者によって過去に修正されており、自動システムにテンプレートを提供していました。
パッチ火曜日は大変だと思った?それなら、このOracleの大規模アドバイザリは避けた方がいいだろう
続きを読む
Monperrus氏によると、Repairnatorは開発者がコミットするたびにCIビルドを入力として受け取ります。出力は、失敗したビルドを修正するためのパッチ(存在する場合)と、将来のプログラム修正研究のためのデータで構成されます。プロジェクトチームのメンバーは、人間の開発者への配慮としてRepairnatorの作業を精査するため、ボットは不適切な貢献で誰かの時間を無駄にすることはありません。
この狭い分野では人間の開発者と互角に渡り合えることを証明したにもかかわらず、Repairnatorは法的には対等ではない。Monperrusの情報によると、この科学者のボットはEclipse FoundationのDittoプロジェクトに適したパッチを作成したが、プロジェクトの開発者の一人が、プルリクエストはEclipse Foundation貢献者ライセンス契約に署名したユーザーからのみ受け付けられると述べたため、拒否されたという。
「ボットは物理的にも道徳的にもライセンス契約に署名できず、おそらくそうする権利もないだろうという点に、私たちは困惑しました」とモンペルス氏は述べた。「ボットの貢献に対する知的財産権と責任は、ロボットのオペレーター、ボットの実装者、それとも修復アルゴリズムの設計者でしょうか?これは、Repairnatorプロジェクトによって明らかにされた興味深い疑問の一つです。」®