オルタナティブ・ブログ > 森崎修司の「どうやってはかるの?」 >

計測できそうでできない多くのこと。エンピリカル(実証的)アプローチで。

Fault-proneモジュール予測

»

バグが含まれていそうなソースコードモジュールを予測することをfault-proneモジュール予測と呼びます。予測の単位であるモジュールはソースコードファイルであったり、メソッド、クラスであったりします。過去の傾向に照らし合わせて、予測する方法が一般的です。

たとえば、規模が大きいファイル、メソッド、クラスにバグが含まれているという傾向から予測したり、特定の(一般には複雑なロジックを持つために実現が難しい)機能を実現するソースコードという傾向から予測したりします。ここ(本ブログの過去エントリ)でも紹介しましたが、過去に何度も改変されているとバグを含む可能性が高いという経験則を使っているものもあります。改変担当者による予測もあります。

過去にバグが含まれていたモジュールとソースコードメトリクス等の特徴を統計モデル等を使って学習させ、それ以外のソースコードにバグが含まれているかどうかを学習したモデルを使って予測する方法もあります。上の方法と比較すると予測精度が高まることが確認されています。ソースコードメトリクスは規模、複雑さ、他との結合の度合い(他への依存性)といった特徴を数値化したものです。

もっと簡単に「ここは怪しいなぁ」という感触もfault-proneモジュール予測となり得ます。そのような感触を含め、ご自身のプロジェクトでは何をヒントにfault-proneモジュール予測をされていますか?

森崎

Comment(0)