Facebook は、ソーシャル ネットワーク上を流れるコンテンツを監視するために人員を雇用する必要があるかもしれないが、モバイル アプリのコード内のバグを探し出すにはソフトウェアで十分であるようだ。
情報収集ビジネスを展開する同社は木曜日、人工知能を活用してプログラミングエラーの修正案を提示し、ソフトウェアエンジニアが承認して本番環境に導入できるデバッグツール「SapFix」を発表したが、リリースはしなかった。
この名称は、Facebookが以前発表した大規模システムのバグを発見するツール「Sapienz」に由来しています。バグが発見されると、SapFixはそれらの修復を試みます。
Facebookのソフトウェアエンジニア3人(Yue Jia氏、Ke Mao氏、Mark Harman氏)はブログ記事で、バグハンティングは同社のオープンソース静的解析ツールであるSapienzとInferから始まると説明しています。コードクラッシュの原因が特定されると、これらのツールは結果をSapFixに渡し、SapFixはパッチ生成のためのいくつかの戦略を決定します。
バグを引き起こした過去のコミットを完全にまたは部分的に元に戻したり、社内のソフトウェアエンジニアが過去に提出したコードパッチから派生したテンプレート化された修正ライブラリから修正を取得したりします。これらのオプションが機能しない場合、SapFixはクラッシュの原因となった文の抽象構文木に小さなコード変更を加え、問題の改善を試みます。
まさにフォーチュンクッキー!Facebookがサーバーの一つに5000ドル相当のコマンドインジェクション脆弱性を発見
続きを読む
Jia、Mao、Harman によれば、現在のプロトタイプ形式の SapFix はすでに Facebook の Android アプリへのアップデートの展開を加速するために使用されている。
「私たちの知る限り、自動化されたエンドツーエンドのテストと修復を備えた機械生成の修正が、Facebook規模のコードベースに導入されたのはこれが初めてです」と研究者らは述べている。「これはAIハイブリッドにとって重要なマイルストーンであり、検索ベースのソフトウェアエンジニアリングがソフトウェア開発における摩擦を軽減できることのさらなる証拠となります。」
コードのクリーンアップを他のソフトウェアに委託したいと考えているのはFacebookだけではありません。例えばGitHubは、自動化されたセキュリティ上の欠陥検出ツールを、プルリクエスト形式で修正を送信できるツールに変える予定だと発表しています。そして、自動化されたバグ修正は長年、学術研究者の関心を集めてきました。
3人によると、SapienzとSapFixは、もう少しテストを重ねた後、最終的にはオープンソースプロジェクトとして公開される予定だ。彼らは、これらのツールがクラッシュを検知するだけでなく、AIによる支援を通じてソフトウェアの速度と応答性を向上させることを期待している。
今週初め、Facebookは、巨大なソーシャルネットワークを悩ませている偽のニュースや憎悪的な発言がないかチェックできるように、共有された画像からテキストを抽出するために開発した機械学習ツールの詳細を少しだけ公開した。®