コードレビュー
出典: フリー百科事典『ウィキペディア(Wikipedia)』
コードレビュー(英: Code review)とは、ソフトウェア開発工程で見過ごされた誤りを検出・修正するためにソースコードの体系的な検査(査読)を行うこと。ソフトウェア品質を高めると同時に開発スキルの向上を図ることができる。
目次 |
[編集] 概要
コードレビューで典型的なセキュリティホールを検出することがよくあり(書式文字列問題、競合状態、メモリリーク、バッファオーバーランなど)、結果としてセキュリティを高める効果がある。オンラインのソフトウェアリポジトリ(匿名のCVSなど)を使うと、複数の個人が共同でコードレビューを行うことができる。
コードレビューを自動化するソフトウェアを使うと、ソフトウェア開発者の代わりに典型的なセキュリティホールを見つける作業を行ってくれる。そのようなソフトウェアの例として、Flawfinder や Rough Auditing Tool for Security(RATS) などがある。
[編集] 例
コードレビューがプロジェクトの質を向上させた例は数々ある。例えば、次のようなケースである。
- Blender3d - 三次元グラフィックスデザイン用パッケージであり、オープンソース開発コミュニティが向上させた。
- Linuxカーネル - 当初リーナス・トーバルズの趣味的なプロジェクトだったが、現在では世界中の多数のプログラマがレビューや改良に関わっている。
[編集] 批判
コードレビューよりもコーディングにあたっての規則や方法論を整備する方が重要であるとの見方もある。エクストリーム・プログラミング(XP)では、ペアプログラミングというプラクティスを推奨しており、コーディングの最中に同時にコードレビューを行うようになっている。XP の信奉者は、リファクタリングやコードの前にテストを書くといったXPのプラクティスによってレビュー/書き直しが不要なコードを作成することでソフトウェア開発がスピードアップすると主張する。
DOD-STD-2167A では、コードレビューは「労多く益少なし」としている。Lausen と Younessi(IEEE Software, July/Aug 1998, pg 69-73)では、行単位のコードレビューはほとんど価値がないと結論付けている。問題点を除去するという意味では、プログラマに行単位のコードレビューをさせることは、他の手法よりも生産性が低い。