コードレビュー

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

コードレビュー: Code review)は、ソフトウェア開発工程で見過ごされた誤りを検出・修正するためにソースコードの体系的な検査(査読)を行うこと。ソフトウェア品質を高めると同時に開発スキルの向上を図ることができる。

概要[編集]

コードレビューで典型的なセキュリティホールを検出することがよくあり(書式文字列問題競合状態メモリリークバッファオーバーランなど)、結果としてセキュリティを高める効果がある。オンラインのソフトウェアリポジトリ(匿名のCVSなど)を使うと、複数の個人が共同でコードレビューを行うことができる。

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

効果[編集]

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

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

[編集]

コードレビューがプロジェクトの質を向上させた例は数々ある。例えば、次のようなケースである。

批判[編集]

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

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

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


関連項目[編集]

外部リンク[編集]