このトピックでは、Parasoft アプリケーション カバレッジ ワークフローの一部として SOAtest を使用する方法について説明します。アプリケーション カバレッジ ソリューションの使用に関する完全な情報については、「Collecting Coverage for Web Applications」を参照してください。
はじめに
Parasoft アプリケーション カバレッジ ソリューションを使用すると、実行中のアプリケーションに対してテストを実行しながら、アプリケーションのコード カバレッジを測定できます。カバレッジは、実行中の単一のアプリケーションから、または複数のバックエンド サービスで構成されるアプリケーションから収集できます (同じテスト ケースの実行中に、すべてのバックエンド サービスからカバレッジを収集できます)。これにより、既存のテストスイートの有効性を評価し、追加のテストが必要な箇所を判断し、アプリケーションの進化に合わせてより効率的にテストを実行することができます。SOAtest for Java/dotNET に付属のカバレッジ エージェントを利用してアプリケーション カバレッジを収集できます。これにより、テストの実行中にアプリケーションを監視できます。
アプリケーション カバレッジは、静的および動的カバレッジ データを収集して DTP にアップロードして表示することによって取得されます。
- 静的カバレッジ データは、アプリケーションで使用できるすべてのソース コードの説明です。
- 静的カバレッジ ファイルは、Jtest または dotTEST を使用してプロジェクトのソース コードを分析するか (推奨される方法)、SOAtest に付属のカバレッジ ツールを使用してアプリケーション バイナリを分析することによって作成できます。
- 静的カバレッジ ファイルは、それを作成したツール (つまり、Jtest/dotTEST またはカバレッジ ツール) によって DTP にアップロードされます。
- 動的 (ランタイム) データは、テストの実行時にカバレッジ エージェントによって収集されるカバレッジ データです。テストの実行時にどのコードがカバーされているかを測定します。
- ランタイム カバレッジ データは SOAtest によって収集され、DTP にアップロードされます。
- データは DTP 上で自動的にマージされます。
次のステップでは、SOAtest によるアプリケーション カバレッジのワークフローを説明します。
- 静的カバレッジ ファイルを生成します。アプリケーションのソース コードにアクセスできる場合は、静的カバレッジ ファイルを Jtest/dotTEST によって .xml または .data 形式で生成する必要があります。この方法には他の方法に比べていくつかの利点があるためです。アプリケーションのソース コードにアクセスできない場合は、SOAtest に付属のカバレッジ ツールを使用してアプリケーション バイナリを分析することによって、静的カバレッジ ファイルを生成することもできます。詳細については、以下の「静的カバレッジ ファイルの生成」を参照してください。
- カバレッジ エージェントをテスト対象アプリケーション (AUT) に接続します。カバレッジ エージェントは SOAtest に同梱されており、テスト対象アプリケーションの実行中に実行されるコードを監視できます。
- カバレッジ エージェントに接続してランタイム カバレッジを収集し、データを DTP にアップロードするように SOAtest を構成します。
- 自動化プロセスの一部として SOAtest を使用してテストを実行します。
- カバレッジ エクスプローラーで DTP 上のアプリケーション カバレッジを確認します。
SOAtest 2023.1 以降では、DTP にアップロードされるカバレッジ レポートは DTP 2023.1 以降に送信する必要があります。以前のバージョンの DTP は、SOAtest 2023.1 以降によって生成されたカバレッジ レポートを適切に処理できません。
静的カバレッジ ファイルの生成
アプリケーションのソース コードにアクセスできる場合は、可能であれば Jtest または dotTEST を使用して .xml または .data 形式で静的カバレッジ ファイルを生成する必要があります。この方法には、ユーザー クラス、メソッド、行に関するメタデータが含まれること、DTP でカバレッジ結果を表示するときにカバレッジ データで注釈が付けられたソース コードの表示をサポートすることなど、いくつかの利点があります。また、この方法で生成された静的カバレッジはより正確な分析を提供するため、テスト影響度分析 も向上します。テストは、変更されたメソッドを通過する場合にのみ、影響を受けるとフラグ付けされます。 アプリケーションバイナリから生成された静的カバレッジで TIA を使用することもできますが、TIA の結果はより広範囲になり (分析はクラスレベルで行われるため)、一部のテストは、影響を受ける必要がないにもかかわらず、影響を受けるとフラグ付けされる可能性があります。これらのツールを使用して静的カバレッジ ファイルを生成する方法の詳細については、docs.parasoft.com にある Jtest または dotTEST のユーザー ガイドを参照してください。
SOAtest に付属のカバレッジ ツールを使用して静的カバレッジ ファイルを生成することもできますが、これには上記のソース コードを使用する利点がありません。これを行うには、SOAtest とは独立してツールを実行し、実行時にバイナリ、フィルター、およびその他のプロパティを渡す必要があります (下記のサンプル プロパティ ファイルを参照)。Parabank に対して Jtest カバレッジ ツール (jtestcov) を使用した例を以下に示します。
java -jar jtestcov.jar -app c:/<PATH_TO_APPLICATION>/parabank.war -include com/parasoft/parabank/** -settings c:/<PATH_TO_LICENSE_FILE>/settings.properties
# === DTP SERVER SETTINGS ===
# Specifies URL of the DTP server in the form https://host[:port][/context-path]
#dtp.url=https://localhost:8443
# Specifies user name for DTP server authentication.
#dtp.user=admin
# Specifies password for DTP server authentication - use jtestcli -encodepass <PASSWORD> to encrypt the password, if needed.
#dtp.password=admin
# Specifies name of the DTP project - this settings is optional.
#dtp.project=[DTP Project Name]
# === DTP REPORTING ===
# Enables reporting test results to DTP server - be sure to configure DTP server settings.
#report.dtp.publish=true
# Specifies a build identifier used to label results. It may be unique for each build
# but may also label more than one test sessions that were executed during a specified build.
#build.id=${dtp_project}-yyyy-MM-dd
# Specifies a tag which represents an unique identifier for the run, used to distinguish it from similar runs.
# It could be constructed as minimal combination of following variables that will make it unique or specified manually.
# e.g. ${config_name}-${project_module}-${scontrol_branch}-${exec_env}
#session.tag=[tag]
# Specifies a set of tags that will be used to create coverage images in DTP server.
# Coverage images allow you to track different types of coverage, such as coverage for unit, functional, manual tests and others.
# There is a set of predefined tags that will be automatically recognized by DTP, see the examples below.
# You can also specify other tags that will be used to create coverage images.
#report.coverage.images=${dtp_project}
#report.coverage.images=${dtp_project};${dtp_project}_Unit Test
#report.coverage.images=${dtp_project};${dtp_project}_Functional Test
#report.coverage.images=${dtp_project};${dtp_project}_Manual Test
# === CONSOLE VERBOSITY LEVEL ===
# Increases console verbosity level to high.
#console.verbosity.level=high
包含と除外に関する注意事項
包含と除外の定義は、システムの処理量を制御する上で重要な部分であり、静的カバレッジファイルの生成時間に大きな影響を与える可能性があります。多くの場合、サードパーティライブラリコードのコードカバレッジを測定する必要はないため、これらの設定を使用してコードカバレッジをプロジェクトコードに限定することをお勧めします。包含と除外は、インストゥルメントするクラスを指定するパターンのカンマ区切りリストとして表現する必要があります。以下のワイルド カードをサポートします。
* はゼロ個以上の文字に一致します** は複数のディレクトリ レベルに一致します
次の例では、com.myapp.data パッケージのすべてのクラスと、com.myapp.common で始まるパッケージおよびサブ パッケージのすべてのクラスがインストゥルメントされます。
-include com/myapp/data/*,com/myapp/common/**
次の例では、com.myapp.transport パッケージのすべてのクラスと、com.myapp.autogen で始まるパッケージおよびサブ パッケージのすべてのクラスがインストゥルメントから除外されます。
-exclude com/myapp/transport/*,com/myapp/autogen/**
開発部門以外でアプリケーションバイナリを扱っていて、適切な include/exclude 設定がわからない場合は、開発部門に連絡して、正しいパターンを使用しているかを確認してください。通常、com.myapp.** のような会社コードをパッケージ化するための標準パターンがあり、適切な設定を判断するのに役立ちます。
テスト対象アプリケーションのカバレッジ設定
SOAtest でカバレッジの収集を開始する前に、Parasoft dotTEST または Parasoft Jtest を使用して、テスト対象アプリケーション (AUT) を設定する必要があります。処理の概要を以下に示します。 詳しい手順については、docs.parasoft.com で Jtest または dotTEST ユーザー ガイドを参照してください。予期しない問題を回避するために、SOAtest、dotTEST、Jtest のバージョンが同期していることを確認してください。
- (オプション) カバレッジ エージェントのオプションを設定して、カバレッジ エージェントをカスタマイズします。この手順は、AUT と同時に対話している複数のユーザーのカバレッジ情報を収集する場合に必要です。
- カバレッジ エージェントを AUT に接続します。
カバレッジ エージェントの構成
アプリケーション サーバーには通常、複数のアプリケーションが含まれています。さらに、共通のサーバー クラスやアプリケーション ライブラリをインストゥルメントする必要はありません。エージェントはアプリケーションのソース コードのカバレッジを収集するだけで済みます。すべてのクラスをインストゥルメントするには時間がかかりすぎます。このため、カバレッジ エージェントの範囲を適切に設定することが非常に重要です。Jtest と dotTEST のカバレッジ エージェントがあります。
Jtest カバレッジ エージェント
agent.properties のプロパティを変更し、-javaagent 引数にプロパティを渡すことにより、Jtest のカバレッジ エージェントを設定できます。エージェントはいくつかのパラメーターをサポートしていますが ( 「カバレッジ エージェントのパラメーター」を参照)、デフォルト設定の構成はほとんどの場合に適しています。
jtest.agent.serverEnabled=true jtest.agent.includes=com/myapp/data,com/myapp/common/** jtest.agent.excludes=com/myapp/transport/*,com/myapp/autogen/**
カバレッジ エージェント パラメーター
次の表に、エージェントに設定できるすべてのプロパティを示します。
jtest.agent.runtimeData | エージェントが実行時に収集するカバレッジ データを保存するアプリケーション サーバー上の場所を指定します。次の例では、
|
|---|---|
jtest.agent.includes | インストゥルメントするクラスを指定するパターンのカンマ区切りリスト。以下のワイルド カードをサポートします。
次の例では、
|
jtest.agent.excludes | インストゥルメントから除外するクラスを指定するパターンのカンマ区切りリスト。以下のワイルド カードをサポートします。
次の例では、
|
jtest.agent.autostart | 自動ランタイム データ収集を有効/無効にします。デフォルトは true です。 |
jtest.agent.port | エージェント通信ポートを設定します。デフォルトは 8050です。 |
jtest.agent.debug | コンソールへの詳細な出力を有効/無効にします。デフォルトは false です。 |
jtest.agent.enableMultiuserCoverage | 複数のユーザーの Web アプリケーション カバレッジの収集を有効/無効にします。デフォルトは |
jtest.agent.autoloadMultiuserLibs | jtest.agent.enableMultiuserCoverage が true に設定されている場合に、マルチユーザー ライブラリ (OpenTelemetry javaagent) の自動読み込みを有効/無効にします。デフォルト値は true です。 |
jtest.agent.serverEnabled | エージェントをアクティブ化します。 |
jtest.agent.enableJacoco | エージェントが JaCoCo エンジンを使用してカバレッジを収集できるようにします。デフォルトは false です。 |
jtest.agent.appLocationIncludes | コード変更によって影響を受けた手動テストを判別するために CTP が使用するアプリケーション ファイルの場所を指定する、カンマ区切りのパス パターンのリスト。以下のワイルド カードをサポートします。
|
jtest.agent.appLocationExcludes | jtest.agest.appLocationIncludes で指定された場所内にあるアプリケーション ファイルの場所を指定するパス パターンのカンマ区切りリストです。ただし、CTP がコード変更の影響を受けた手動テストを判別する際には考慮する必要はありません。この方法でファイルを除外すると、ファイルの変更を分析するために必要な時間を大幅に短縮できます。以下のワイルド カードをサポートします。
|
プロパティを設定したら、アプリケーション サーバーの起動時に -javaagent 引数を追加して、エージェントをアタッチし、エージェント設定ファイルを含めます。
-javaagent:'/path/to/agent.jar'=settings='/path/to/agent.properties',runtimeData='/path/to/runtime_coverage'
次の例では、catalina.sh (Linux) または catalina.bat (Windows) スクリプトの先頭に JAVA_OPTS 変数を使用して、エージェントを Tomcat サーバーに接続しています。
if [ "$1" = "start" -o "$1" = "run" ]; then JAVA_OPTS='-javaagent:"/home/TIA/test_impact_analysis/integration/coverage/agent.jar"=settings="/home/TIA/test_impact_analysis/integration/coverage/agent.properties",runtimeData="/home/TIA/coverage_storage"' fi
if "%1"=="stop" goto skip_instrumentation set JAVA_OPTS=-javaagent:"C:\TIA\test_impact_analysis\integration\coverage\agent.jar"=settings="C:\TIA\test_impact_analysis\integration\coverage\agent.properties",runtimeData="C:\TIA\coverage_storage" :skip_instrumentation
アプリケーションを起動し、ブラウザで <host>:8050/status を開いて、エージェントの準備ができていることを確認します。test、runtime_coverage、testCase の各プロパティを含む JSON オブジェクトが表示されます。例:
{"test":null,"session":"runtime_coverage_20191008_1537_0","testCase":null}
runtimeData プロパティで指定したディレクトリを確認することもできます (上記の例では /home/TIA/coverage_storage)。このディレクトリには、静的なカバレッジ データ ファイルが含まれているはずです。このカバレッジ データ ファイルはエージェントの起動時に生成されます。
マルチユーザー モードの追加手順
マルチユーザー カバレッジを有効にしていて、複数のユーザーが同じ Web アプリケーションに同時にアクセスしている場合、収集されるカバレッジ データが混在する可能性があります。これを防ぐために、いくつかの追加手順があります。
テストでは、次の HTTP ヘッダーを挿入する必要があります:
baggage: test-operator-id=<USER>jtest.agent.enableMultiuserCoverageとjtest.agent.autoloadMultiuserLibsの両方が有効になっていることを確認してください (「Jtest カバレッジ エージェント」を参照)。
また、マルチユーザー モードでは次の点に注意してください。
jtest.agent.enableMultiuserCoverageを有効にすると、agent.jar ディレクトリから jtest-otel-ext.jar と opentelemetry-javaagent.jar が自動的にロードされます。- ”デフォルト” ユーザー (ID を指定していないユーザー) は、同じ Web アプリケーションにアクセスしている他のユーザーから余分なカバレッジ情報を収集する場合があります。
- マルチスレッド アプリケーションで収集されたカバレッジは、場合によっては個々のユーザーに割り当てられないことがあります。これは、スレッド間のコンテキスト共有に関する OpenTelemetry の制限に関連しています。
- Jacoco エンジンを使用したカバレッジの収集はサポートされていません。
- Web アプリケーションの初期化のために収集されたカバレッジ データは、特定のユーザーではなく、"デフォルト" ユーザーに割り当てられます。
dotTEST カバレッジ エージェント
dotTEST カバレッジ エージェントは、Web アプリケーションおよびスタンドアロン アプリケーションのカバレッジを収集できます。それぞれ異なる構成が必要です。
Web アプリケーション
テスト対象アプリケーション (AUT) は、IIS バージョン 7.5 以降を使用するマシン上で実行されている必要があります。
カバレッジ エージェントをテスト対象アプリケーションに接続するには、次の操作を行います。
<INSTALL_DIR>/coverage/dotNET/dottest_agentフォルダーを、IIS がインストールされ、Web アプリケーションがデプロイされているマシンにコピーします。- このマシン上で管理者としてコンソールを実行します。
- dotTEST アプリケーション カバレッジ UI を起動するには、次のコマンドを使用してコンソールでエージェント クライアントを実行します。
agent_client.exe
- [IIS Web アプリケーション] を選択して [次へ] をクリックします。
- (オプション) 以下の設定を行います。
- アプリケーション URL: アプリケーション カバレッジ UI から実行できるアプリケーションの URL を指定します。
- 詳細設定:
- Enable simultaneous collection of coverage for multiple users: 複数ユーザーのカバレッジ情報の収集を有効にします。
- カバレッジ出力ディレクトリ:: カバレッジデータ出力ディレクトリへのパスを指定します。
- カバレッジ スコープ ファイル: カバレッジスコープ設定ファイルへのパスを指定します。スコープがデフォルト以外の場合は必須です。
- エージェントの REST API ポート: デフォルトポートが利用できない場合に、カバレッジエージェントの起動時に使用するカスタムポート番号を指定します。
- エージェントの接続タイムアウト (ミリ秒): カバレッジエージェントとの接続のタイムアウトを指定します。デフォルトは 1500 ミリ秒です。
0 または負の値を指定すると、接続試行はタイムアウトしません。その結果、処理速度が大幅に低下したり、ツールが無期限にハングしたりする可能性があります。
- データをフラッシュする間隔 (ミリ秒): 収集されたカバレッジデータをディスクに書き込む頻度を指定します。
- カバー可能な最大行数: カバーできる行数の制限を指定します。
- Skip SSL for connecting to the agent: HTTPS 経由の接続を有効にします。
- SSL 証明書の検証をスキップ: 自己署名 SSL 証明書の使用を有効にします。
- 証明書のパス: SSL 証明書を保存する PFX ファイルへのパスを指定します。
- 証明書のハッシュ: カバレッジエージェントが使用するポートの SSL 証明書のハッシュを指定します。
- 証明書のパスワード: PFX ファイルに保存される SSL 証明書のパスワードを指定します。
- [次へ] をクリックします。カバレッジは、IIS サーバー上に存在するすべてのアプリケーションに対して収集されます。
- (オプション): 指定されたアプリケーションでテストを実行し、カバレッジ API を表示します。
- アプリケーションの開始 - 指定されたアプリケーションを実行し、テストを実行できます。
- Swagger - Swagger でカバレッジ API を表示し、セッションを開始/停止し、カバレッジ ファイルをダウンロードできます。
- Scalar - Scalar でカバレッジ API を表示し、セッションを開始/停止し、カバレッジ ファイルをダウンロードできます。
- このマシンのファイアウォール設定で、ポート 8050 (カバレッジ エージェントのデフォルト ポート) が HTTP トラフィックを許可していることを確認してください。デフォルトのポートが使用できない場合は、カバレッジ エージェントのポート番号を変更できます。
アプリケーションを起動し、ブラウザで
<host>:8050/statusを開いてエージェントの準備ができていることを確認します。次の応答が返されるはずです。{"session":null,"test":null}soatest.properties を構成して、テスト対象アプリケーションのカバレッジを収集します。いくつかのアプリケーション カバレッジ パラメーターがサポートされていますが (「アプリケーション カバレッジの設定」を参照)、次の設定を構成することがほとんどの場合に適しています。
application.coverage.enabled=true application.coverage.agent.url=http://localhost:8050 application.coverage.binaries=c:/<PATH_TO_APPLICATION_PDB_FILES>/bin application.coverage.binaries.include=<INCLUDE_PATTERN> application.coverage.binaries.exclude=<EXCLUDE_PATTERN>
アプリケーション バイナリのパスが、アプリケーション PDB ファイルを含むフォルダーへのパスであることを確認してください。
- すべてのアプリケーションからのカバレッジ収集を終了するには、[カバレッジエージェントの停止] をクリックします。
- アプリケーション カバレッジ UI を閉じるには [終了] をクリックし、新しいカバレッジ収集セッションを構成するには [新規セッション] をクリックします。
マルチユーザー モードの追加手順
マルチユーザー カバレッジを有効にしていて、複数のユーザーが同じ Web アプリケーションに同時にアクセスしている場合、収集されるカバレッジ データが混在する可能性があります。これを防ぐために、いくつかの追加手順があります。
テストでは、次の HTTP ヘッダーを挿入する必要があります:
baggage: test-operator-id=<USER>
スタンドアロン アプリケーション
ほとんどのユーザーは Web アプリケーションのカバレッジを収集しますが、スタンドアロン アプリケーションからカバレッジ情報を収集することもできます。
<INSTALL_DIR>/coverage/dotNET/dottest_agentフォルダーを、スタンドアロン アプリケーションを実行するマシンにコピーします。- dotTEST アプリケーション カバレッジ UI を起動するには、次のコマンドを使用してコンソールでエージェント クライアントを実行します。
agent_client.exe
- [デスクトップ アプリケーション] を選択し、[次へ] をクリックします。
- 以下の設定を行います。
- テスト対象アプリケーションのフル パス: カバレッジを収集するテスト対象アプリケーションへのフルパスを指定します。このアプリケーションは、アプリケーション カバレッジ UI から実行できます。
- アプリケーションのコマンドライン引数: アプリケーションのコマンドライン引数を指定します。
- アプリケーションの作業ディレクトリ: 作業ディレクトリへのパスを指定します。
- (オプションl) 詳細 設定:
- Enable simultaneous collection of coverage for multiple users: 複数ユーザーのカバレッジ情報の収集を有効にします。
- カバレッジ出力ディレクトリ:: カバレッジデータ出力ディレクトリへのパスを指定します。
- カバレッジ スコープ ファイル: カバレッジスコープ設定ファイルへのパスを指定します。スコープがデフォルト以外の場合は必須です。
- エージェントの REST API ポート: デフォルトポートが利用できない場合に、カバレッジエージェントの起動時に使用するカスタムポート番号を指定します。
- エージェントの接続タイムアウト (ミリ秒): カバレッジエージェントとの接続のタイムアウトを指定します。デフォルトは 1500 ミリ秒です。
0 または負の値を指定すると、接続試行はタイムアウトしません。その結果、処理速度が大幅に低下したり、ツールが無期限にハングしたりする可能性があります。
- データをフラッシュする間隔 (ミリ秒): 収集されたカバレッジデータをディスクに書き込む頻度を指定します。
- カバー可能な最大行数: カバーできる行数の制限を指定します。
- Skip SSL for connecting to the agent: HTTPS 経由の接続を有効にします。
- SSL 証明書の検証をスキップ: 自己署名 SSL 証明書の使用を有効にします。
- 証明書のパス: SSL 証明書を保存する PFX ファイルへのパスを指定します。
- 証明書のハッシュ: カバレッジエージェントが使用するポートの SSL 証明書のハッシュを指定します。
- 証明書のパスワード: PFX ファイルに保存される SSL 証明書のパスワードを指定します。
- [次へ] をクリックします。指定されたアプリケーションが実行され、カバレッジが収集されます。アプリケーションに対してテストを実行します。
- (オプション): カバレッジ API を参照します。
- Swagger - Swagger でカバレッジ API を表示し、セッションを開始/停止し、カバレッジ ファイルをダウンロードできます。
- Scalar - Scalar でカバレッジ API を表示し、セッションを開始/停止し、カバレッジ ファイルをダウンロードできます。
- アプリケーションからのカバレッジ収集を終了するには、[カバレッジエージェントの停止] をクリックします。
- アプリケーション カバレッジ UI を閉じるには [終了] をクリックし、新しいカバレッジ収集セッションを構成するには [新規セッション] をクリックします。
マルチユーザー カバレッジは現在、スタンドアロン アプリケーションでは利用できません。
カバレッジを収集およびアップロードするための SOAtest の設定
適切な構成を利用して、SOAtest はテストの実行中にアプリケーション カバレッジを収集します。これを行うには、必要に応じて次のオプションを使用して SOAtest 設定ファイル (「設定」を参照) を構成します。
- build.id: カバレッジ結果を関連付けるビルド ID に設定します。SOAtest のカバレッジ結果を、同じアプリケーションの他のタイプのテスト (単体テストや手動テストなど) の結果とマージする場合は、すべて同じビルド ID を使用する必要があります。ここで設定するビルド ID は、静的および動的カバレッジ ファイルを収集してカバレッジ データをアップロードする際に、dotTEST または Jtest に設定されたビルド ID と一致する必要があります。
- dtp.project: この値は、静的および動的カバレッジ ファイルを収集するときに dotTEST または Jtest に設定された dtp.project 値と一致する必要があります。
- report.dtp.publish: true に設定すると、テスト結果データの DTP へのパブリッシュが有効になります。
- application.coverage.enabled: true に設定します。これにより、アプリケーションのカバレッジが可能になります。
- application.coverage.agent.url: テスト対象のアプリケーションとカバレッジ エージェントがホストされる URL を指定します。エージェントのプロトコル (HTTP/HTTPS) とポート番号を含めます。複数のエントリはセミコロン ( ; ) で区切ります。例:
http\://<Agent Host>\:8050;http\://<Agent Host>\:9050. - application.coverage.user.id: 任意。ユーザー ID を指定すると、カバレッジ結果を特定のユーザーに関連付けることができます。ユーザー ID は、カバレッジ エージェントがマルチ ユーザー モードで実行するように設定されている場合にだけ指定するべきです。下記の
jtest.agent.enableMultiuserCoverageを参照してください。 - application.coverage.dtp.publish: カバレッジ レポートを DTP にアップロードする場合は true に設定し、カバレッジ レポートを DTP にアップロードしない場合は false に設定します。複数のカバレッジ エージェントを設定している場合、それらのカバレッジ レポートは DTP 用の 1 つのカバレッジ レポートにマージされます。デフォルトは、report.dtp.publish の値 (「設定 」を参照)、または -publish が soatestcli に渡された場合は true になります。
- application.coverage.binaries: 任意。Jtest の場合、テスト対象アプリケーションのバイナリを含む URL またはローカル ファイルを指定します。フォルダー、または .war、.jar、.zip、または .ear ファイルへのパスを指定できます。dotTEST には、アプリケーション PDB ファイルが含まれるフォルダーを指定します。静的カバレッジ ファイルが個別に DTP にアップロードされる場合は必要ありません。application.coverage.static.file が指定されている場合は使用しないでください。
- application.coverage.binaries.exclude: オプションですが、推奨されます。テスト対象アプリケーションのスキャン中に除外するアプリケーション バイナリのカンマ区切りパターンを指定します。これも application.coverage.binaries.include も設定されていない場合、バイナリの分析に時間がかかり、必要以上に多くのアプリケーションが分析されます。多くの場合、サードパーティのライブラリ コードのコード カバレッジを測定する必要はないため、この設定を使用してコード カバレッジをプロジェクト コードに制限することをお勧めします。application.coverage.static.file が指定されている場合は使用しないでください。デフォルトでは、すべてのバイナリが受け入れられます。例:
application.coverage.binaries.exclude=jakarta/**,java/**,javax/**,org/apache/**,org/springframework/** - application.coverage.binaries.include: オプションですが、推奨されます。これも application.coverage.binaries.exclude も設定されていない場合、バイナリの分析に時間がかかり、必要以上に多くのアプリケーションが分析されます。多くの場合、サードパーティのライブラリ コードのコード カバレッジを測定する必要はないため、この設定を使用してコード カバレッジをプロジェクト コードに制限することをお勧めします。テスト対象アプリケーションのスキャン中に含めるアプリケーション バイナリのカンマ区切りパターンを指定します。application.coverage.static.file が指定されている場合は使用しないでください。デフォルトでは、すべてのバイナリが受け入れられます。例:
application.coverage.binaries.include=com/myapp/data/*,com/myapp/common/** - application.coverage.static.file: 任意。dotTEST または Jtest を使用して .xml または .data 形式で生成された静的カバレッジ ファイルへのパス、またはアプリケーション バイナリを分析した SOAtest カバレッジ ツールによって生成された静的カバレッジ ファイルへのパスを指定します。静的カバレッジ ファイルが個別に DTP にアップロードされる場合は必要ありません。application.coverage.binaries が指定されている場合は使用しないでください。
- application.coverage.images: DTP でカバレッジ イメージを作成するために使用されるタグのセットを指定します。カバレッジ イメージは、同じビルド ID の実行からのカバレッジ データを集約するための一意の識別子です。複数のエントリはセミコロン ( ; ) で区切ります。詳細については、Parasoft DTP ユーザー ガイドを参照してください。例:
${dtp_project};${dtp_project}_Functional Test.
カバレッジを収集およびアップロードするためのテストの実行
設定したテスト コンフィギュレーション ファイルと設定ファイルを使って、コマンドライン モードでテストを実行します (「Configuring SOAtest to Collect and Upload Coverage」を参照)。この手順は自動化プロセスの一部であるべきです。カバレッジ データはテストの実行時に収集され、DTP への公開が有効になっている場合は DTP にアップロードされます。
DTP でのカバレッジの参照
DTP に移動してカバレッジ エクスプローラーを開き、SOAtest のテストで達成されたアプリケーション カバレッジを確認します。 カバレッジ エクスプローラーの使用方法の詳細については、Parasoft DTP ドキュメントを参照してください。