このセクションの内容:
次の図は、Azure DevOps 環境に Parasoft DTP および Parasoft テスト実行ツールを統合するための自動インフラストラクチャの実装方法を示しています。
Azure ユーザー設定要件:Parasoft DTP がテスト結果を Azure DevOps に送信できるようにするには、ユーザー アクセス レベルに Azure DevOps の「テスト計画」を含める必要があります。この設定は、Parasoft DTP がテスト結果を Azure DevOps に送信する際にテスト計画を作成するために必要です。 Azure DevOps のテスト計画を設定するには、次のいずれかを実行します。 ローカル版の Azure DevOps でテスト計画を設定するには、次のことを行う必要があります。
Azure DevOps でクラウド用のテスト計画を設定するには、次のことを行う必要があります。
|
テスト データを Azure DevOps に送信するには:
テストファイルで、以下のアノテーション形式を使用して、Azure DevOps システムの要件 ID をテストにマッピングします。
Azure DevOps でトレーサビリティ結果を見るために独自のテストケース定義を作成していないユーザーの場合は、@req
を使用します。
|
Parasoft で @req
を使用し、Parasoft DTP から Azure DevOps への結果の送信をトリガーします。
Azure DevOps で独自のテストケース定義を作成したユーザーには、@test
を使用します。
* 次のアノテーションは、テストを要件にマッピングします。 * @test <<Azure DevOps ID> > @TEST ... |
各テストケース定義を、Azure DevOps でテストした要件に関連付けます。
@test <Azure DevOps Test ID> アノテーションを使用して、テストを Azure DevOps のテスト実行に関連付けます。@test
を使用する場合は、Parasoft DTP から Azure DevOps に送信する予定の実行ステータスのテストに、テストケースのステップが定義されていないことを確認してください。Parasoft DTP は、ステップが定義されているテストケースのテストケース実行を更新できません。
@req
を使用するときは、結果を送信する予定の Azure DevOps プロジェクトで次の関係タイプが定義されていることを確認してください。"verified by"。このような関係は、Parasoft DTP が Azure DevOps でテストケースを作成し、Azure DevOps 要件に関連付けるときに必要になります。Sending Test Data to External System フローをデプロイした場合 (「Sending Test Data to External System フローのデプロイ」を参照)、Data Collector が Parasoft ツールからデータを受信すると、単体テストと機能テストの結果が Azure DevOps Connect に自動的に送信されます。デフォルトでは、フローは Data Collector が受信した任意のプロジェクトの単体テストおよび機能テストの結果をフォワードしますが、特定のプロジェクトのデータだけを送信するようフローを設定できます (「特定の DTP プロジェクトの結果を送信する」を参照)。
また、DTP REST API エンドポイントに POST リクエストを手動で送信して、DTP データベースから Azure DevOps Connect に結果を送信することもできます。API 呼び出しの URL パラメーターとして、DTP フィルターとビルドの ID、および一連の Azure DevOps テスト ケースの ID を渡します。
curl -X POST -u <username>:<password> "http://<host>:<port>/grs/api/v1.7/linkedApps/configurations/1/syncTestCases?filterId=<filterID>&buildId=<buildID> |
フィルター ID とビルド ID は、テスト エクスプローラーの URL で確認できます。
次の表で、エンドポイント パラメーターについて説明します。
パラメーター | 値 | 説明 | 必須 |
---|---|---|---|
filterId | integer | テスト データを含むフィルター IDを指定します。フィルター ID は整数値です。フィルター名と混同しないでください。 | Required (必須) |
buildId | string | テスト データを含むビルド ID を指定します。 | Required (必須) |
| boolean |
デフォルトは | 任意 |
testPlanId | integer | 結果の送信先となる Azure DevOps のテスト計画 ID を指定します。DTP は、指定されたテスト計画で "Results from Parasoft DTP - <DTP_PROJECT_NAME>" の形式でテスト スイートを生成します。同期するテストケースはこのテスト スイートにコピーされ、そのテスト ポイントが実行されます。このテスト スイートが以前に生成されたものであれば、指定されたテスト計画に対して今後 syncTestCases を実行する際に再利用されます。この指定がない場合、DTP は新しいテスト計画を生成し、テストケースの結果をそのテスト計画に同期します。 | 任意 |
updateResultsOnly | boolean | 特定のテスト計画内のテストケースをインプレースで更新する同期モードを指定します。 デフォルトは | 任意 |
DTP と Azure DevOps 間でテストケースを同期するために
この構成 (config1) により、DTP プロジェクト bank のデータは、サーバー http://azure.test1:8888/organization1 上の Bank という外部プロジェクトに送られます。サーバーには API トークン abcdef を使用してアクセスします。DTP プロジェクトと外部プロジェクトは、どちらも project1 に属しているという理由でリンクされています。そして適切なサーバーとログイン認証情報は、すべて config1 に属しているため、既知のものです。 これを理解すると、上記の例をテンプレートとして、他の Azure DevOps 実装のために追加構成を定義することができます。各構成には、一意の azuredevops.config# 値が必要です。たとえば、上記の構成をベースとして使用すると、2 番目の構成は次のようになります。
必要な数だけ構成をセットアップできます。いくつか注意点があります。
API 呼び出しは、渡された |
filterId
パラメーターと buildId
パラメーターに一致するテスト結果を見つけ、そのデータを Azure DevOps Connect のシステム要件に送信します。@req <ID>
で結果を検索すると、Azure DevOps で一致するアイテムを検索します。一致が見つかった場合、アイテムに関連付けられたテスト ケースにテスト実行が追加されます。要件 ID に一致するテスト ケースがない場合は、テスト ケースが作成されてテスト実行が追加されます。external-app-sync.log ファイルも <DTP_INSTALL>/logs
ディレクトリに書き込まれます。このログ ファイルには、DTP から Azure DevOps へのテスト結果の送信に関する進捗情報が含まれています。
DTP がレポートを処理し、結果を Azure DevOps に送信した後、以下のような応答があります。
{ "createdTestSession": "DTPP-521", "created": [ "DTPP-519, testName = testBagSumAdd" ], "updated": [ "DTPP-519, testName = testBagSumAdd", "DTPP-518, testName = testBagSimpleAdd" ], "ignored": [ "MAGD-567, testName = testBagNegate", "QAP-512, testName = testTryThis3", "QAP-512, testName = testTryThis4", "MAGD-567, testName = testBagMultiply" ] } |
Sending Test Data to External System フローを使用して単体テストおよび機能テストの結果を送信している場合、デフォルトでは、すべての DTP プロジェクトのデータが Azure DevOps に送信されます。結果として、Azure DevOps ID に一致するアノテーションを持つすべての DTP プロジェクトで収集されたテストを含むよう、作業アイテムが更新されます。ただし、特定のプロジェクトのデータだけを送信するよう、フローを設定することもできます。
Configure Projects ノードをダブルクリックします。このノードのロジックは、同期操作中に Azure DevOps にデータを送信する DTP プロジェクトを指定します。これらのプロジェクト構成は、JSON 配列に格納されます。
例として、すでに定義されているプロジェクト構成のサンプルがあります。
{ project: 'abc' } |
さらにプロジェクト構成を追加するには、最後のプロジェクト構成の末尾にカンマを追加し、その下に新しいエントリを追加します。例: 例:
msg.configuredProjects = [ { project: 'abc' }, { project: 'foobar' } ]; |
これらの構成では、結果を同期するプラン ID を指定するための追加オプションもサポートされています。例:
{ project: 'foobar', plan: 350 } |
updateResultsOnly=true
パラメーターを追加して同期モードを切り替えることができます。linkedApps - syncTestCases ノードをダブルクリックし、[エンドポイント] フィールドの末尾にパラメーターを追加して、[完了] をクリックします。フローを実行すると、指定した DTP プロジェクトのテスト結果だけが Azure DevOps に送信されます。
テスト データを送信した後、Azure DevOps で結果を表示できます。次の画像は、Azure DevOps の System Requirement Specifications 要件を示しています。要件にいくつかのテスト ケースがあります。
個々のテスト ケースについて、テスト実行などの詳細情報をさらに確認できます。