MozillaがFirefoxのバグ発見と修正にAI支援ツールを導入。過去のバグを学習することで、バグがありそうなコードを判別するだけでなく修正案も提示可能
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も以前、バグ予測アルゴリズムを公開したことがありました。また、それを応用したバグ予測のためのツールも公開しています。
あわせて読みたい
次世代データベースエンジンの研究基盤を「オーダーメイドホスティングサービス」で提供するデータドック。サーバの部品調達と組み立て動作検証も担当[PR]
≪前の記事
AWS、Java 11対応の独自OpenJDK「Amazon Corretto 11」プレビュー版を公開