コード内のホットスポットを特定する
ALM Octaneはコミット情報を使用して、開発者がコード内のホットスポットを特定できるようにしています。ホットスポットを特定すると、コードの更新に関するリスクを最小限に抑えることができます。
さらにALM Octaneでは、ホットスポットファイルの変更を含むコミット、およびこれらのリスクのあるコミットに関連するフィーチャーにリスクインジケーター が表示されます。
ホットスポットについて
ホットスポットとは、変更にリスクを伴う、注意が必要なコードを含むファイルです。コードが非常に複雑であるか、そのコードが対応する機能が十分にテストされていない可能性があります。
品質低下につながる変更が行われるリスクを軽減するためには、次の手順を実行します。
-
コードの簡素化とリファクタリング。
-
このコードの機能テストの増加。
ALM Octaneはどのようにホットスポットを測定しますか?
ALM Octaneは、コミット情報を使用してホットスポットを識別します。
ホットスポット。ALM Octaneは、不具合を修正するときにファイルが最近変更された場合、ファイルをホットスポットと見なします。
ホットスポットレベル。ホットスポットレベルとは、ホットスポットにあるコードを変更する際の潜在的なリスクのレベルです。ホットスポットレベルが高い場合、このコードを変更すると、リグレッションその他の品質問題をもたらすリスクが高いことを示しています。
ALM Octaneは、次の基準に基づいてホットスポットレベルを決定します。
- このファイルに関連付けられた不具合の数。
- このファイルに加えられた変更の経過時間。
これは、レベルが時間に依存することを意味します。時間の経過とともに、不具合に関連する変更が追加でホットスポットファイルにコミットされなければ、ホットスポットレベルは低下します。
ホットスポットダッシュボードウィジェットのセットアップ
ダッシュボードのホットスポットウィジェットにはコードベースのフォルダーのヒートマップが表示され、各領域はホットスポットレベル別に強調表示されます。
-
前提条件:
SCMシステムで動作するCIサーバー上にパイプラインが作成されていることを確認してください。詳細については、パイプラインの作成と設定を参照してください。
コミットと関連するALM Octaneのストーリーとがコミットメッセージを使用して関連付けられていることを確認してください。詳細については、SCM変更パターンのカスタマイズを参照してください。
-
ダッシュボードモジュールで、リポジトリ内のホットスポットファイル (フォルダー別) ウィジェットを見つけます。
表示されない場合は、+をクリックして、ダッシュボードにウィジェットを追加します。
-
評価対象のコードベースが表示されるように、次のようにウィジェットを設定します。
[スコープ] タブで、リスク評価を行うリポジトリとベースフォルダーを選択します。
選択対象のリストには、CIサーバーのSCM統合を介して利用可能なリポジトリとフォルダーが含まれます。
ホットスポットウィジェットを使用した潜在的なリスクの評価
ホットスポットダッシュボードウィジェットのセットアップ後に、ウィジェットにはコードベースのフォルダーのヒートマップが表示され、各領域はホットスポットレベル別に強調表示されます。フォルダーのホットスポットレベルは、フォルダー内のファイルの平均ホットスポットレベルです。
ウィジェットを使用して潜在的なリスクを評価するには:
-
どのフォルダーに高いレベルのホットスポットが含まれているかを確認します。
-
ヒートマップの各領域は、フォルダー構造にかかわらず、ベースフォルダーの下にあるフォルダーを表しています。
-
各領域のサイズはフォルダー内のファイル量を示しています。
注: ALM Octaneは、パイプライン実行の一環として検出されたSCMコミットで変更されたファイルのみを分析します。
時間の経過とともに、分析の対象になるコードベースが増えていきます。
-
各領域の色はホットスポットレベルを示しています。これは、ホットスポットファイルを変更する際の潜在的なリスクレベルです。
-
-
ヒートマップの領域の上にカーソルを置くと、特定のフォルダー内のホットスポットレベルの内訳が表示されます。フォルダー内に各レベルのファイルがいくつあるかを確認することができます。
-
ヒートマップ内の領域をクリックすると、フォルダー内の各ファイルのホットスポットレベルが表示されます。
リスクのあるコミットとリスクのあるフィーチャーの特定
ALM Octaneは、ホットスポットファイルへの変更を含むコミットおよびそのようなコミットに関連するフィーチャーのリスク表示を表示します。
- リスクのあるコミットを特定することで、パイプラインの失敗を分析する際にその問題を切り離すことができます。
- リスクのあるフィーチャーを特定することで、フィーチャーのリリースの準備状況を評価することができます。
リスク表示の使用例
-
パイプラインモジュールで、失敗したパイプライン実行の [分析] > [テスト実行] タブを開きます。
-
失敗したテスト実行を選択し、右側の [コミット] タブを開きます。
-
関連するコミットにリスクありのマーク が付いている場合、それが失敗の原因であるかどうかを確認します。
- チームバックログモジュールで、[コミット] タブを開きます。
- そグリッドに [リスク] カラムがない場合は、追加します。
- 多くのコミットにリスクありのマークが付いている場合、ホットスポットファイルが変更中であることを意味します。この場合、チームと追加テストまたはコードのリファクタリングについて話し合う必要があります。
-
バックログモジュールで、[フィーチャー] タブを開きます。
フィーチャーがリスクのあるコミットに関連している場合、スマートリストビューのフィーチャーにリスクインジケーター が表示されます。ここで、このフィーチャーに対するリスクのあるコミット数を確認することができます。
グリッドビューでは、[リスクのあるコミット数] カラムを使用します。
-
ダッシュボードでは、[フィーチャー (リスクのあるコミット別)] ダッシュボードウィジェットを使用します。
注:
- 不明: コミットメッセージを介していずれのバックログ項目にも関連していないコミット。
- バックログ: 特定のフィーチャーに属さないバックログ項目に関連しているコミット。
リスクのあるアプリケーションモジュールの特定
品質 (アプリケーションモジュール別) ダッシュボードウィジェットで使用される条件に、リスクのあるコミットの割合を指定します。このヒートマップ内のアプリケーションモジュールが、ここで定義したしきい値よりも高い割合で、リスクのあるコミットと関連している場合、注意を喚起するために、そのモジュールは赤でマークされます。
参照情報: