Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents
maxLevel1

要件

  • DTP および Extension Designer を正しく設定していること。「Server Settings」を参照してください。
  • DTP が Parasoft 静的解析/テスト ツール (C/C++test、dotTEST、 Jtest) から静的解析データを収集済みであること。 

サンプルのセットアップ

  1. 静的解析の実行のビルド ID を取得します。ビルド ID は、ダッシュボードも含め、DTP のいくつかのインターフェイスから取得できます。
  2. Extension Designer で、既存のサービスをクリックするか、新規にサービスを作成します (「サービスの使用Working with Services」を参照)。
  3. 新しいフローを作成し (「フローの使用」を参照)、Extension Designer のメニューから [読み込み] を選択します。
  4. [Library] タブをクリックし、[Examples] > [Static Analysis Prioritization] を選択します。
  5. [読み込み] をクリックし、フローをタブにドロップします。
  6. [デプロイ] をクリックし、 Set flow.buildID ノードをダブルクリックします。
  7. [to] フィールドにビルド ID の値を入力して [Done] をクリックします。 
    Anchor
    specify-build-id
    specify-build-id

  8. 更新したフローをデプロイしてサンプルの準備を完了します。

...

このタブが表示されていない場合は、三点メニューから [表示] を選択し、[サイドバーを表示] オプションを有効化します。

例 1 - 担当者の設定

例 1 のノードは、取得したすべての違反を新しいユーザーに割り当てる方法について説明します。  

DTP から静的解析違反を取り出す

このフローは、DTP の /staticAnalysisViolation REST API によって静的解析データを取得します。詳細については「Using DTP REST APIs」を参照してください。

...

Get violations for Build ノードをダブルクリックします。このノードは DTP REST API ノードであり、DTP REST API にリクエストを送るための特別な種類のノードです (利用できるノードの一覧については「Working with Nodes」を参照)。このノードのエンドポイントは、/v1.2/staticAnalysisViolations?buildId={{payload}} を指します。このノードは、フローを設定 したときに指定したビルド IDに基づいてデータを取得します。また、msg.staticAnalysis に静的解析違反ペイロードを返します。

DTP のデータを処理して新しい担当者を設定する

Set the assigneeName function ノードをダブルクリックします。このノードに含まれる JavaScript は、違反を処理し、次の REST API 呼び出しからの新しいペイロードの準備を行います。

...

ウィジェットをクリックすると、違反エクスプローラーが表示されます。ウィジェットは、set flow.buildID ノードで指定されたビルド ID を表示するように構成する必要があります。違反の [担当者] フィールドは johndoe に設定されます。

例 2 - 優先度の設定

このサンプルのすべてのロジック フローは、Prioritization ペイロードの準備という点でのみ異なります。

...

 10 行目から 18 行目に、優先度を設定する JavaScript があります。この例では、渡されるすべての違反に対して priority として Critical を設定します。

例 3 - アクションの設定

Set the violationAction function ノードをダブルクリックします。 

...

このメタデータはカスタマイズできます。また、DTP Server ごとにアクションが異なる場合もあります。詳細については /metadata/violationAction API ドキュメントを参照してください。 

例 4 - リスク/影響の設定 

この例は「How to Update Violations Metadata」と「How to Update Violations Metadata例 2 - 優先度の設定」と「例 3 - アクションの設定」に似ています。この例では、すべての違反が "Extreme" に分類されます。Find and set the classificationId function ノードをクリックて JavaScript を確認してください。

例 5 - 期限の設定

Set the dueDate function ノードをダブルクリックして JavaScript を確認します。2 行目で Moment JavaScript ライブラリが初期化されます。この例では、Moment ライブラリを利用して文字列から日付と時刻を取得します。また、明日の日付を計算してこの日付を文字列として dueDate フィールドに設定します。

例 6 - 参照番号の設定

Set the referenceNumber function ノードをダブルクリックして JavaScript を確認します。この例では、違反メタデータで referenceNumber を設定します。

...

参照番号は、後で使用するために、ID や外部システム (JIRA や Bugzilla) で使用できます。

例 7 - コメントの追加

Set the comment function ノードをダブルクリックして JavaScript を確認します。この例では違反にコメントを追加します。

...

コメントが fields オブジェクトの一部ではないことが分かります。コメントは、prioritize オブジェクトに関連付けられた追加プロパティです。

例 8 - 重要度による優先順位付け

例 8 は高度な例です。重要度に基づいて静的解析違反をグループ化し、違反を処理する方法について説明します。 

...