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

このセクションの内容:

概要

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

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

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

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

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

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

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

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

コマンドラインの設定

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

コマンドラインの実行

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

parasofttestcli -publish -publishteamserver -config "team://xtest-codereview.properties" -resource 
"my_resource"

soatestcli -publish -publishteamserver -config "team://xtest-codereview.properties" -resource
"my_resource" -localsettings C:\tmp\localsettings.properties

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

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

複数の Parasoft 製品をインストールしていて、SOAtest 固有のコマンドではなく、parasofttestcli を使ってテストを実行したい場合、必ず -config の後に製品名を追加し、どの製品のテスト コンフィギュレーションを使用するのかを指定してください。 

たとえば、parasofttestcli を使って SOAtest の [Code Review] チーム テスト コンフィギュレーションを実行するには、次のように指定します。 

parasofttestcli -config "soatest.team://Code Review" -resource "my_resource"

レビューアーへの通知

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

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

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

プロセス

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

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

多くのチームが以下を要求するポリシーを推進したいと考えています:

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

これを達成する方法の 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 ヘッダーの変更を無視するには、次のように入力します: (^ \* .*)|(^ \*$)

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