新野淳一(本記事は「Publickey」より転載)
新野淳一(本記事は「Publickey」より転載)
ITジャーナリスト/Publickeyブロガー。大学でUNIXを学び、株式会社アスキーに入社。データベースのテクニカルサポート、月刊アスキーNT編集部 副編集長などを経て1998年退社、フリーランスライターに。2000年、株式会社アットマーク・アイティ設立に参画、オンラインメディア部門の役員として2007年にIPOを実現、2008年に退社。再びフリーランスとして独立し、2009年にブログメディアPublickeyを開始。現在に至る。
導入されるのはカナダのゲームメーカーである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の開発にも協力