このセクションでは、DTP のサーバー側の機能について説明します。サーバー側の機能には、アプリケーション開発に関係する解析の収集、処理、およびレポートが含まれます。静的解析、フロー解析、単体テストといったソフトウェア品質アクティビティは Parasoft 静的解析/テスト ツールが実行します。しかし、この構造から DTP Server と Parasoft 静的解析/テスト ツールの間にサーバー/クライアント関係があると考えてはいけません。DTP Server と Parasoft 静的解析/テスト ツールは独立して機能しますが、この 2 つが統合された場合、シームレスなワークフローが形成されます。ソフトウェアの欠陥を効率的に検出して修正できるだけでなく、欠陥の再発を防止する継続的プロセスが促進されます。
このセクションでは、DTP Server の機能を取り上げますが、必要に応じて C++test、Jtest、dotTEST と関連する機能についても言及します。このセクションで説明する DTP と Parasoft 静的解析/テスト ツールの重要な概念は、Parasoft のソリューションがどのように機能するかを理解する上で非常に重要です。
また、DTP と Parasoft 静的解析/テスト ツールがどのように相互に作用して開発テスト ソリューションを形成するのかを理解するには、以下の概念がきわめて需要です。
このセクションの内容:
実行 (DTP Server)
DTP Server の「実行 (run)」 は、Parasoft 静的解析/テスト ツールでの 1 回の実行を表します。「実行」は Parasoft 静的解析/テスト ツールが出力する XML レポートに相当します。
例: 静的解析の事例
"Code Parser" という製品のために 200 万行のコード ベースがあるものとします。コードは "core" と "API" という 2 つのプロジェクトから構成されます。ある実行で "core" に対して静的解析を実行し、別の実行で "API" に対して静的解析を実行した場合、結果は 2 つの「実行」になります。それぞれの実行が、DTP Server に送られる XML レポートを出力します。
技術的な詳細
「実行」は以下の属性によって一意に定義されます。
- 実行時刻
- ビルド ID
- カバレッジ タグ
- Parasoft 静的解析/テスト ツール
- DTP プロジェクト
- テスト コンフィギュレーション
- セッション タグ
- マシン名
- マシン ユーザー
ラン コンフィギュレーション (DTP Server)
DTP Server のラン コンフィギュレーションは、一連の「実行」を表します。Parasoft 静的解析/テスト ツール、DTP プロジェクト、テスト コンフィギュレーション、およびセッション タグが同じ「実行」は、同じラン コンフィギュレーションにグループ化されます。
技術的な詳細
ラン コンフィギュレーションは、以下の属性によって一意に定義されます。
- Parasoft 静的解析/テスト ツール
- DTP プロジェクト
- テスト コンフィギュレーション
- セッション タグ
フィルター (DTP Server)
フィルターは、ラン コンフィギュレーションのグループを表します。
例: 静的解析の事例
あるアプリケーションのために 3 人のユーザーが作業しているものとします。ユーザー A は "core" プロジェクトの静的解析結果だけが必要です。ユーザー B は "API" プロジェクトの結果だけが必要です。ユーザー C は両方のプロジェクトの結果が必要です。
それぞれのユーザーのニーズに対応するために、3 種類のフィルターを設定できます。ユーザー A のためのフィルターは "core" プロジェクト用の 1 つのラン コンフィギュレーションを含みます。ユーザー B ためのフィルターは "API" プロジェクト用の 1 つのラン コンフィギュレーションを含みます。ユーザー C のためのフィルターは両方のラン コンフィギュレーションを含みます。
フィルターを適切に設定するには、ラン コンフィギュレーションを適切に設定しなければなりません。解析を実行する Parasoft 静的解析/テスト ツールだけでなく 3 種類の属性 (DTP プロジェクト、テスト コンフィギュレーション、セッション タグ) によって、ラン コンフィギュレーションが一意に特定されます。
プロジェクト (DTP Server)
プロジェクトは、現在進行中のソフトウェア開発プロジェクトの名前です。
例
3 種類の製品を扱う企業があるものとします。この企業は、それぞれの製品のために別個のプロジェクトを DTP で用意できます。
Parasoft 静的解析/テスト ツールの設定 (.properties ファイル)
プロジェクトは、Parasoft 静的解析/テスト ツール の .properties ファイルの dtp.project
設定で定義されます。.properties ファイルの詳細については、Parasoft 静的解析/テスト ツールのドキュメントを参照してください。
デフォルトの動作
Parasoft 静的解析/テスト ツールの .properties ファイルで指定しない場合、DTP に送られるデータはデフォルト プロジェクトに収集されます。
プロジェクト フィルターとデータ構造の例
以下の図は、DTP プロジェクト、フィルター、ラン コンフィギュレーション、実行の関係を示したものです。
テスト コンフィギュレーション
テスト コンフィギュレーションは、解析の実行中に Parasoft 静的解析/テスト ツールが使用する設定を表します。
例
- 静的解析の事例: [Recommended Rules] テスト コンフィギュレーションを使って、このテスト コンフィギュレーションで指定されたルール セットに対してコードを解析します。
- 単体テストの事例: [Unit Tests] テスト コンフィギュレーションを使って、このテスト コンフィギュレーションに従って単体テストを実行します。
- メトリクスの事例: [Metrics] テスト コンフィギュレーションを使って、このテスト コンフィギュレーションに従ってメトリクス データを収集します。
セッション タグ
セッション タグは、「実行」を表す固有の識別子を表し、類似する「実行」を区別するために使用されます。
Parasoft 静的解析/テスト ツールの設定 (.properties ファイル)
セッション タグは、Parasoft 静的解析/テスト ツール の .properties ファイルの session.tag
設定で定義されます。.properties ファイルの詳細については、Parasoft 静的解析/テスト ツールのドキュメントを参照してください。
デフォルトの動作
Parasoft 静的解析/テスト ツールの .properties ファイルで指定していない場合、以下の属性が使用されます。
${scontrol_branch}-${exec_env}
${scontrol_branch}
変数は、ブランチの名前を指します。
${exec_env}
変数は、実行環境を指します。
例
64-bit Linux 環境でヘッド ブランチとリリース ブランチに対して静的解析を実行する場合、たとえば以下のタグを使用できます。
- ヘッド ブランチ:
session.tag = head-linux_x86_64
- リリース ブランチ:
session.tag = release-linux_x86_64
Linux 環境と Windows 環境で単体テストを実行する場合、たとえば以下のタグを使用できます。
- Linux 環境:
session.tag = linux_x86_64
- Windows 環境:
session.tag = windows_x86_64
- 変数を使っていずれかの環境をキャプチャー:
session.tag=${exec_env}
大規模なコード ベースに対して静的解析を実行する場合に、コード ベース全体に対して 1 回静的解析を実行するのではなく、2 回に実行を分けるものとします。2 回の実行を区別するために、以下の session.tag を手動で設定する必要があります。
- "core" コード ベース:
session.tag=${scontrol_branch}-core
- "API" コード ベース:
session.tag=${scontrol_branch}-API
セッション タグとラン コンフィギュレーション
異なるセッション タグを使用するということは、セッション タグによって、異なるラン コンフィギュレーションに「実行」がグループ化されることを意味します。上記の 1 番目の例では、2 つの異なる環境に対する同じ「実行」を区別するために、2 種類のセッション タグを使用しています。この場合、2 種類のラン コンフィギュレーションが設定されます。
異なるブランチに対する 2 つの「実行」が同じセッション タグを持つ場合 (Parasoft 静的解析/テスト ツール、DTP プロジェクト、テスト コンフィギュレーションが同じ場合)、DTP は 2 つの「実行」を区別せず、同じラン コンフィギュレーションの 2 つの「実行」と解釈します。この場合、2 番目の「実行」は、同じ「実行」の新しいものと見なされます。このようなセッション タグの使用はお勧めできません。
セッション タグ、ラン コンフィギュレーション、およびフィルターを適切に利用して組み合わせることで、1 種類の「実行」 (つまりラン コンフィギュレーション) の結果を参照したり、異なる種類の複数の「実行」の結果を組み合わせて参照したりすることができます。
ビルド
ビルドは、複数のラン コンフィギュレーションにまたがって「実行」をグループ化するために使用されます。ビルドはすべての XML レポートに含まれますが、主に複数の動的解析の実行 (たとえば単体テスト、機能テスト、手動テスト) とカバレッジ実行からデータを集計するために使用されます。
「ビルドが同じレポートは、アプリケーションの同一ビルドに対するテスト結果を表す」ということが前提です。
Parasoft 静的解析/テスト ツールの設定 (.properties ファイル)
セッション タグは、Parasoft 静的解析/テスト ツール の .properties ファイルの build.id
設定で定義されます。.properties ファイルの詳細については、Parasoft 静的解析/テスト ツールのドキュメントを参照してください。
デフォルトの動作
Parasoft 静的解析/テスト ツールの .properties ファイルで指定していない場合、以下の属性が使用されます。
${dtp_project}-date_of_run
${dtp_project}
変数は、dtp.project
設定によって指定された値を指します。「Project (DTP Server)」を参照してください。
例
「Coverage Tag」の例を参照してください。
カバレッジ タグ
カバレッジ タグは、同じビルド ID を持つ「実行」のカバレッジ データを集計するために使用される固有の識別子です。実行ごとに異なるカバレッジ タグを使用すると、たとえば、異なる種類のテスト (自動単体テスト、機能テスト、手動テスト セッション) のカバレッジを 1 つの DTP ダッシュボードに表示できます。カバレッジは、プラクティスごとに個別に表示することも、すべてのテスト プラクティスについて集約して表示することもできます。
Parasoft 静的解析/テスト ツールの設定 (.properties ファイル)
セッション タグは、Parasoft 静的解析/テスト ツール の .properties ファイルの report.coverage.images
設定で定義されます。.properties ファイルの詳細については、Parasoft 静的解析/テスト ツールのドキュメントを参照してください。
デフォルトの動作
Parasoft 静的解析/テスト ツールの .properties ファイルで指定していない場合、以下の属性が使用されます。
${dtp_project}
例: 単体テストの実行とカバレッジの計測
200 万行のコードがあるアプリケーションがあり、単体テストを 3 セットに分割しているとします。単体テストが 3 種類のラン コンフィギュレーションにグループ化されるよう、ラン コンフィギュレーションとフィルターを設定済みです。
各「実行」のビルド ID とカバレッジ タグが同じ場合、単体テストとカバレッジの結果を DTP は適切に集計します。ユーザーは正しいデータを DTP で参照できます。
「実行」が同じ日に実行され、同じ DTP プロジェクトと関連付けられている場合、デフォルトでは、それらの「実行」のビルド ID は同じです。そのため、ほとんどのナイトリー テスト インフラストラクチャでは、このデフォルトのビルド ID 設定を使用することを推奨します。