コードレビューにおける発見容易性に基づくバグの分析

西口絢人 (1351082)


本研究の目的は,コードレビューにおける個人差を分析し,バグの発見に必要な技術を明らかにすることである. 27個のバグを埋め込んだC言語のソースコードを題材として,69名の被験者によるコードレビュー実験を行い,被験者がそれぞれどのバグを発見したのかを記録した. また,各バグを発見する手順について,プログラミングのエキスパートにインタビューを行い,バグ発見に影響する要因を分類した. そして,発見率によってバグを上位,中位,下位の3つのグループに分けて,バグの発見に影響する要因のグループ間の違いを分析した.

分析の結果,優秀なレビューアは発見が困難でないバグを見逃さない傾向がみられることがわかった. また,変数名の命名規則が適切である,コメントが詳細に記述されているなどの要素はバグの発見を容易にする要因となることが分かった. 一方で,制御フローから離れたコードの理解が必要である,機能の不足による新規コードの追加が必要であるといった要素はバグの発見を困難にする要因となっていることが分かった.

これらの結果から,発見の容易なバグを見逃さないためには,変数名の命名規則やコメントに着目してプログラムを読むことが重要であると考えられる. また,発見の困難なバグを見つけるためには,制御フローに沿ってコードを読み進めるのみならず,変数の値の変化に着目してプログラムを読み進めることや, 機能の不足の有無を確認するために仕様書を熟読することが重要であると考えられる.