Parasoft DTP(以降、DTP)は、JtestやdotTESTなどの静的解析結果を管理し、品質と効率を向上させるための重要なツールです。このツールは、静的解析や単体テストの結果を見える化し、プロジェクト全体で共有するためのレポート機能を提供します。Webブラウザーからアクセスすれば、統計情報や問題の詳細をリアルタイムに確認・共有できます。
今回は、MicrosoftのAzure DevOpsをDTPと統合させることで得られる、開発現場で役立つ機能をご紹介します。この統合機能を活用することで、開発プロセス全体がよりスムーズで効果的になり、品質管理の強化も期待できます。
ソースコードの品質向上を実現します。
目次
DTPとAzure DevOpsを統合してみる
まず最初に、DTPとAzure DevOpsを統合する方法をご紹介いたします。今回は、以下のバージョンを使用します。
- Microsoft Azure DevOps(Basic + Test プラン)
- Parasoft DTP v2024.1 Standard
※ ご紹介する統合機能は、Parasoft DTP v2024.1以降で使用可能です。
1.Azure DevOpsのPersonal Access Tokensを発行
DTPからAzure DevOpsのAPIやサービスにアクセスできるようにPersonal Access Tokensを発行します。
- Azure DevOpsにサインインし、ホームページからユーザー設定の「Personal Access Tokens」を選択します。
- 以下のスコープを付与した「Personal Access Tokens」を作成します。
- 対象スコープ
- Test Management:Read & write
- Tokens:Read & manage
- Work Items:Read, write, & manage
- 対象スコープ
※注意:作成されたトークンは、この後のDTP設定で使用するため、忘れずにコピーしてください(トークンは再発行されません)。
2.DTPにAzure DevOpsの情報を設定
テスト結果を管理しているDTPプロジェクトとAzure DevOpsを関連付けます。
- DTPにサインインし、Report Center 設定から「外部システム」を選択します。
- 有効にチェックを付け、システムタイプ [Azure DevOps]を選択し、他の項目は、以下のキャプチャのようにAzure DevOpsの接続情報を設定します。
- API トークンには、Azure DevOpsのPersonal Access Tokensを設定してください。
-
- 「接続のテスト」を押下し、以下のような成功メッセージが表示されることを確認します。
3.最後に、「プロジェクトの関連付けを作成」を押下し、DTPプロジェクトとAzure DevOpsを関連付けます。
- 設定内容
- DTPプロジェクト:テスト結果を管理しているDTPプロジェクト
- 外部プロジェクト:関連付けたいAzure DevOpsプロジェクト
Azure DevOpsとの統合の詳細は以下のURLをご参照ください。
https://docs.parasoft.com/display/DTP20241JP/Configuring+Integration+with+Azure+DevOps
統合機能の紹介
それでは、ここからDTPとAzure DevOpsの統合機能についてご紹介いたします。DTPとAzure DevOpsの統合には、以下の2つの機能が利用可能です。
【利用時の構成例】
機能(1). Azure DevOpsの作業アイテムを作成する機能
DTPに送信されたテスト結果に対して、DTPの違反エクスプローラーおよびテストエクスプローラーを使用して、外部システムの作業アイテム(TaskやBug)を作成することができます。
この機能により、DTP側からテスト結果に基づいたAzure DevOps作業アイテムを簡単に作成することができるようになります。また、テスト結果が直接タスクとして管理されるため、全ての問題点が一元化され、管理が容易になります。
<使用例>
① DTPの違反エクスプローラー または、テストエクスプローラーの画面を開き、任意のテスト結果を選択します。
② 選択したテスト結果の優先度タブ(右下側)にある作業アイテムの「作成」ボタンを押下します。
③ 作成内容を確認・入力し、「作成」ボタンを押下します。
- 各項目の内容(Azure DevOpsの作業アイテムの内容)
-
- プロジェクト:関連付けで設定した、Azure DevOpsプロジェクト名(自動選択)
- タイプ:作業アイテムのタイプ
- Title:作業アイテムのタイトル
- Description:作業アイテムのDescriptionの内容(DTPのテスト結果のリンクが自動で設定されます)
④ 正常に作成されると、以下のメッセージが表示され、DTPとAzure DevOps側に作成内容が反映されます。
- 正常終了時のメッセージ
- DTP側には、Azure DevOpsの作業アイテムに遷移するリンクが表示されます(×ボタン押下でリンクを削除することも可能)。
- Azure DevOps側には、DTPで設定した作業アイテムが作成されます。
- 作業アイテムの内容には、DTPで設定した内容が反映されています(リンクを押下することで、DTP側のテスト結果の画面に遷移することが可能)。
機能(1)の詳細は以下のURLをご参照ください。
https://docs.parasoft.com/display/DTP20241JP/Manually+Creating+Issues+and+Defects+in+Azure+DevOps
機能(2). 単体テスト結果をAzure DevOpsの作業アイテムへ送信する機能
Azure DevOpsで管理している作業アイテム(テストケース)に対して、DTPにPublishされたテスト結果を反映することができるようになります。
この機能により、テスト結果の手動での入力や更新作業が不要になり、作業効率が向上します。また、テスト結果の一貫性が保たれ、リアルタイムでのトレーサビリティが確保されるため、品質管理が強化されます。
<使用例>
① Azure DevOpsで作成した作業アイテム(テストケース)とUnitTestのテストコード(今回はJUnit)を紐づけます。
- Azure DevOpsで定義したテストケースのIDを確認します。
- 以下の赤枠のようにテストコード(テストケースのメソッド)のコメントに”@test <ID>”として定義します。
※ 紐づけは以上です。他のテストコードに対しても同様の手順で定義します。
② 紐づけが完了したら、Jtestでテストコードの実行結果をDTPにPublishし、結果を確認します。
- Jtestでテストコードの実行結果を解析します(以下はGradleでの実行例)。
コマンド実行例(Gradle)
> gradle clean jtest-agent test jtest -Djtest.config="builtin://Unit Tests"
- DTPでPublishされた結果を確認すると、テストエクスプローラーのテスト結果の詳細タブにAzure DevOpsのリンクが生成されます。
このリンクを押下すると、Azure DevOpsのテストケースの詳細画面を開くことができます。
- DTPのREST APIを使用して、DTPにPublishされたテスト結果をAzure DevOpsに送信します。
コマンド実行例(DTPにPublishされたfilterIdとbuildIdを指定)
> curl -X POST -u dtpId:dtpPass "https://dtpserver:8443/grs/api/v1.7/linkedApps/configurations/1/syncTestCases?filterId=XXX&buildId=XXX
- Azure DevOpsには、自動でTestPlanとTestSuiteが作成されます。
- Azure DevOpsのTestSuiteには、「①」で紐づけたテストの結果が出力されます。
- テスト結果の詳細もAzure DevOps上から確認することができます。
※補足:DTPのREST APIのパラメーターにTestPlanを追加することで、テスト結果をAzure DevOpsの任意のTestPlanに送信することもできます。
コマンド実行例(DTPにPublishされたfilterIdとbuildId、送信先のAzure DevOpsのtestPlanIdを指定)
> curl -X POST -u dtpId:dtpPass "https://dtpserver:8443/grs/api/v1.7/linkedApps/configurations/1/syncTestCases?filterId=XXX&buildId=XXX&testPlanId=XXX
機能(2)の詳細は以下のURLをご参照ください。
https://docs.parasoft.com/display/DTP20241JP/Sending+Test+Data+to+Azure+DevOps+and+Viewing+Results
まとめ
今回は、Parasoft DTPとAzure DevOpsの統合によって得られる主要な機能についてご紹介しました。この統合により、開発プロジェクトの効率化と品質管理の大幅な向上に期待ができます。さらに、DTPはAzure DevOpsだけでなく、Codebeamer、Jama Connect、Jira、Polarionなどの他の外部システムとも統合可能で、同じような機能を利用することができます。
もし、Azure DevOpsなどの外部システムを使用している場合は、Parasoft DTPと統合し、開発プロセス全体の改善に活かしてみてはいかがでしょうか。
DTPと他外部システムとの統合の詳細は以下のURLをご参照ください。
https://docs.parasoft.com/display/DTP20241JP/Integrating+with+External+Systems