コードレビュー

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

コードレビュー: Code review)は、ソフトウェア開発工程で見過ごされた誤りを検出・修正することを目的としてソースコードの体系的な検査(査読)を行う作業のこと。

概要[編集]

プログラマのスキルによらず、書き下ろされたばかりのソースコードは潜在的にバグセキュリティホール書式文字列問題競合状態メモリリークバッファオーバーランなど)などの不具合が入り込んでいることが多い。ソフトウェア品質を高めるためにはこのような不具合を除去していく必要がある。この不具合を発見し修正するための1つの方法が、ソースコードの査読を行うこと、すなわちコードレビューである。

オンラインのソフトウェアリポジトリ(匿名のCVSなど)を使うと、複数の個人が共同でコードレビューを行うことができる。

コードレビューを自動化するソフトウェアを使うと、ソフトウェア開発者の代わりに典型的なセキュリティホールを見つける作業を行ってくれる。そのようなソフトウェアの例として、FlawfinderRough Auditing Tool for Security(RATS) などがある。

効果[編集]

コードレビューを実施することにより以下のような効果が期待できる。

  • レビューで発見された同様・類似バグについてレビュー参加者内での共通認識を図ることができる。
  • バグの隠蔽を減少させることが期待できる。
  • レビューを行うことへの意識により、人に見せるコードを書くようになるため可読性が向上する。
  • コーディング規約等に対する各自の認識のずれを修正することができる。

ただし、その性質から開発工程上の問題点も多く、批判もある(#批判の項目を参照)。

[編集]

コードレビューがプロジェクトの質を向上させた例として、次のようなケースがある。

批判[編集]

コードレビューよりもコーディングにあたっての規則や方法論を整備する方が重要であるとの見方もある。エクストリーム・プログラミング(XP)では、ペアプログラミングというプラクティスを推奨しており、コーディングの最中に同時にコードレビューを行うようになっている。XP の信奉者は、リファクタリングやコードの前にテストを書くといったXPのプラクティスによってレビュー/書き直しが不要なコードを作成することでソフトウェア開発がスピードアップすると主張する。

DOD-STD-2167A では、コードレビューは「労多く益少なし」としている。Lausen と Younessi(IEEE Software, July/Aug 1998, pg 69-73)では、行単位のコードレビューはほとんど価値がないと結論付けている。問題点を除去するという意味では、プログラマに行単位のコードレビューをさせることは、他の手法よりも生産性が低い。

コードレビューにより一定時間拘束されるため、担当作業の遅延が発生する可能性があるとの批判もある。

関連項目[編集]

外部リンク[編集]