MozillaがFirefoxのバグ発見と修正にAI支援ツールを導入。過去のバグを学習することで、バグがありそうなコードを判別するだけでなく修正案も提示可能

2019年2月20日

Mozillaは、Firefoxの開発にAIを用いたバグ発見支援ツールを導入することでバグの発生を減らし、開発者の生産性を向上させる試みを始めると発表しましたUbisoftの発表)。

導入されるのはカナダのゲームメーカーであるUbisoftが開発した「Clever-Commit」。もともとUbisoftが自社の大規模なゲーム開発においてバグを減らすために開発した、機械学習をベースにしたツールです。Ubisoftは昨年、このツールのプロトタイプを「Commit Assistant」として発表していました。

メトリクスとコードの類似性の2段階で判別

Clever-Commitを開発したUbisoftの説明によると、Clever-Commitは「CLEVER」(Combining Levels of Bug Prevention and Resolution techniques)と呼ばれる2段階のアルゴリズムを用いてコードに対して行われる変更をチェックし、そこにバグが含まれているかどうか、そして含まれている場合には修正案も提示可能な能力を備えています。

CLEVERの1段階目では、これまでのバグ発見テクニックでもよく用いられてきたメトリクスをベースにしたモデルを用いて、コードの追加や修正に対してバグが含まれている可能性を判別します。

2段階目では、1段階目でバグが含まれていそうだと判別されたコードに対して、過去にバグを含んでいたコードから学習した内容を基に、過去のバグを含んだコードとの類似性を確認。バグが含まれていそうかどうかの判別をより正確に行います。

この2段階のアルゴリズムによって、バグを含んでいないにもかかわらずバグの可能性があると判断してしまう偽陽性の判断を減らす効果があり、開発者による無駄なバグ調査を減らすことができるとのこと。

さらに過去にバグを含んでいたコードがどう修正されたかは分かっているため、類似性のある新たなコードに対しても推奨する修正案が提示でき、開発者がバグを分析、発見し修正する作業効率を高められるとのことです。

Ubisoftの12のシステムでこのCLEVERによる検出を用いたところ、79%の正確さでバグを含むリスクのあるコミットを検出し、66.7%のケースに対して修正方法を推奨できたと報告されています。

MozillaはClever-Commitの開発にも協力

Webブラウザはますます多機能になっており、コードの規模も拡大し、JavaScriptやC++、Rustなどの複数の言語によって開発されることで複雑さも増してきています。

MozillaではこのClover-Commitとバグトラッキングシステムおよびバージョンコントロールを組み合わせ、過去のバグなどを機械学習にかけたうえで、まずコードレビューに導入するとしています。

そしてよい結果が得られれば最終的にFirefoxの開発フロー全体に組み込んでいくことで、数百時間も費やしているバグの分析や修正を効率化できるとの期待を示しています。

またMozillaはその開発経験を基にClever-Commitの開発への協力も行っていくとしています。

関連記事

Googleも以前、バグ予測アルゴリズムを公開したことがありました。また、それを応用したバグ予測のためのツールも公開しています。

あわせて読みたい

ソフトウェアテスト・品質 プログラミング言語 Mozilla




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本