コードインスペクションとは何か?実施方法とメリット、デメリットを解説

コードインスペクションとは

コードインスペクションとは、ソフトウェア開発におけるレビュー手法の1つで、ソースコードをチェックして不具合や問題点がないかを確認する作業のことです。
ソフトウェアのテストは動的テスト・静的テストの2つに分類され、コードインスペクションは静的テストに該当します。

コーディングが済んだプログラムのソースコードを実行せずに規定通りに書かれているか第三者が確認します。
開発初期のエラーを検出して修正することで、後の段階におけるエラーの検出を回避することができます。

コードインスペクションの実施方法

コードインスペクションは、次の5つのステップで実施されます。

コードインスペクションを実施するチームメンバーを任命する

コードインスペクションに必要なメンバーを集めます。
役割は次のとおりです。

  • 開発者(Author):最初にコードを開発した人物です。
  • モデレーター(Moderator):コードインスペクションを進行します。開発者とは別の人物がなります。
  • リーダー(Reader):コードを読み上げます。これによりチームメンバーがエラーを識別できるようになります。
  • レコーダー(Recorder):コードインスペクションの手順と、チームが指摘した欠陥をレポートにまとめます。

ソフトウェアアプリケーションの目的を説明する

インスペクションを開始するにあたり、最初にキックオフミーティングを開催します。
開発者はチームメンバーに対してソフトウェア開発プロジェクトの目的を説明します。
これによってチームメンバーは開発者が何を達成しようとしていたかを理解できます。
モデレーターはインスペクションの対象となるソース成果物と文書や評価方針、チェックリストなどをチームメンバーに配布します。
チームメンバーは次回のミーティングまでに各自で対象成果物を査読します。

コードインスペクションのチェックリストの項目をすべて実施する

ミーティングではモデレーターが作成したステップに従って実際にコードインスペクションを実施します。
リーダーは、チームメンバーがコードを評価できるようコードを詳細に読み上げます。
レコーダーは、チームが見つけたエラーを文書に記録し、後で参照できるようにします。
チームはチェックリストを使用して進捗状況を確認し、コードインスペクションの結果を提供します。
開発者がチームメンバーからの指摘を採用すれば欠陥として認定されます。

インスペクションの結果から得られたフィードバックを適用する

開発者は結果レポートを参照して、チームメンバーが提案した指示に従ってエラーが発生した場所のソースコードを修正する方法を判断します。
インスペクションチームは、開発者がソースコードを修正する期限を設定することも可能です。
期限を設けることでプロジェクトを迅速に完了させ、クライアントの納期に間に合わせます。

フォローアップミーティングを開催して修正を確認する

モデレーターは、開発者がコードに加えた修正を分析する会議を開催します。
会議では開発者の作業を検査報告書が義務付けた指示と比較します。
修正されたコードが問題ないと認められた場合、インスペクションチームは開発者が検証を適切に完了したことを宣言します。

コードインスペクションを実施するメリット

ソフトウェアプログラムを開発する際にコードインスペクションを実行するメリットには次のようなものがあります。

  • 製品の品質を高められます。
  • コードを声に出してレビューすることで問題を効果的に特定できます。
  • 開発段階での問題解決が可能になるため、リリース後に更新を提供する時間とリソースを節約できます。
  • 今後生じる可能性のあるエラーを防ぐことができます。

コードインスペクションを実施するデメリット

コードインスペクションには次のようなデメリットもあります。

  • 開発者以外の人材リソースが必要です。
  • コードを完全に確認するにはさらに時間がかかる場合があります。コードインスペクションにかかる時間はプログラムの複雑さやインスペクションチームの生産性などによって異なります。
  • レポートの結果が予想よりも広範囲にわたる場合、コードの開発者はインスペクションチームからのフィードバックに抵抗する可能性があります。

参考