このセクションの内容:
違反を評価する際に開発者が最初に行う決定の 1 つは、違反を修正するか抑制するかです。検出された違反のほとんどは真陽性ですが、違反が偽陽性である場合や、チームが特定の種類の違反を修正しないことに決めた場合など、違反を抑制することが賢明な場合もあります。
DTP は、同様の違反が修正されたか抑制されたかの履歴データに基づいて、違反を修正するかどうかを推奨します。この推奨は、修正率で示されます。高いパーセンテージ (たとえば 80% 以上) は、同様の違反が過去に修正されたことを示し、低いパーセンテージ (たとえば 20% 未満) は、同様の違反が過去に抑制されたことを意味します。
開発者は、違反の評価とトリアージの補助として DTP の推奨事項を利用できます。
推奨を取得するには、まずモデルをトレーニングする必要があります。トレーニングには、[優先順度] タブの [アクション] フィールドで ”修正” または ”抑制” として分類された違反が必要です (「違反にアクションを割り当てる」を参照)。
以前から違反を修正している場合は、履歴に基づいて違反を分類できます。これが推奨される方法です。新しいユーザーで、違反を修正または抑制したことがない場合は、違反を手動で分類できます。機械学習ウィザードでは、両方の方法がサポートされています。
モデルをトレーニングするには、少なくとも 20 件の違反のバランスの取れたセットを ”修正” または ”抑制” として分類する必要があります。
より多くの違反を修正および抑制し続けるため、時々モデルを再トレーニングすることをお勧めします。
このウィザードは、以下の操作をガイドします。
[履歴に基づいて違反を分類] を有効にすると、DTP はデータベース中の修正または抑制された違反を分類します。次のいずれかの結果になります。
DTP が信頼できる推奨を行うには、健全な推奨モデルが不可欠です。分類プロセスの結果、モデルが "不良" または "中" になる場合は、モデルの状態が改善するまで違反の分類を続ける必要があります。 詳細については「モデルの精度について」を参照してください。[最高速] または [通常] モードを使用してモデルをトレーニングしたが、モデルの品質に満足できない場合は、モデルを再トレーニングして、[深く] または [最も深く] トレーニング モード オプションを選択します。
DTP は、次のアルゴリズムを使用してモデルをトレーニングします。
[最高速] および [深く] トレーニング モード オプションでは、静的解析データを処理するのに最も高速なアルゴリズムとして知られているk-NNとNaive Bayesアルゴリズムを使用します。ただし、実行されるアルゴリズムは 2 つだけであるため、最適なトレーニング モデルを DTP が決定する際の選択肢が少なくなります。
[通常] および [最も深く] トレーニング モードはすべてのアルゴリズムを使用するため、データ処理に他のオプションよりも時間がかかります。しかし、すべてのアルゴリズムを使用することで、DTP は最適なトレーニング モデルを決定するために最も多くの情報を得ることができます。
[最高速] および [通常] トレーニング モード オプションでは、モデルのトレーニングに使用される違反回数が 1000 回に制限されます。これにより、特に分類された違反が大量にある場合に、DTP のトレーニングを高速化できます。ただし、データ サンプルのサイズを減らすと、モデルの全体的な品質に影響する可能性があります。
[深く] および [最も深く] トレーニングでは、モデルのトレーニングに使用できるすべての分類された違反を使用します。その結果、最良のモデルが生成される可能性があります。ただし、分類された違反がプロジェクトに非常に多くある場合、トレーニング プロセスが完了するまで数分かかります。
修正する違反についての推奨は、次の 2 つの場所から取得できます。
また、[優先度] タブの [推奨の取得] をクリックしても、修正する違反の推奨を取得できます。
モデルをトレーニング した場合、推奨が [推奨事項] セクションに追加されます。1 つ以上の前提条件が満たされていない場合、[推奨事項] ラベルの左側に情報アイコンが表示され、マウスポインターを合わせると詳細が表示されます。
違反を修正するための推奨事項は、検索結果テーブルと [優先度] タブの 2 つの場所で確認できます。
検索結果テーブルでは、[推奨されるアクション] 列を確認します。DTP の推奨事項に従って違反をソートすることができます。
[優先度] タブでは、[推奨事項] セクションを確認します。
DTP が使用するモデルの精度は、処理される違反の数と提供されるデータの品質に依存します。DTP では、少なくとも 20 件の違反を分類する必要がありますが、より多くの違反を分類すると、モデルの精度が向上します。十分なデータを提供していない場合、DTP はモデルを使用して推奨を作成できません。
DTP の推奨を通知するモデルは、提供されたデータの正確さと一貫性にも依存します。DTP は、高度なアルゴリズムを使用して各違反に関連するデータを分析しますが、品質の入力に基づいて品質の推奨のみを行うことができます。修正された違反の数と抑制された違反の数に不均衡がある場合 (または、アクションが ”修正” に設定された違反の数と、アクションが ”抑制” に設定された違反の数に不均衡がある場合)、DTP はモデルを適切にトレーニングできないことを示す場合があります。この場合、推奨の精度を高めるために、修正および抑制アクションを同じ数だけ割り当てる必要があります。
API を使用して機械学習データを取得し、データを Parasoft に送信することで、Parasoft のシステムの改善を支援できます。ユーザー名やプロジェクト名などの機密情報は、レスポンスで難読化されます。 以下の API エンドポイントからの出力を保存して、機械学習データを取得できます。
このエンドポイントは、モデルと推奨結果のトレーニングに使用される静的解析違反を返します。
リクエストを送信するときと同じように、ユーザー名とパスワードを渡します。「例」を参照してください。
http:<HOST>:<PORT>/grs/api/v1.7/ml/staticAnalysis/classificationResultsSets
GET
以下の表は、このエンドポイントで利用できるパラメーターの一覧です。
パラメーター | 説明 | 種類 | Required (必須) |
---|---|---|---|
sortOrder | ID によってデータが返される順序を指定します。データには ID が順番に割り当てられるため、新しいデータほど ID 番号が大きくなります。以下の値を指定できます。
| string | 任意 |
limit | 返す結果セットの最大数を指定します。デフォルトは無制限です。 | integer | 任意 |
| レスポンスでスキップする結果セットの数を指定します。デフォルトは データベースに 3 つの結果セットがあり、 | integer | 任意 |
curl -X GET -u username:password "http://dtp.mycompany.com:8443/grs/api/v1.7/ml/staticAnalysis/classificationResultSets?sortOrder=desc&limit=10" > myResultSets.json |
このエンドポイントは、モデルのトレーニングに使用された違反に割り当てられたアクションを返します。
http:<HOST>:<PORT>/grs/api/v1.7/ml/staticAnalysis/violationActionHistory
GET
なし。
curl -X GET -u username:password "http://dtp.mycompany.com:8443/grs/api/v1.7/ml/staticAnalysis/violationActionHistory" > myViolationActionHistory.json |