このセクションでは、コミット前とコミット後の両方のプロセスに適用される全般的なコード レビューの構成オプションについて説明します。

このセクションの内容

コード レビューの設定

各チーム メンバーのコード レビューの設定を行うには、次の操作を行います。

  1. [Parasoft] メニューの [設定] をクリックして [設定] ウィンドウを表示します。
  2. ソース管理をまだ設定していない場合、次の操作を行って設定します。
    1. 設定パネルの左側のペインで [Parasoft] > [スコープと作成者] を選択します。
    2. [ソース管理システムを使ってスコープを計算] チェックボックスをオンにします。
    3. 設定パネルの左側のペインで [Parasoft] > [ソース管理] を選択します。
    4. チームが使用しているソース管理リポジトリを指定します。詳細については「ソース管理リポジトリとの接続」を参照してください。
  3. Team Server をまだ設定していない場合、[設定] ウィンドウの [Parasoft] > [DTP] > [Team Server]で設定します。

    Team Server の構成についての注意事項

    Parasoft ソリューションが Team Server の Named Accounts を使用している場合、Team Server ユーザー アカウントが確実に Team Server の Code Review ディレクトリにアクセスできるようにしてください。適切なパス権限を設定する方法については、『PST 管理者マニュアル』の「Named Accounts」のセクションを参照してください。

  4. (デスクトップ インストールのみ) [Parasoft] > [コード レビュー] を選択し、次の設定を行います。
    • DTP 設定
      設定した DTP サーバーのホスト名が表示されます。ポート番号を変更するには、[デフォルト] チェックボックスをオフにします。
    • 一般的な設定
      • ユーザー名: 現行ユーザーの一意なコード レビュー名を入力します。ここで入力した名前をコード レビュー用テスト コンフィギュレーションで使用します。
      • スキャナー実行中にユーザー補助を表示: のチェックボックスをオンにすると、コード レビューの実行ごとに、タスク識別子を指定したり、コメントを入力したり、特定のレビューアーまたは監督者を入力したりできます。このオプションは、コミット前コード レビューを対象にしたものです。
      • 新規または更新されたレビューを次の間隔で通知: このチェックボックスをオンにすると、コードのレビューが必要な場合または自分が作成したコードがレビューされた場合に、その旨が通知されます。このオプションはオンにすることを推奨します。
      • 完了したタスクを表示: アクティブなタスクだけでなく、完了したタスクもコード レビュー タスク ツリーに表示する場合、このオプションをオンにし、表示するタスクの範囲を指定します。たとえば、過去 1 週間以内に完了したすべてのタスクを表示するには、範囲を「7 日」に設定します。
    • 比較エディター
      • 1つの比較エディターを再利用する: リビジョンを同じエディターに表示するには、このチェックボックスをオンにします。
      • レビューをコミットするときに比較エディターを閉じる: リビジョンをコミットするときに比較エディターを閉じるには、このチェックボックスをオンにします。
      • 構造の変更を表示: 構造の変更を比較エディターに表示するには、このオプションを有効にします。
      • 抑制された部分を表示する: 解析から除外されたコードについての詳細を比較エディターに表示するには、チェックボックスをオンにします。コードを解析から除外する方法については 「差分を表示しないコード部分の指定」を参照してください。
      • Show the newer source on the left | right最も新しいソースを比較エディターのどの位置に表示するかを指定します。
    • 既存プロジェクト中のローカル ソースのオープン
      • ソース管理を使用してローカル ソースを認識: 発見されたソースを Parasoft Test がより良く認識できるようソース管理データを使用したい場合、このオプションを有効にします。
      • ローカル ソースのパスがリモート パスと異なる場合は常に問い合わせなしでオープンする: ローカル ソースのパスとリモート パスが異なる場合に、常にローカル パスを強制的に適用するには、このオプションを有効にします。
      • 問題が作成された後にファイルが変更された場合は警告を表示する: コード レビュー タスクの作成後に現行ソース コードが変更されたためにコード レビュー タスクが古くなってしまった場合、警告が通知されます。
    • 外観: コード レビュー タスク ツリーで使用する外観をカスタマイズできます。また、1 つのファイルに対する複数のリビジョンをマージするかどうかを指定できます。
  5. (デスクトップ インストールのみ) [Parasoft] > [コード レビュー] > [チーム] カテゴリを選択し、次の設定を行います。
    • ワークフロー: 「デフォルト」と「制限付き」のどちらのワークフローを使用するかを選択します。これらのオプションの概要については 「ワークフローの概要」を参照してください。  直接 Team Server で制限付きワークフローを有効にすることができます。プロパティ キー パスとして /usr/{user}/codereview/workflow を使用し、プロパティ値として restrict を使用します。後でデフォルト ワークフローに戻すには、プロパティ値を default に変更します。
    • Team Server から Report Center にタスクをインポート: Team Server 上のフラットなファイルではなく DTP データベースにネットワーク データを格納することでパフォーマンスを最適化します。詳細については 「Team Server から Concerto Report Center データベースへのコード レビュー データのインポート」を参照してください。
    • タスク カテゴリ: レビューワーがコメントを分類するために使用できるカテゴリ リストをカスタマイズできます。


Team Server に保管していたデータの移行

Team Server でのデータの保管は非推奨になりました。Team Server から現在の保管方法 (Report Center) にデータを移行するには、以下の操作を行います。

    1. Web ブラウザーで TCM Data Storage ページを開き、コード レビューに使用した tcm ユーザー アカウントのルート フォルダーに移動します。
    2. codereview サブフォルダーで、storage.type プロパティの値を db.storage.type に設定または変更します。
    3. IDE を再起動します。
    4. ここで説明している設定画面 ( [設定] > [Parasoft] > [コード レビュー] > [チーム] ) で[インポート] ボタンをクリックして、Team Server から Report Center にデータを転送します。

   7.[適用] をクリックして設定を適用します。
   8.[OK] をクリックして設定を保存します。

テスト コンフィギュレーションの構成

テスト コンフィギュレーションは、コード レビューをどのように準備するかを制御します。コミット前プロセスとコミット後プロセスのどちらを採用しているかによって、適切な構成は異なります。 

差分を表示しないコード部分の指定

特定のコード ブロックの差分を比較エディターに表示しないようにするには、次の操作を行います。

  1. 差分の表示を停止するコードの位置に codereview-begin-suppress コメントを追加します。
  2. 差分の表示を再開するコードの位置に codereview-end-suppress コメントを追加します。

なお、デフォルトでは、抑制されたコードはコード レビュー タスクの diff に表示されません (たとえば、抑制されたコードの直前または直後のコード変更をハイライトする diff )。後で抑制されたコードを diff に表示するには、次の操作を行います。 

  1. [Parasoft] メニューの [設定] をクリックして [設定] ウィンドウを表示します。
  2. [Parasoft] カテゴリの [コード レビュー] を選択します。
  3. [抑制された部分を表示する] チェックボックスをオンにします。

抑制コメント内の変更を無視する

コード レビュー スキャンで "codereview-begin-suppress" および "codereview-end-suppress" マーカーの間にある差異を無視するには、[コードレビュー] > [フィルター] タブの [Ignore changes within suppressed blocks] オプションをオンにします。

パブリッシュされない/スキップされたレビューの解決

パブリッシュされないレビュー

[テスト進捗] ビューに「レビューがパブリッシュされなかった」ことがレポートされた場合、これはテスト コンフィギュレーションで定義されていない作成者がいることを表します。

たとえば、次のようにコード レビューの結果がレポートされたものとします。



2 個のファイルがスキャンされて 2 個のリビジョンが承認されています。しかし、パブリッシュするコード レビューがありません。どうしてでしょうか? その理由は、スキャンされたコードは "pietrek" によって変更されていますが、テスト コンフィギュレーションの [コード レビュー] > [作成者] タブには "pietrek" が定義されていないからです。

この問題を修正するには、次の操作を行います。

  1. テスト コンフィギュレーションの [コード レビュー] タブの [作成者] タブで作成者を追加します。
  2. レビューアーに、この作成者のすべてのコードを割り当てるか、またはこの作成者のリビジョンが発生したコード部分を割り当てます。
  3. テスト コンフィギュレーションを再び実行します。

スキップされたレビュー

未定のユーザーあるいは一致しない作成者パスがあり、テスト結果で「レビューがスキップされた」ことがレポートされた場合、これは変更されたコードがレビューアーに適切に割り当てられていないことを表します。 

たとえば、次のようにコード レビューの結果がレポートされたものとします。



そして、レポートに次のように情報が出力されたものとします。



この問題を解決するには、テスト コンフィギュレーションを変更してレビューアーにコードを割り当てます。コードの一部か、または作成者が変更したすべてのコードをレビューアーに割り当てます。

コード レビュー パッケージはどのように作成されるか

コード レビュー パッケージは、作成者の変更 (コミット) に基づいて定義されます。

  • コミット後コード レビューでは、自動スキャンが毎日実行されるたびに変更が収集されます。
  • コミット前コード レビューでは、どの変更をパッケージに含めるかをコード作成者が指定します。

作成者にマップされたレビューアーと監督者は、そのパッケージに割り当てられます。パッケージ中のコードが、他のレビューアーまたは監督者がレビュー担当になっているプロジェクト領域からのものである場合、そのレビューアー/監督者もパッケージに割り当てられます。

作成されたパッケージにおいて、作成者についてもプロジェクト領域についてもレビュー担当のレビューアー/監督者が存在しない場合、そのパッケージに対するレビュー タスクは生成されません。

パス (領域) ごとに個別のパッケージは作成されません。そのため、異なるパスに割り当てられた複数のレビューアーが、同じパッケージに対して作業する場合もあります。その場合は、自分がどのパスをレビューするかをレビューアー同士で決定するべきです。そうすることによって、複数のレビューアーの割り当て領域にタスクが点在するかもしれない場合に、タスクの整合性が保たれます。レビューアーが自分の割り当て領域にパッケージ中の複数のファイルが含まれるため、どのファイルが自分の担当か知りたい場合、この情報を [コード レビュー] ビューで得ることができます。 

Team Server から DTP Report Center データベースへのコード レビュー データのインポート

Team Server 上のフラットなファイルよりも、DTP Report Center データベースにネットワーク データを格納する方が効率的です。Team Server ストレージは下位互換性のためにサポートされていますが、Report Center ストレージの使用を強く推奨します。

Team Server から Report Center にコード レビュー データを移行するには、次の操作を行います。

  1. [Parasoft] メニューの [設定] をクリックします。
  2. [Parasoft] > [コード レビュー] > [チーム] を選択します。
  3. [インポート] ボタンをクリックし、表示されたダイアログで適切に情報を入力します。すべてのコード レビュー データまたは指定したデータ範囲のパッケージだけをインポートできます。既存の項目がインポートされる場合、その項目は複製されます。

1 個のコード レビュー パッケージを Team Server から DTP データベースにインポートするのに必要な時間は、平均で約 30 秒です。1 日に約 2880 個のパッケージをインポートできます。

  • No labels