Gitのコミットログからバグのありそうなソースコードを追う

Pocket

Gitのコミットログからバグのありそうなソースコードを追う。そんな仕組みがあります。Rubyで動く単純な実装としては、Bugspotsがあります。

その仕組みとは

「複数回Bugfixされ続けているコードにはバグがありがち」という研究結果を元に、特定ファイルに対するbugfixのcommit数からコード全体から見た重みをスコアリングする仕組みです。詳しい理論的背景はBug Prediction at Googleという記事に書かれています。

なのでBugspotsのコード(scanner.rb)を見ても分かる通り、Gitのコミットログからそれっぽいメッセージを拾ってスコアに投入するような感じになっています。

日本語でコミットログか書かれているプロジェクトでは、この正規表現部分を「修正」だとか、そんな感じの言葉にしておく必要がありますね。

Well, we actually have a great, authoritative record of where code has been requiring fixes: our bug tracker and our source control commit log! The research indicates that predicting bugs from the source history works very well, so we decided to deploy it at Google.

単純ながら効果的な仕組みではあるようです。全体的なコードレビュー時にレビューの的を絞るときに、使えそうですね。

Bugspots