ITパスポート試験 用語辞典
コードレビュー【Code Review】
ソフトウェア開発の工程の1つで、見過ごされた誤りを検出・修正するためにソースコードの体系的な検査を行うこと。ソフトウェア品質を高めると同時に要員の開発スキルの向上を図ることができる。
ソースコードが正しく作成されているかどうかを検証するためにテストを行うが、その前にソースコードをコードレビューしてブラッシュアップすることにより、問題の何割かを事前に除去しておくことができる。
ソースコードが正しく作成されているかどうかを検証するためにテストを行うが、その前にソースコードをコードレビューしてブラッシュアップすることにより、問題の何割かを事前に除去しておくことができる。
- 分野:
- マネジメント系 » システム開発技術 » システム開発技術
- 重要度:
(Wikipedia コードレビューより)
コードレビュー(Code review)は、ソフトウェア開発工程で見過ごされた誤りを検出・修正するためにソースコードの体系的な検査(査読)を行うこと。ソフトウェア品質を高めると同時に開発スキルの向上を図ることができる。
概要
コードレビューで典型的なセキュリティホールを検出することがよくあり(書式文字列問題、競合状態、メモリリーク、バッファオーバーランなど)、結果としてセキュリティを高める効果がある。オンラインのソフトウェアリポジトリ(匿名のCVSなど)を使うと、複数の個人が共同でコードレビューを行うことができる。
コードレビューを自動化するソフトウェアを使うと、ソフトウェア開発者の代わりに典型的なセキュリティホールを見つける作業を行ってくれる。そのようなソフトウェアの例として、 や (RATS) などがある。
効果
コードレビューを実施することにより以下のような効果が期待できる。
- レビューで発見された同様・類似バグについてレビュー参加者内での共通認識を図ることができる。
- バグの隠蔽を減少させることが期待できる。
- レビューを行うことへの意識により、人に見せるコードを書くようになるため可読性が向上する。
- コーディング規約等に対する各自の認識のずれを修正することができる。
例
コードレビューがプロジェクトの質を向上させた例は数々ある。例えば、次のようなケースである。
- Blender3d - 三次元グラフィックスデザイン用パッケージであり、オープンソース開発コミュニティが向上させた。
- Linuxカーネル - 当初リーナス・トーバルズの趣味的なプロジェクトだったが、現在では世界中の多数のプログラマがレビューや改良に関わっている。
批判
コードレビューよりもコーディングにあたっての規則や方法論を整備する方が重要であるとの見方もある。エクストリーム・プログラミング(XP)では、ペアプログラミングというプラクティスを推奨しており、コーディングの最中に同時にコードレビューを行うようになっている。XP の信奉者は、リファクタリングやコードの前にテストを書くといったXPのプラクティスによってレビュー/書き直しが不要なコードを作成することでソフトウェア開発がスピードアップすると主張する。
コードレビューにより一定時間拘束されるため、担当作業の遅延が発生する可能性があるとの批判もある。
「システム開発技術」に属する用語
- 品質特性
- 外部設計
- 内部設計
- コーディング
- コンパイラ
- ホワイトボックステスト
- デバッグ
- コードレビュー
- 単体テスト
- 結合テスト
- システムテスト
- 運用テスト
- ブラックボックステスト
- 回帰テスト
- 受入れテスト
- ソフトウェア導入
- ソフトウェア保守
- ファンクションポイント法
- 類推見積法
- プログラムステップ法
- 標準タスク法
「マネジメント系」の他のカテゴリ
このページのWikipediaよりの記事は、ウィキペディアの「コードレビュー」(改訂履歴)の記事を複製、再配布したものにあたり、このページ内の該当部分はクリエイティブ・コモンズ 表示 - 継承 3.0 非移植 ライセンスの下 に提供されています。