内部的なコーディング ポリシーを実装するために、組織が自動静的解析ツールを導入することはよくあります。通常そのようなコーディング ポリシーはコーディング規約とベスト プラクティスをまとめた文書に基づいており、独自の方法で問題と重要度を分類しています。
既存の文書の内容については開発グループがすでにレビュー済みです。そのため、既存の文書のルールの説明と ID を利用することが、ほとんどの場合に静的解析ツールで最も確実にコーディング ポリシーを実装する方法です。「実際に使用/共有するルール」を「既存のコーディング ポリシー文書の内容」に正確に一致させることができるよう、C++testには、ルール ID やルール名をカスタマイズしたり、新規にルール カテゴリを作成するための使いやすい機能が用意されています。
このマッピングは、ルール マップ ファイルによって実装されます。ルール マップ ファイルは、ローカルに使用、インポート、エクスポートすることも、Team Server にデプロイしてチーム全体で使用することもできます。
このセクションの内容 :
ルール マッピングの指定
ルール マッピングを指定するには、次の操作を行います。
- [Parasoft] メニューの [テスト コンフィギュレーション] をクリックします。
- 任意のテスト コンフィギュレーションを選択します。
- [静的] > [ルール ツリー] タブをクリックします。
- [ルール マップ ファイルの編集] ボタンをクリックし、[新規] ボタンをクリックします。
- ルール マッピングを入力します。
- ルール ID 、ヘッダー、重要度レベルを変更するには [ルール] タブでエントリを追加します。1 つのマップ エントリは、指定のビルトイン ルールのカテゴリ ID または重要度レベルを変更する 1 つのルール マップを定義します。CATEGORY-ID の形式で現在のルール ID ( たとえば SECURITY-01 など) を [オリジナル ID] 列に入力した後、必用な変更を加えます。
- ルール ID を変更するには、[マップされた ID] 列にルール ID を入力します。
- 重要度を変更するには、[重要度] ドロップダウン リストから重要度を選択します。
ルール名を変更するには、[ヘッダー] 列にルール名を入力します。
警告
ルール ID を変更すると、新しいカテゴリが自動的に作成されます。その場合、下記の説明にあるように、[カテゴリ] タブで、新しいカテゴリごとに詳細を指定する必要があります。 詳細を指定しないと、ルールは UNKNOWN カテゴリに追加されます。
ルールのクローンを作成するには ルールのクローンを作成して、たとえば異なるパラメータライズド ルールを作成できます。クローンを作成するには、[クローン] タブでエントリを追加します。クローンの作成は、1 つのルール インスタンスを複数の ルール ID にマップするのに役立ちます。 現在のルール ID ( たとえば BD.MISC-TRANS など) を[オリジナル ID] 列に入力し、クローン後のルール ID (たとえば ACME-TRANSなど) を [クローン ID] 列に入力します。重要度レベルを指定するには、ドロップダウン リストからレベルを選択します。
注意: クローンが適用されるのは、たとえば「バグ探偵」ルールなど、RuleWizard で編集できないルールだけです。RuleWizard で編集できるルールを複製するには、「既存ルールのカスタマイズと新規ルールの作成 」の説明にある方法で複製してください。
- 新しいルール カテゴリを追加するには [カテゴリ] タブで [新規] ボタンをクリックします。[カテゴリ ID] 列にカテゴリの ID を入力し、[カテゴリ詳細] 列に簡単な説明を入力します。
GUI で入力したルール マッピングは、rulemap.xml
という単純なテキスト ファイルとしてユーザー定義のルール フォルダーに保存されます。ユーザー定義のルール フォルダーは [Parasoft] > [設定] から指定できます。
ヒント
ルール ツリーでルールを右クリックし、[複製] をクリックします。複製されたルールがルール ツリーに追加されます。必要に応じてルールをカスタマイズできます。
ルール マッピングの共有
Team Server による共有
Team Server を使用している場合にルールの変更をチーム メンバー間で共有するには、Team Server に rulemap.xml ファイルをアップロードします。
- Team Server にファイルをアップロードする方法については、「テストコンフィギュレーションとルールの設定 」を参照してください。
ローカルの rulemap.xml
ファイルとチームの rulemap.xml
ファイルの両方にマシンがアクセスする場合、チームのrulemap.xml
ファイルが優先されます。
エクスポート/インポートによる共有
Team Server がない場合でも、ルール マッピングをエクスポート/インポートしてルール マッピングを共有できます。
ルール マッピングをエクスポートするには、次の操作を行います。
- テスト コンフィギュレーションを開き、[静的] > [ルール ツリー] タブの [ルール マップ ファイルの編集] ボタンをクリックします。
- [エクスポート] ボタンをクリックし、ルール マップ ファイルの保存先を指定します。
- [OK] をクリックします。
ルール マッピングをインポートするには、次の操作を行います。
- テスト コンフィギュレーションを開き、[静的] タブ > [ルール ツリー] タブの [ルール マップ ファイルの編集] ボタンをクリックします。
- [インポート] ボタンをクリックし、ルール マップ ファイルを選択します。
- [OK] をクリックします。