このセクションでは、C++testに付属の RuleWizard ツールを使って独自のユーザー定義ルールを作成する方法について説明します。
このセクションの内容 :
C++test の静的解析で重要なことは、使用する静的解析ルールをテスト コンフィギュレーションで設定できるだけでなく、静的解析ルール自体もカスタマイズしたり新規作成できる点です。
C++test には多彩なルールが用意されています。しかし、コーディング スタイルやアプリケーションの性質などによって、ユーザーがニーズに合わせて独自にルールを変更したり新規にルールを作成したい場合もあります。したがって、 ルールのカスタマイズ方法およびチーム メンバーへのデプロイ方法を知っておくことが重要です。
C++test には次の 2 種類のルールがあります。
一部の C++test ルールでは、パラメーターを指定することができます。ルール パラメーターを指定することで、ルールの動作をカスタマイズできます。パラメーターを指定できるルールは、「ラジオボタン付きの魔法使いの帽子のアイコン」でテスト コンフィギュレーションの [静的] タブの [ルール ツリー] タブに表示されます。
利用できるパラメーターについての詳細は、ルールの説明中に記述されています。ルールの説明を参照するには、ルールのノードを右クリックしてショートカット メニューの [ルール ドキュメントの参照] をクリックします。
ルール パラメーターを編集するには、次の操作を行います。
たとえばユーザー指定のリーク定義を探す「バグ探偵」ルールなど、複数のバージョンのパラメータライズド ルールを作成するには、ルールのクローンを作成して各ルール インスタンスをパラメータライズします。詳細については 「ルール マッピングの指定」を参照してください。 |
C++test のパターン ベース ルールは、 RuleWizard というツールを使ってカスタマイズすることができます。C++test のルールは、RuleWizard にロードして必要に応じて変更できる物理的ファイルです。ビルトイン ルールは C++test のインストール先ディレクトリ下にあります。
カスタマイズ可能なルールは、テスト コンフィギュレーションのルール ツリーで次のアイコンでマークされます。
C++test のビルトイン ルールはそのままにすることを強く推奨します。ビルトイン ルール自体を変更するのではなく、ビルトイン ルールを複製し、複製したルールを変更してください。
RuleWizard を使ってルールをカスタマイズするには、次の操作を行います。
上記のすべてのステップは C++test のメニューから実行することができます。実際にファイルを操作する必要はありません。 C++test は上記のステップですべてのルール コンポーネントを完全に管理できます。
RuleWizard は、ルールを作成したりカスタマイズしたりするためのツールです。RuleWizard を使用すると、簡単にビルトイン ルールを変更したりユーザー定義ルールを新規に作成したりできます。
RuleWizard では、フロー チャートのようにルールを表現してルールをグラフィカルに作成することも、ルール違反のサンプル コードを使ってルールを自動的に作成することもできます。
RuleWizard を表示するには、次の操作を行います。
RuleWizard GUI が表示されます。ルールの変更と作成およびユーザー定義ルールを有効にする方法については、『RuleWizard ユーザーズ ガイド』を参照してください。『RuleWizard ユーザーズ ガイド』を表示するには、RuleWizard GUI で [Help] メニューの [Documentation] をクリックします。 なお、PDF 版の『RuleWizard ユーザーズ ガイド』 については Parasoft Test インストール ディレクトリの下を参照してください。
ユーザー定義ルールを静的解析で使用するには、C++test にデプロイする必要があります。推奨する方法は、Team Server を利用したデプロイです。一般に、Parasoft インフラストラクチャのデプロイは、主要コンポーネントとして Team Server を利用します。C++test は指定ポートを介して Team Server に自動的に接続します。Team Server との接続を設定するには、[Parasoft] メニューの [設定] をクリックし、左側のリストから [Team Server] を選択します。詳細については「Connecting to Team Server 」を参照してください。
Team Server を使わずにユーザー定義ルールをデプロイすることは通常可能ですが、Team Server を利用した場合と較べて、デプロイの管理が著しく難しくなります。チームでユーザー定義ルールをデプロイする必要がある場合は Team Server を使用することを強く推奨します。
Team Server を使ってチームにユーザー定義ルールをデプロイする方法については「テストコンフィギュレーションとルールの設定」 を参照してください。
C++test にインポートするルールには、それぞれ固有のルール ID が必要です。同じ ID のルールを複数インポートしてはいけません。詳細については 「ルール ID の重複についての注意」を参照してください。 ルール ID を使ってルール カテゴリを指定するには、次のフォーマットを使用します。 |
「テストコンフィギュレーションとルールの設定」を参照してください。
RuleWizard で作成したユーザー定義ルールを C++test で使用するには、ユーザー定義ルールをデプロイする必要があります。
ここでは、Team Server を使用していないチームでユーザー定義ルールを使用する方法について説明します。Team Server を使用している場合、「テストコンフィギュレーションとルールの設定 」を参照してください。 |
Team Server を使用していない場合にユーザー定義ルールをデプロイするには、次の操作を行います。
C++test はルール ID によってルールを認識します。すでにビルトイン、ユーザー、またはチーム カテゴリに存在するルールと同じ ID を持つルールがある場合、ルールはチーム/ユーザー定義/ビルトインの優先順位で使用されます。そのため、ビルトイン ルールと同じ ID を持つルールをインポートした場合、このルールは [設定] ウィンドウで設定されたデフォルト ルール ディレクトリに物理的に置かれ、ルール構成は同じ ID のビルトイン ルールではなく、インポートされたルールを使用します。ルールを Team Server にアップロードした場合、Team Server 上のルールは、同じ ID のビルトイン ルールだけでなく、同じ ID のユーザー定義ルールも覆い隠します。