【プログラミング】GitHub上でバグ修正競争、人間の開発者上回るボットが登場
■ このスレッドは過去ログ倉庫に格納されています
ソフトウェアのバグを見つけて質の高い修正パッチを高速かつ自動的に生成するボットが作れたら、開発者にとってこの上ない朗報であろう。スウェーデン王立工科大学の研究チームは、「リペアネーター」と呼ぶボットを開発し、GitHub上で修正パッチの作成を人間と競うテストを実施した。
「この世で死と税金のほかに、確実と言えるものは何もない」。米国の有名な政治家であり、発明家、物理学者であったベンジャミン・フランクリンは1789年にそう記した。フランクリンが現代の世に生きていたら、その2つに「ソフトウェアのバグ」を付け加えたことだろう。
現代のコンピューター・プログラムは複雑さを増しているため、開発過程でバグが生じるのは避けようがない。そのため、バグを見つけ、修正パッチを書くプロセスは、どんなソフトウェア開発のスケジュールにも普通に組み込まれている。トラヴィス(Travis)など、その手のサービスを開発者に提供している企業も実際にある。
今日、ストックホルムにあるスウェーデン王立工科大学のマーティン・モンペラス教授らの研究のおかげで、開発者たちの夢が実現している。モンペラス教授らは、バグを見つけ、質の高いパッチを書くのを人間の開発者と競えるようなボットをついに作り出したのだ。
研究チームが「リペアネーター(Repairnator)」と名付けたボットは、人間の開発者と修正部分の発見を競うテストにおいて成功を収めた。「プログラムの自動修正に関するソフトウェア工学の研究において、人間に匹敵するボットを作るためのマイルストーンとなるでしょう」とチームは述べる。
パッチを書くプロセスが自動化できることは、コンピューター科学者の間では長く知られている。だが、ボットが人間と同じくらい速さと品質でパッチを書けるかどうかは明らかではない。
https://www.technologyreview.jp/s/109502/a-bot-disguised-as-a-human-software-developer-fixes-bugs/ >>2
ちゃんと質問してくれるんじゃない?
で、「違う、そうじゃない」
というと、ちゃんと意向に沿った修正が行われるとか 単純ミスなら直せるタイプのものもあるだろうけど、
取捨選択が必要な修正変更もあるけどな。 そのうち仕様書だけでプログラミングしてくれるAIができるだろうな 生産性が上がるのか、程度の低い技術者が淘汰されるのか 並列スレッドのタイミングで1/1000程度の頻度で発生するバグの修正を頼む... デバッグして適切なコードを提示してくれるなら有難いけど、コーダーが失業するかもしれんね。 ビルドエラーが発生する行はコメントアウト。これでとりあえず動くものはできる。しかし当然要求仕様は満たせない。 バグを修正するのか、パッチを作成するのか良くわからない文章だな >>1
こうして考えるのを諦めた人類は滅びていくのであった >>14
それ最低限の時間サンドボックスで動かすしかないんじゃないか?
(メモリ使用量、使用アドレス 、I/Oのタイミングとか) そもそもその動作がバグかどうかってどう判定してるんだろう? GitHub上の全てのバグ修正の内容を学習させたら最強のAI作れないの? >>10
「仕様がいい加減なためにコーディング不可能です」なんてエラーが大量発生w
そして、仕様書をデバッグするプログラムが。 C/C++ならメモリーリークとか、インデックスオーバーフローとかの類は
既に自動的に見つけてくれるデバッガーがあるよね。 仕様なんて人間が自分の狭い知見のなかで考えてるものだから進めていくと周辺との矛盾が出まくって破綻する。
いずれ人間の生命活動はもとよりこの世の森羅万象の動きをフレームワーク化したライブラリが開発されるので自分の関係するところだけ上書きすればよいし、どんな風に上書きすればよいかも全てライブラリ化されている。
当然、まだ世の中に出ていない新しい概念やビジネスモデルなどもライブラリ化されている。
まあ、このプラットフォームを考えるのは人間には無理なのでAIが開発することになる。
すべてのプログラマーが今みたいな非生産的な作業から解放された素晴らしい時代になっている。 ベンザミンの一説を出せばアホな記事がかっこよくなる的なミエミエ戦法かよ プログラマーの給与を下げたいのだろう。そんで危機感煽る作戦。 OSI第8層を解決してくれるボットがスカイネットなのか >>24
結局そういうのってPythonで書けば十数行で済むものを
何十ページも使って記述するはめになるよな
しかも最終的にはそれをプログラムに再翻訳 >>24
それはもうソフトを作るところまでできるじゃん。 GitHubはマイクロソフト傘下
マイクロソフトのパッチの品質上げてくれ 仕様書を精密に書く必要があり、それそのものがプログラムと変わらなかったりな if flg = 1
syori.A();
syori.B(); >>41
何を言ってる全くわからないのでギフハブの暗号通信スレだと思うσ(^◇^;) これが出来たらコーダー土方が開放されて
もっと高度な設計に移動だな
なんちゃって仕様を書くだけの上司が下克上で要らなくなるww
コードも読めない設計者は仕事無くなる LD SP,0h
LD A,0h
LD H,A
LD L,A
L:PUSH A
DEC HL
JP NZ,L
これ、バグだと見られるだろうか // よくわからんけど、ちょっとwait
// なぜか2回やるとうまくいく 素朴なミスを修正して回るのは可能だろうし有用だろうな この記事を見ると、バグ修正プログラムをテストするため、
バグ発見の能力を人間と競わせるため、あらかじめ人為的にバグ部分を仕込んだ
ソースを解析させて良い成績を出した、って気がするけど実際どうなんだろ?
既に広く使われてるようなプログラムのソースを食わせて、
これまで誰も気付かなかったバグを発見、指摘してくれないと
さほど凄いと思えないな。 バグを直せるなら
プログラム自体を作る事も可能になるのでは?
そうしたらプログラマーにとっては朗報ではなく失業の危機なのでは? 周辺丸ごと消してしまえばバグもない!
みたいな対応だったりして >>53
仕様確定できればプログラムは誰がどうやって書いてもいい バグの9割は仕様通りのコードが書けない事に由来し、
そのうちの8割は仕様では明記されていないが、常識的に配慮すべき事を
忘れた事によって発生する。
仕様の間違いに起因するケースでは、バグどころではなく、周辺プログラム
巻き込んでプロジェクトの全滅を引き起こす可能性がある。 >>58
>>59
頭の悪いレスしないほうが良いぞ バックドアをAIが探してクラックする時代がくるのか なんで実験のことプルリク送るときにかかずに後出ししたんだろ 記事と実績の温度差が大きすぎる
しかも、一年以上前のだし 共産党AIがバックドアを仕込んでいくんじゃないの? 簡単な不具合ならともかく
コレは絶対に無理
断言できる >>1
つまり・・・
「人間に絶対服従」
↓
AI「バグ発見、パッチプログラム作成」
↓
「人間を絶対服従」
こうか!! >>73
で、HAL9000が暴走開始するわけですね リペアネーター「お?またバグめっけ、、あれ、、?このコードは自分にもあったような、、」
リペアネーター「俺はバグじゃない 俺はバグじゃない、、バグじゃないんだ、、」 >>73
その場合解釈可能な回答がえられるままで
「論理破綻した記述です」
「○○が未定義または必要な粒度を持ちません」
などエラーを吐きながら無限待機 タイポだけいちいちPR投げてくるバカにイラッとしてたんだわ
こいつのおかげでイラつきはだいぶ軽減されそうだな
早よ使いたいわ >>10
完全な仕様書はプログラムと同義だと何度言ったら >>79
プログラムソースを読ませると仕様書を出力してくれる、
というプログラムも有用そうだね。
プログラムが出したプログラムの仕様書をプログラマが読んで
「あれ?」と思った部分がプログラムミスってことで。
元の仕様で指定されるべきなのに漏れていた「あるべき動作」に
気付くヒントになるかも知れんし。 完璧な仕様書はプログラムと等価だと何度言えば…
良いプログラマは、少なくともコーディング中は、仕様書の文字に書かれた事が
すべて頭に入っている事。そして仕様書には書かれていないが常識的に考慮が
必要な事柄を、何のヒントも無しに当たり前にコードにしていく。その言語(ライブ
ラリ)特有の「不定動作」を避けたり、業務的にあり得ない事象に気が付いたり。
これらの能力が求められる。
完璧な仕様書とは、良いプログラマの行う後者の事象を、全て文字列化したものだ。 >>79
こうゆうの作って言うたら要件定義からプログラムまで全部こなすAI
近い将来実現するだろうな >>2
バグと誤読されるような仕様は淘汰されて
美しいコードだけが残れば良い なんか昔あったな。
自動プログラミングを実現するために仕様を厳密に記載するための言語を定義して仕様を書いたらプログラムが出来上がったという話が。 >>85
富士通辺りがやってたね。
特殊な書き方を覚えなきゃいけなくて、不評だったとか聞いたことがある。
今ならもう少し自然語で書いても解釈してくれそうだね。 ■ このスレッドは過去ログ倉庫に格納されています