このセクションでは、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 設定を使用することを推奨します。


  • No labels