...
違反エクスプローラーは 4 種類の主要パーツから構成されます。
- 検索パネル: Searching for Violations 違反の検索 を参照。
- 検索結果パネル: Viewing Search Results 検索結果の参照 を参照。
- ソース パネル: Viewing Sources ソースの参照 を参照。
- アクション パネル: Addressing Violations、Viewing Flow Analysis Traces、および Viewing Duplicate Code Violations 違反の対応、フロー解析トレースの参照、および 重複コード違反の参照 を参照。
Anchor | ||||
---|---|---|---|---|
|
...
フィルター ビルド | フィルターおよびビルド ID は違反を検索するための最低条件です。デフォルトではフィルターを変更するときに最新のビルドが選択されますが、ドロップダウン メニューから別のビルドを選択できます。ベースライン ビルドが選択されるときに、選択したビルドはターゲット ビルドとして機能します。詳細については以下のセクションを参照してください。 |
---|---|
ベースライン ビルド ステータス | ベースライン ビルドは、他のビルドとの比較に使用される履歴ビルドです。ドロップダウン メニューからベースライン ビルドを選択して、ベースライン ビルドからフィルターで選択されたビルドにレポートされた違反を検索します。 [ステータス] ドロップダウン メニューからステータスを選択して、新規、修正済、または既存の違反を検索できます。 |
重要度 | 1 つ以上の重要度レベルを指定して検索を実行できます。重要度はテスト コンフィギュレーションで決定されます。ルール マップを作成して、ルールに設定された重要度レベルをカスタマイズできます。詳細については「Configuring Code Analysis Rules」を参照してください。 |
優先度 | 1 つ以上の優先度を指定して検索を実行できます。優先度は REST API でカスタマイズできます。 |
作成者 | 1 人以上のコード作成者を指定して検索を実行できます。作成者は、コード解析ツールの設定から決定されます。 |
担当者 | 1 人以上の担当者を指定して検索を実行できます。 |
アクション | 1 つ以上の割り当てられたアクションを指定して検索を実行できます。アクションは REST API でカスタマイズできます。 |
種類 | 通常の違反、抑制された違反、またはすべての違反を検索できます。 |
リソース グループ | リソース グループは、1 個以上の Ant ファイル パターンによって定義されたリソース (ファイルあるいはフォルダー) の集合です。1 つ以上のリソース グループを指定して検索を実行できます。リソース グループは REST API で定義できます。 |
包含ファイル パターン 除外ファイル パターン | Ant パターンを指定して、検索範囲を広げたり狭めたりすることができます。ファイル パターンの設定については「Searching for Violations by Fileファイル単位で違反を検索する」を参照してください。 |
リスク/影響度 | 1 つ以上のリスク/影響度を指定して検索を実行できます。リスク/影響度は、違反がビジネスに与える度合いです。リスク/影響度は REST API でカスタマイズできます。 |
参照番号 | 特定の参照番号に検索を制限することができます。参照番号は、手動で追加するか、REST API で自動化することができます。 |
カテゴリ | 1 つ以上の静的解析カテゴリを指定して検索を実行できます。静的解析ルールはカテゴリに分類されますが、ルール マップを作成して、ルールとカテゴリを定義したりマッピングを変更したりすることができます。詳細については「Configuring Code Analysis Rules」を参照してください。 |
モジュール | 1 つ以上のモジュールを指定して検索を実行できます。 |
ルール | テスト コンフィギュレーションで有効になっている 1 つ以上のコード解析ルールで検索できます。 |
最大数 | 違反エクスプローラーに表示する違反の数を制限できます。 |
...
違反エクスプローラーでコードを参照する方法の詳細については 「Viewing Flow Analysis Tracesフロー解析トレースの参照」を参照してください。
Anchor | ||||
---|---|---|---|---|
|
...
- 検索結果エリアで違反を選択します。コード ビュー パネルにファイル名が表示されます。
- [優先度] タブをクリックし、[担当] フィールドをクリックします。
- ユーザー名を入力します。入力を始めると、オートフィル機能が実行されます。
- 必要に応じて他の設定を行って、[適用] をクリックします。[すべてのブランチに適用] がデフォルトで有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「Applying Changes to Violations違反を開発者に割り当てる」を参照してください。
担当者と作成者
DTP が違反を初めて受信したとき、担当者フィールドの値は作成者フィールドからコピーされます。作成者フィールドの値は、ツールの .properties 設定ファイルの作成者設定、あるいはソース管理 (SCM) システムから決定されます。作成者設定がない場合、解析を実行したマシンにログインしているユーザーが作成者に設定されます。詳細についてはツールのドキュメントを参照してください。
...
- 検索結果エリアで違反を選択します。
- [優先度] タブをクリックし、[コメント] フィールドにコメントを入力します。
- 必要に応じて他の設定を行って、[適用] をクリックします。[すべてのブランチに適用] がデフォルトで有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「Applying Changes to Violations違反を開発者に割り当てる」を参照してください。
違反を抑制する
Parasoft はいくつかの違反抑制方法をサポートしています。DTP または「サーバーサイド」の抑制は、違反エクスプローラー ビューの [優先度] タブから適用します。DTP の抑制は DTP に保存され、違反が Parasoft ツール ユーザーの IDE に指摘事項としてインポートされたときにも、ソース コードに影響を与えません。
- 検索結果エリアで違反を選択し、[優先度] タブをクリックします。
- [以降の解析実行では、選択された違反を抑制します] オプションを有効にし、[理由] テキスト フィールドに抑制の理由を入力します。抑制は次回の静的解析の実行で実施されます。このオプションを無効にすると、違反の抑制を解除できます。変更は、次回の解析で実施されます。
- 必要に応じて他の設定を行って、[適用] をクリックします。[すべてのブランチに適用] がデフォルトで有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「Applying Changes to Violations違反を開発者に割り当てる」を参照してください。
DTP の抑制は、ツールのユーザーによって適用され、ローカルで保存される入力ファイル抑制およびコード内の抑制とは異なります。入力ファイルおよびコード内で抑制を適用する方法の詳細については、ツールのドキュメントを参照してください。
...
- 検索結果エリアで違反を選択します。コード ビュー パネルにファイル名が表示されます。
- [優先度] タブをクリックし、ドロップダウン メニューから優先度を選択します。
- 必要な変更を加えて [適用] をクリックします。デフォルトでは [すべてのブランチに適用] オプションが有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「Applying Changes to Violations違反を開発者に割り当てる」を参照してください。
Anchor | ||||
---|---|---|---|---|
|
...
- 検索結果エリアで違反を選択します。
- [優先度] タブをクリックし、[アクション] ドロップダウン メニューから値を選択します。
- 必要に応じて他の設定を行って、[適用] をクリックします。[すべてのブランチに適用] がデフォルトで有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「Applying Changes to Violations違反を開発者に割り当てる」を参照してください。
[アクション] フィールドは機械学習機能の重要な部分でもあります。詳細については「Using the Machine Learning Feature機械学習機能の使用」を参照してください。
違反リスクと影響度レベルを設定する
...
- 検索結果エリアで違反を選択します。
- [優先度] タブをクリックし、[リスク/影響] ドロップダウン メニューから値を選択します。
- 必要に応じて他の設定を行って、[適用] をクリックします。[すべてのブランチに適用] がデフォルトで有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「Applying Changes to Violations違反を開発者に割り当てる」を参照してください。
違反に期限を設定する
- 検索結果エリアで違反を選択します。
- [優先度] タブをクリックし、[期限] フィールドのカレンダー アイコンをクリックして日付を選択します。
- 必要に応じて他の設定を行って、[適用] をクリックします。[すべてのブランチに適用] がデフォルトで有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「Applying Changes to Violations違反を開発者に割り当てる」を参照してください。
違反に参照番号を設定する
- 検索結果エリアで違反を選択します。
- [優先度] タブをクリックし、[参照 #] フィールドに値を入力します。
- 必要に応じて他の設定を行って、[適用] をクリックします。[すべてのブランチに適用] がデフォルトで有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「Applying Changes to Violations違反を開発者に割り当てる」を参照してください。
Anchor | ||||
---|---|---|---|---|
|
...
優先度の設定や開発者への違反の割り当てなど、通常の違反修正アクションを実行できます。「Addressing Violations違反の対応」を参照してください。
ヘルプ
[ヘルプ] タブをクリックすると、コードが違反している静的解析ルールの説明が表示されます。複数の違反についてルールの説明を参照することはできません。
...
違反が抑制されている場合、[詳細] タブに抑制情報が表示されます (「Suppressing Violations違反を抑制する」を参照)。
機械学習機能の使用
静的解析違反の重要度を見極め、違反の修正にリソースを割く必要があるかどうかを判断することは、ソフトウェア開発ライフサイクルを停滞させる場合があります。機械学習機能は、修正すべき静的解析違反を認識する方法を DTP に学習させるためのインターフェイスです。新しいコード解析データが DTP にレポートされたときに、どの違反を誰が修正するべきか DTP が予測できるようになるため、違反の修正プロセスがスピードアップします。
...
この機能は、[優先度] タブの [アクション] フィールドで [修正] および [抑制] として分類された違反を分析し (「Assigning Actions to Violations違反にアクションを割り当てる」を参照)、検出したパターンに基づいて予測モデルを作成します。モデルが作成された後、DTP はビルド内のどの違反に修正アクションを割り当てるかを予測します。予測モデルを作成するには、少なくとも 20 件の違反を修正と抑制に分類する必要があります。違反のレビューとアクションの割り当てを続けることで、予測モデルは徐々に改善されます。
...
- 違反を分類する: 違反の分類とは、[優先度] タブの [アクション] フィールドに値を設定することです (「Assigning Actions to Violations違反にアクションを割り当てる」を参照)。機械学習機能は、予測モデルを作成するために少なくとも 20 件の違反を "修正" または "抑制" に分類する必要があります。
- モデルをトレーニングする: DTP は分類された違反を分析し、いくつかのデータ ポイントに基づいて予測モデルを作成します。多くの違反 (たとえば 1000 件) を分析した場合、予測モデルの作成に数分かかることがあります。作成されたモデルには、ヘルス スコアが割り当てられます。モデルのヘルス スコアが許容範囲を超えている場合、ウィザードにより、追加の違反をレビューして分類するように求められます。
- アクションを予測する: モデルのヘルス スコアが許容範囲 ("良" と "最良" の間) である場合、フィルター内の未分類の違反にモデルを適用できます。これにより、違反のレビューに必要な時間が大幅に短縮され、チームは重要な違反の修正に迅速に取り組むことができます。
...
- 機械学習アイコンをクリックして [修正する違反の予測] を選択し、ウィザードを起動します。
- 初めてウィザードを起動する場合、または既存のモデルではアクションを予測するのに不十分な場合、違反を分類するように求められます。[次へ] をクリックします。
- DTP はフィルター内の既存のビルドを分析し、ユーザーに対して既に分類されている違反に基づいてモデルを作成するか、または手動で違反を分類するように求めます。
- 次のオプションのいずれかを選択して [確認] をクリックします。
- [履歴に基づいて違反を分類] オプションを有効にし、[ビルド履歴] ドロップダウンメニューから [すべて]、[6 か月]、または [12 か月] を選択します。DTP はすでに修正または抑制されている違反を検索し、[アクション] フィールドを ”修正" または "抑制" に設定します。詳細については「Expected Classification Outcomes予想される分類結果」を参照してください。
- [手動で違反を分類] オプションを有効にすると、DTP はレビューと分類のために現在のビルドから 20 の違反を提示します。違反を手動で分類する方法については、「Assigning Actions to Violations違反にアクションを割り当てる」を参照してください。
- 十分な数の違反が分類されると、モデルをトレーニングできるように、ウィザードのメイン ページに戻るように求められます (「Training the Modelモデルをトレーニングする」を参照)。
予想される分類結果
[履歴に基づいて違反を分類] オプションを有効にすると、DTP はデータベース中の修正または抑制された違反を分類します。次のいずれかの結果になります。
- 十分な数の違反が分類された場合、モデルをトレーニングできるように、ウィザードのメイン ページに戻るように求められます (「Training the Modelモデルをトレーニングする」を参照)。
- 履歴からの違反が修正または抑制されていない場合、DTP は自動的にアクションを割り当てることができません。ウィザードのメイン ページに戻り、分類プロセスを再開するように求められます。[手動で違反を分類] を選択します。DTP はレビューと分類のために現在のビルドから 20 の違反を提示します。違反を手動で分類する方法については、「Assigning Actions to Violations違反にアクションを割り当てる」を参照してください。
- DTP は、"修正" と "抑制" の比率のバランスを必要とします。非常に多くの違反が特定されて "修正" または "抑制" のいずれかに分類されている場合、バランスの取れた比率になるまで、さらに違反を手動で分類するように求められます。違反を手動で分類する方法については、「Assigning Actions to Violations違反にアクションを割り当てる」を参照してください。
モデルをトレーニングする
- ウィザードがまだ開いていない場合は、機械学習のアイコンをクリックしてウィザードを起動します。
- [モデルのトレーニング] を選択し、[次へ] をクリックします。
- トレーニング モードを選択します。選択するオプションの詳細については「About Training Modesトレーニング モードについて」を参照してください。
- 違反の分類方法に関する予測モデルのトレーニングを開始するように求められた場合、[確認] をクリックします。多くの違反 (たとえば 1000 件) を分析した場合、予測モデルの作成に数分かかることがあります。
- モデルがトレーニングされると、ユーザーはアクションを予測するように求められます (「Predicting Actions予測されたアクション」を参照)。
DTP が信頼できる予測を行うには、健全な予測モデルが不可欠です。分類プロセスの結果、モデルが "不良" または "中" になる場合は、モデルの状態が改善するまで違反の分類を続ける必要があります。詳細については「About Prediction Health予測の精度について」を参照してください。[最高速] または [通常] モードを使用してモデルをトレーニングしたが、モデルの品質に満足できない場合は、モデルを再トレーニングして、[深く] または [最も深く] トレーニング モード オプションを選択します。
...
- ウィザードがまだ開いていない場合は、機械学習のアイコンをクリックしてウィザードを起動します。
- [予測されたアクション] を選択して [次へ] をクリックします。
- [確認] をクリックします。DTP は機械学習モデルを使用して、フィルターの現在のビルドの静的解析違反を分類する方法について予測を行います。[優先度] タブの [予測されたアクション] フィールドが更新されます。詳細については「Predicted Actions」を参照してください。予測結果の概要も表示されます。
- 違反に対して予測されたアクションをレビューします。違反に予測を割り当てるか (「Assigning Actions to Violations違反にアクションを割り当てる」を参照) 予測を無視することができます。予測されたアクションの詳細については「Predicted Actions」を参照してください。
...
リクエストを送信するときと同じように、ユーザー名とパスワードを渡します。「Example例」を参照してください。
URL
http:<host>:<port>/grs/api/v1.7/ml/staticAnalysis/classificationResultsSets
...