このセクションでは、コミット後コード レビュー スキャンを構成する方法について説明します。コミット後コード レビュー スキャンは、ソース管理システムをスキャンし、チェックインされたコードの中から新規作成または変更されたコードを特定し、そのコードを担当レビューアーと一致させます。 

このセクションの内容

設定の概要

コミット後コード レビューを構成するには、次の操作が必要です。

コミット後コード レビューのためのテスト コンフィギュレーション設定

コミット後プロセスのために、コード レビュー用テスト コンフィギュレーションを毎晩サーバー上で実行し、ソース管理システムをスキャンします。このテスト コンフィギュレーションは、チェックインされたコードの中から新規作成または変更されたコードを特定し、そのコードを担当レビューアーと一致させます。 

コード レビューを実行する前に、デフォルトのコード レビュー用テスト コンフィギュレーションを確認してカスタマイズする必要があります。

コードの変更を検出してレビューの準備をするテスト コンフィギュレーションを作成するには、次の操作を行います。 

  1. [Parasoft]メニューの [テスト コンフィギュレーション] をクリックするか、[テストの実行] ツールバー ボタンのドロップダウン メニューで [テスト コンフィギュレーション] をクリックしてテスト コンフィギュレーション ダイアログを開きます。
  2. 既存テスト コンフィギュレーション (たとえば [ビルトイン] > [Code Review] > [Post-Commit] など) を複製するか、新規にテスト コンフィギュレーションを作成します。
  3. [スコープ] タブで [指定した期間に追加または変更されたファイルだけをテスト] チェックボックスをオンにします。この設定は、どのファイルがコード レビューのために準備されているかを決定します。たとえば、毎日コード レビュー スキャナーを実行する予定の場合、[日前] フィールドに 1 を入力します。 毎週実行する予定であれば、 7 を入力します。
  4. [スコープ] タブで [ファイル フィルター] > [パス オプション] の設定を確認し、必要があれば変更します。これらのテスト コンフィギュレーション設定の詳細については、「テスト コンフィギュレーションの設定 」を参照してください。
  5. [共通] タブで [ソース管理システムからプロジェクトを更新] チェックボックスをオンにします。
  6. 固有のセッション タグをコード レビュー スキャンで使用するようレポート設定を行っていない場合、[共通] タブに移動して [セッション タグのオーバーライド] を有効にし、定義済みの識別子から選択するか、独自の識別子を指定します。このタグはこのテスト コンフィギュレーションによるすべてのコード レビューに割り当てられます。
  7. [コード レビュー] タブをクリックします。
    1. [コード レビュー スキャナーを有効化] チェックボックスをオンにします。
    2. すべての利用可能なチーム スキャナーからのコード レビューの結果をレポートに含めるには、[詳細なレポートを生成] チェックボックスをオンにします。このチェックボックスをオフにすると、レポートには、現行のテスト コンフィギュレーションで指定したスキャナー識別子の結果だけが含まれます。
    3. このテスト コンフィギュレーションを実行した後にコード レビュー タスクを自動的に公開 (アップロード) したい場合、[レビューを自動公開] チェックボックスをオンにします。夜間の実行で -publish オプションを使用する場合、この設定に関係なくタスクはパブリッシュされます。
    4. [優先順位] ドロップダウン リストから優先順位を選択します。この優先順位は、このテスト コンフィギュレーションを使って作成されるすべてのコード レビュー タスクに割り当てられます。
  8. [作成者]、[レビューアー]、[監督者]、および [フィルター] タブで、コード レビューをどのように割り当てるかを定義します。レビューアーと監督者は、特定の作成者またはプロジェクト領域に割り当てることができます。
  9. (オプション) [フィルター] タブで必要に応じて以下のオプションを変更します。
  10. [適用] ボタンをクリックして新しいテスト コンフィギュレーションを保存します。
  11. プロジェクトに対してこのテスト コンフィギュレーションをテストしてから、テスト コンフィギュレーションを実行します。

レビューのためにコードを準備する - スキャナーの自動実行

コミット後コード レビューの場合、Parasoft Test は通常コード レビュー用テスト コンフィギュレーションはコマンドライン モードで定期的に (たとえば 24 時間ごとに) 自動実行されるように設定されます。テストはチームのコード レビュー用テスト コンフィギュレーションを実行します。テストを実行するたびに、コード レビュー スキャナーはソース管理リポジトリをスキャンして新規/変更のコードを探し、発見したコードをレビュー用に準備します。

コマンドラインの設定

  1. プロジェクトをまだ設定していない場合、Parasoft Test GUI でプロジェクトを設定します。
  2. (任意) 必要に応じてローカル設定ファイル (オプション ファイル) を使って、GUI で指定された設定を上書きします。 詳細は「ローカル設定の指定」を参照してください。

コマンドラインの実行

コマンドラインからコード レビュー スキャナーを実行するには、次のようなコマンドを使用します。

cpptestcli -publishteamserver -config "team://xtest-codereview.properties" -resource"my_resource" -localsettings C:\tm\localsettings.properties

上記の例では次のオプションを使用しています。

ローカル設定ファイル (オプション ファイル) を使って GUI での指定を上書きする場合、 -localsettings オプションを使用します。例:

cpptestcli -publishteamserver -config "team://xtest-codereview.properties" -resource "my_resource"  -localsettings C:\tm\localsettings.properties

レビューアーへの通知

コード レビュー スキャナーの実行のたびに、コードのレビューの準備ができたことが担当レビューアーに通知されます。通知があったら、レビューアーは 「レビューアー:コードの変更のレビュー」にあるようにレビューを行うことができます。

レビューが終了したら、作成者は 「作成者:レビュー コメントの検証と対応」にあるように対応できます。

コミット前とコミット後の両方のコード スキャン 

プロセス

開発チームによっては、コミット前のプロセスによってレビューのためにコードをサブミットするだけでなく、次の理由から定期的にサーバー モードで (製品のコマンドライン インターフェイスから) コミット後のスキャンを実行したい場合があります。

コミット前プロセスに加えてコミット後のスキャンを実行する場合、次の処理を行うことができます。 

多くのチームでは以下を要求するポリシーを持っています。

  • すべてのコードの変更をレビューする
  • コードをレビューしてからでなければチェックインしてはならない

これを達成する方法の 1 つは、ハイブリッド コード レビュー プロセスを構築することです。ハイブリッド コード レビュー プロセスでは、コミット前コード レビューでレビュー用にコードをサブミットしてから、コミット後モードを使用してこのプロセスが守られているかを検証します。 

コミット後スキャンは、対応するコミット前タスクが「完了」としてマークされていない場合、コード レビュー タスクをレポートします。[フィルター] タブの [コミット前検索範囲 (日)] オプションを変更すると、対応するコミット前タスクを決定する期間をカスタマイズできます。デフォルトでは、コミット後スキャンから 7 日前までさかのぼります。 

マネージャーを監督者として設定できます。リリースまたはビルドの前にすべてのコードがレビューされたかどうかを確認するには、1) コミット後タスクがレポートされていないこと、2) 監督者 E-mail にコミット後プロセスからの保留中のレビュー アイテムが表示されていないことを確認します。  

コミット前とコミット後が混在するコード レビュー プロセスにおいて、コード レビュー スキャナーが「コミット前コード レビューでレポートされた変更点」と「ソース管理システムにコミットされた変更点」とを比較することにも注意してください。 

ただし、レビューを必要としない細かな変更がソース管理システムにコミットされることもあります。たとえば次のような CVS ヘッダーなどです。

/* * $RCSfile: MyFile.txt,v $ * $Revision: 1.13 $ * * Comments: * * (C) Copyright Parasoft Corporation 1996. All rights reserved. * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF Parasoft * The copyright notice above does not evidence any * actual or intended publication of such source code. * * Revision 1.2 2006/02/03 10:07:28 dan * class repackaged * * Revision 1.1 2005/09/18 09:26:24 mark * new file */

そのような場合は、夜間のコミット後スキャンのためのテスト コンフィギュレーションで、自動生成コードを表す正規表現を指定するべきです。この設定は、[コード レビュー] タブの [フィルター] タブの [コミット前とコミット後のマッチング] オプションで指定することができます。

たとえば、上記の例の CVS ヘッダーの変更を無視するには、次のように入力します。 (^ \* .*)|(^ \*$)

また、レビューする必要がないその他の変更点を照合して無視するようテスト コンフィギュレーションを設定することもできます。たとえば、開発チームはドキュメントの変更をレビューすることなく直接ソース管理システムにコミットすることができます。