このセクションの内容:

Jira/Xray へのテスト データの送信 

次の図は、Jira 環境に Parasoft DTP および Parasoft テスト実行ツールを統合するための自動インフラストラクチャの実装方法を示しています。

  1. Jira でテストやストーリーを作成します。アイテムは、Parasoft C/C++test、dotTEST、または Jtest によって実行されるテストに関連付けられます。 
  2. テスト ファイルで、@test または @req アノテーションを使用して Jira のテスト ケースまたは要件 ID を追加します。アノテーションの追加の詳細については、C/C++test、dotTEST、または Jtest のドキュメントを参照してください。 
    • @test <Jira Test ID> アノテーションを使用して、テストを Jira のテスト実行に関連付けます。
    • @req <Jira Story ID> アノテーションを使用して、テストを Jira のストーリーに関連付けます。 
    • Jira の作業アイテム ID は、URL などのいくつかの Jira インターフェイスで使用できます。
  3. CI プロセスの一部としてテストを実行します。IDE からテストを手動で実行することもできます。
  4. テスト実行の一環として、Parasoft テスト実行ツールはフィルターとビルド ID でテスト結果をタグ付けし、データを DTP に送信します。DTP ダッシュボードに テスト ウィジェット を追加し、フィルターとビルド ID を設定することにより、DTP で結果を確認できます。開発者は、テスト実行データを DTP から IDE にダウンロードして、失敗したテストに対処できます。
  5. Sending Test Data to External System フローをデプロイした場合 (「Sending Test Data to External System フローのデプロイ」を参照)、Data Collector が Parasoft ツールからデータを受信すると、単体テストと機能テストの結果が Jira に自動的に送信されます。 デフォルトでは、フローは Data Collector が受信した任意のプロジェクトの単体テストおよび機能テストの結果をフォワードしますが、特定のプロジェクトのデータだけを送信するようフローを設定できます (「特定の DTP プロジェクトの結果を送信する」を参照)。また、DTP REST API エンドポイントに POST リクエストを手動で送信して、DTP データベースから Jira に結果を送信することもできます (「DTP REST API エンドポイントへ POST リクエストを手動送信する」を参照)。

  6. DTP は、filterId パラメーターと buildId パラメーターに一致するテスト結果を見つけ、そのデータを Jira のアイテムに送信します。
    • DTP は、@test <ID> で結果を見つけると、Jira で一致する ID を持つテストを検索して更新します。Jira に ID が存在しない場合、アクションは実行されません。
    • DTP は、@req <ID> で結果を見つけると、一致する ID を持つ Jira のストーリーを検索し、ストーリーにテスト実行を追加します。ID が存在しない場合、新しいテスト実行が Jira に追加されます。 
    • external-app-sync.log ファイルも <DTP_INSTALL>/logs ディレクトリに書き込まれます。このログ ファイルには、DTP から Jira へのテスト結果の送信に関する進捗情報が含まれています。 

DTP がレポートを処理し、結果を Jira に送信した後、以下のような応答があります。

{
   "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"
     ]
}

DTP REST API エンドポイントへ POST リクエストを手動送信する 

Traceability Pack に同梱されている Sending Test Data to External System Flow は、DTP で新しい結果が収集されると、DTP から Jira にデータを自動的に送信します (「Sending Test Data to External System フローのデプロイ」を参照)。または、POST リクエストを DTP REST API エンドポイントに送信して、このアクションを開始することもできます (このエンドポイントの詳細については「syncTestCases Endpoint Reference」を参照)。

API 呼び出しの DTP フィルターとビルド ID を URL パラメーターとして渡します。

curl -X POST -u <username>:<password> "http://<host>:<port>/grs/api/v1.7/linkedApps/configurations/1/syncTestCases?filterId=<filterID>&buildId=<buildID>"

フィルターおよびビルド ID は、テスト エクスプローラーの URL で利用できます。

Parasoft トレーサビリティ レポートに加えて、または Parasoft トレーサビリティ レポートの代わりに Jira の Xray トレーサビリティ レポートを使用している場合、Jira に送信されるテスト情報には Fix Version フィールドが含まれていなければなりません。
デフォルトでは、DTP API は Jira でテスト実行エンティティを作成するときに FixVersion フィールドに入力しませんが、fixVersions パラメーターを API に追加し、1 つ以上の値を指定してフィールドに入力できます。

curl -X POST "https://<host>:<port>/grs/api/v1.7/linkedApps/configurations/1/syncTestCases?filterId=<filterID>&buildId=<buildID>&fixVersions=<version1>,<version2>"

fixVersions パラメーターを使用するには、まず Jira プロジェクトで Version フィールドを有効化する必要があります。パラメーターの値は、Jira プロジェクトで指定されたバージョンに一致している必要があります。次の例では、fixVersions=1.0 のテストが更新されます。 

バージョンの設定については、Jira のドキュメントを参照してください。

syncTestCases エンドポイント リファレンス

syncTestCases エンドポイントは、DTP にレポートされたテスト データを統合 ALM システムに送信します。

リソース/syncTestCases
URL<protocol>://<host>:<port>/grs/api/v1.7/linkedApps/configurations/1/syncTestCases

メソッド

POST

以下の表でエンドポイントのパラメーターについて説明します。

パラメーター説明必須
filterId integerテスト データを含むフィルター IDを指定します。フィルター ID は整数値です。フィルター名と混同しないでください。Required (必須)
buildId stringテスト データを含むビルド ID を指定します。Required (必須)
fixVersions 文字列のカンマ区切りリストです。Jira の [Fix Version] フィールドに入力する値を指定します。[Fix Version] フィールドは、Jira のトレーサビリティ レポートを使用するために必要なフィールドです。   任意
groupResultsBySOAtestTST boolean

true に設定すると、SOAtest の結果が .tst ファイルでグループ化されます。その結果、1 つの .tst ファイルが 1 つの Xray テストに関連付けられます。

false に設定すると、SOAtest.tst 内の各テストステップが Xray テストに関連付けられます。

デフォルトは false です。 

詳細については「Changing Test Granularity for SOAtest Results」を参照してください。 

任意

SOAtest 結果のテスト粒度の変更

SOAtest は、次のようないくつかのテスト戦略を柔軟に実行することができます。

  • 多くのテストステップを含む、限られた .tst ファイルのセットを作成する
  • 限られた数のテストステップで多くの .tst ファイルを作成する
  • 上記の戦略の組み合わせ/バランス

デフォルトでは、SOAtest .tst ファイルの各テスト ステップは、Xray テストに関連付けられます。しかし、機能テストが多くの .tst ファイルに分散している場合、この構成は組織にとって粒度が大きすぎるかもしれません。syncTestCases エンドポイント呼び出しに groupResultsBySOAtestTST=true を追加することで、デフォルトの動作を変更することができます。例:

curl -X POST "https://<host>:<port>/grs/api/v1.7/linkedApps/configurations/1/syncTestCases?filterId=<filterID>&buildId=<buildID>&groupResultsBySOAtestTST=true"

Sending Test Data to External Systems フローをデプロイした場合、linkedApps - syncTestCases ノードにパラメーターを追加すると、.tst ファイルによるグループ化を有効にすることができます。

特定の DTP プロジェクトの結果を送信する

Sending Test Data to External System フローを使用して単体テストおよび機能テストの結果を送信している場合、デフォルトでは、すべての DTP プロジェクトのデータが Jira に送信されます。結果として、Jira ID に一致するアノテーションを含むすべての DTP プロジェクトで収集されたテストを含むよう、作業アイテムが更新されます。ただし、特定のプロジェクトのデータだけを送信するよう、フローを設定することもできます。 

  1. Extension Designer を開き、Sending Test Data がデプロイされたサービスを開きます。
  2. Toggle Projects Mode ノードをダブルクリックし、ドロップダウンの値を true に設定します。これにより、特定のプロジェクトにのみデータを送信する機能がオンになります。
  3. [完了] をクリックします。
  4. Configure Projects ノードをダブルクリックします。このノードのロジックは、同期操作中に Azure DevOps にデータを送信する DTP プロジェクトを指定します。これらのプロジェクト構成は、JSON 配列に格納されます。
    例として、すでに定義されているプロジェクト構成のサンプルがあります。

    { project: 'abc' }

    さらにプロジェクト構成を追加するには、最後のプロジェクト構成の末尾にカンマを追加し、その下に新しいエントリを追加します。例:

    msg.configuredProjects = [
        { project: 'abc' },
        { project: 'foobar' }
    ];
  5. 目的のプロジェクトを構成したら、[完了] をクリックします。
  6. [デプロイ] をクリックして、これらの変更を反映してフローを更新します。

フローを実行すると、指定した DTP プロジェクトのテスト結果だけが Jira に送信されます。 

Jira/Xray での結果の表示

テスト データを送信した後、Jira で結果を表示できます。次の図は、いくつかのテストを含む Jira ストーリーを示しています。

ストーリーに関連付けられているテストをクリックして、詳細情報を表示できます。

また、テストに関連付けられたテスト実行を表示することもできます。

  • No labels