ソースコントロール管理システムにコミットされた変更の追跡
CIサーバーがGitまたはSubversion (SVN) などのソースコントロール管理 (SCM) システムと連携するようにセットアップされている場合、ALM Octaneでコミットされた変更を追跡できます。「ソースコード管理 (SCM) の統合」も参照してください。
概要
ALM Octaneパイプラインでは、各パイプライン実行に関連するコミットが表示されます。
コミットを特定のバックログ項目 (ユーザーストーリー、品質ストーリー、または不具合) に関連付けることができます。詳細については、コミットをバックログ項目に関連付けるを参照してください。
コミットされた変更と、それがリリースとビルドの品質に及ぼす影響を追跡できるようになりました。ALM Octaneでは、次の情報が表示されます。
-
パイプライン:
パイプライン実行では、パイプライン実行に関連するバックログ項目とコミットが一覧表示されます。
パイプラインの概要では、最新のパイプライン実行に含まれるコミット実施者とコミットの数が表示されます。
パイプライン実行分析では、失敗した自動テスト実行に関連するコミットが表示されます。
-
バックログ:
バックログ項目では、項目に関連するコミットが一覧表示されます。
エピックまたはフィーチャーでは、エピックまたはフィーチャーで定義されているバックログ項目に関連付けられているコミットが一覧表示されます。
-
チームバックログモジュールでは、選択したチームのメンバーが実施したコミットが一覧表示されます。
コミットまたはフィーチャーの近くに表示されるリスクインジケーターは、注意が必要なコード領域の変更がコミットされたことを示します。
- 注:
-
GoCDを使用する場合、ALM Octaneは、コミットと、ALM Octaneエンティティとの関連付けを表示します。各コミットに含まれるファイルのリストは利用できません。
-
ALM Octaneは、長いコミットメッセージを255文字に切り捨てます。
コミット追跡のユースケース
コミット追跡情報には、いくつか使用方法があります。
注: ほとんどのロールはカスタマイズできます。ロールとその権限は、組織によって異なる場合があります。
-
開発者は、SCMシステムに変更をコミットする際、変更に関連する不具合、ユーザーストーリー、品質ストーリーのIDとともにコミットメッセージを入力します。
変更に関連するパイプラインの実行時、この情報はALM Octaneに渡されます。
ALM Octaneでバックログ項目を開くと、開発者やチームリーダーは、作業中の各バックログ項目について、変更したファイルの内容を明確に把握することができます。
-
開発チームのリーダーは、チームメンバーのコミットと、チームバックログ内の項目とコミットとの関係を確認できます。
-
開発者やDevOpsエンジニアは、ビルドの失敗と、変更済みファイルおよびバックログ項目を対応させます。
-
テスト担当者は、パイプラインの実行と自動テストの合格を確認した後、大幅に変更され、手動テストが必要な領域を特定します。
-
開発者は、コード内で、変更にリスクを伴う、注意が必要な部分を特定します。コードの簡素化とリファクタリングを行い、カバーする機能を重点的にテストすることが可能です。これにより、将来、品質低下につながる変更が行われるリスクを軽減できます。詳細については、コード内のホットスポットを特定するを参照してください。
-
開発者または開発テスト担当者は、失敗した自動テストに関連している可能性のあるコミットを特定します。また、ホットスポットファイルに影響するため、他のコミットよりもリスクの高いコミットを確認できます。
-
プロジェクトマネージャーまたはPMOは、リスクの高いコミットを含むフィーチャーを特定し、フィーチャーのテストの強化やリリースの延期を検討することができます。
前提条件
- SCMシステムで動作するCIサーバー上にパイプラインが作成されていることを確認してください。詳細については、パイプラインの作成と設定を参照してください。
-
SCMシステムに変更をコミットする場合、コミットメッセージには、DevOps > SCM変更パターン設定ページで定義されているパターンの1つを含める必要があります。Javaの正規表現を使用して、標準設定のコミットメッセージパターンを変更できます。詳細については、SCM変更パターンのカスタマイズを参照してください。
標準設定のコミットメッセージパターンは、次のとおりです。
defect#<不具合ID>
user story #<ユーザーストーリーID>
quality story #<品質ストーリーID>
メッセージの構文では、大文字と小文字を区別しません。
コミットをバックログ項目に関連付ける
コミットをバックログ項目に自動または手動で関連付けることができます。
コミットとバックログ項目には多対多の関係があります。つまり、複数のコミットを複数のバックログ項目に関連付けることができます。
コミットを自動的に関連付けるには
SCMシステムに変更をコミットするときは、SCM変更パターンのカスタマイズで定義されているコミットパターンを追加します。
コミットを複数のバックログ項目に関連付けるには、次の例のようにコミットコメントを入力します。
Defect #1001, User story #1002: I changed all of the blue icons to green ones.
Fixed the issue of screen not refreshing. Defect #1001, Defect #1002.
コミットを手動で関連付けるには
以下から手動でコミットをバックログ項目に関連付けることができます。
- 特定のパイプライン
- チームバックログモジュールのタブなど、ALM Octaneの [コミット] タブ
- バックログ項目
- [コミット] タブで、バックログ項目に関連付けるコミットを選択し、[ストーリーへのリンク] をクリックします。
- バックログ項目の追加ダイアログボックスで、コミットに関連付ける項目を追加します。
- リンクをン削除するには、コミットの [バックログ項目] タブで項目を選択し、[コミットからリンクを削除] をクリックします。
または
- コミットに関連付けるバックログ項目の [詳細] タブで、[コミットにリンク] ボタンをクリックします。
- コミットの追加ダイアログボックスで、項目に関連付けるコミットを追加します。
- リンクを削除するには、バックログ項目の [コミット] タブで項目を選択し、ストーリーからリンクを削除をクリックします。
パイプライン実行に関連付けられたコミットの追跡
-
[パイプライン] モジュールで、[パイプライン] タブを開き、パイプラインを選択します。
-
特定のパイプライン実行を開きます。
-
前回の実行を開くには、パイプラインの実行番号をクリックします。
-
以前の実行を開くには、パイプラインのIDをクリックしてパイプラインを開きます。[実行] タブで、特定の実行のIDをクリックします。
-
次のような情報を確認できます。
-
[テスト] タブでは、失敗した自動テストに関連すると思われるコミットが表示されます。詳細については、テストの分析を参照してください。
-
[コミット] タブでは、このパイプライン実行に含まれるコミットが表示されます。詳細については、[コミット] タブによるコミットされた変更の追跡を参照してください。
-
[バックログ項目] タブでは、パイプライン実行のコミットに関連付けられた不具合、ユーザーストーリー、品質ストーリーが表示されます。バックログ項目をコミットに関連付けるには、正しい構文を使用してコミットメッセージで項目を指定する必要があります。
バックログ項目ごとに、項目とそれに関連するコミットの情報を表示できます。例:
-
項目のID、名前、フェーズ。
-
項目に関連付けられたコミットの数。
-
変更をコミットしたユーザーの名前。
-
コミットによって追加、変更、削除されたファイルの数。
項目を開いて詳細を表示するには、バックログ項目のIDをクリックします。
-
[実行の失敗時にコミット実施者に通知する] がパイプラインで設定されている場合、コミットを含むパイプライン実行が失敗すると、電子メールでユーザーに通知されます。
このオプションは、パイプラインの [詳細] タブで編集できます。
各ユーザーは、自分のコミットの通知を電子メールで受信します。電子メールには、コミット、失敗したビルド、失敗したテスト (項目数に制限あり) が記載されます。また、関連するパイプライン実行の [テスト] タブを開くリンクも含まれています。
バックログ項目に関連付けられたコミットの追跡
バックログ項目に関連付けられたコミットを追跡するには、次のいずれかを実行します。
-
バックログ項目の [コミット] タブで、特定のバックログ項目に関連するすべてのコミットを検索します。詳細については、[コミット] タブによるコミットされた変更の追跡を参照してください。
-
ダッシュボードウィジェットを使用して、SCMの変更内容とバックログへの影響を追跡および分析します。詳細については、ダッシュボードを使用したコミットの分析を参照してください。
[コミット] タブによるコミットされた変更の追跡
[コミット] タブには、正しい構文のSCMコミットメッセージを使用してALM Octaneバックログ項目に関連付けられた変更がすべて表示されます。
[コミット] タブには、パイプライン実行、バックログ項目、チームバックログモジュールでアクセスできます。
どのコミットを見たいですか? | どこで [コミット] タブを開きますか? |
---|---|
パイプライン実行に関連するコミット。 |
|
コミットメッセージを使ってバックログ項目に関連付けられたコミット。 |
バックログ項目のIDをクリックします。クリックする場所は、バックログ、チームバックログ、不具合などです。 |
エピックまたはフィーチャーで定義されたバックログ項目に関連付けられたコミット。 |
エピックまたはフィーチャーのIDをクリックします。クリックする場所は、バックログ、品質モジュールなどです。 |
選択されたリリースおよびスプリントの期間内に、チームのメンバーがコミットしたコミット。 |
チームバックログで、関連するチームを選択します。 右の [チーム] ペインで特定のチームメンバーをクリックすると、そのメンバーのコミットのみが表示されます。 |
[コミット] タブ:
コミットしたユーザーの名前やコミットメッセージ (コメント) などの追加情報がコミットごとに表示されます。
-
また,オプションでグリッドにカラムを追加することにより、その他の詳細情報を表示することも可能です。たとえば、注意が必要なコード領域 (ホットスポット) の変更がコミットに含まれている場合、[リスク] カラムにリスクインジケーターが表示されます。
[リポジトリ] カラムは、GitまたはSVNで作業している場合にのみ使用します。
-
このタブの情報は、変更をコミットしたユーザーの名前などを基準に絞り込むことができます。
ヒント: ユーザーを基準に絞り込む場合は、SCMユーザーがALM Octaneユーザーにマップされていることを確認してください。詳細については、SCMユーザーをALM Octaneユーザーにマッピングするを参照してください。
ユーザーが変更をコミットし、そのSCMユーザーがALM Octane ユーザーにまだマップされていない場合は、をクリックしてマッピングを作成します。
-
コミットを選択します。このコミットに含まれるファイルのリストが、右側に表示されます。SCMシステムの情報が提供される場合、ALM Octaneは編集、追加、削除されたファイルを識別します。
注: GitにUnicode文字を含むファイル名があり、そのファイル名をALM Octaneで表示したい場合には、Gitの設定を次のように変更してください。
git config --global core.quotePath false
-
ALM Octaneでは、[コミット] ペイン内の変更済みファイルに対して、リポジトリビューアーのファイルビューと差分ビューへのHTTPリンクを提供できます。これを有効にするには、HTTPリンクのテンプレートを設定します。詳細については、リポジトリビューアーへのリンクの有効化 (GitまたはSVNのみ)を参照してください。
ダッシュボードを使用したコミットの分析
ダッシュボードまたはバックログの概要で、コミットに基づいたカスタムウィジェットを作成します。
または、ALM Octaneの定義済みウィジェットを、ダッシュボードの [DevOpsと分析] カテゴリで使用します。
例:
-
変更の影響ウィジェットを使用して、ソースコードの変更が及ぼす影響を確認します。
最近操作したバックログ項目とアプリケーションモジュールを特定し、それぞれに関連するコミットの数を確認します。この情報から、さらに綿密なテストが必要な領域を判断することができます。
注:
- コミットと、フィーチャーおよびアプリケーションモジュールの関連付けには、コミットのメッセージに記載されているユーザーのストーリーまたは不具合を使用します。
-
ウィジェットでは、過去30日間のコミットが標準設定で表示されます。表示期間は、ウィジェットエディターの [スコープ] タブで変更できます。
ALM Octaneアナライザー
ALM Octaneアナライザーは、失敗したテストとユーザーの間の相関を試みる組み込みツールです。
アナライザーを使用すると、テストの失敗の原因となるコミットを行ったユーザーを見つけることができます。CIで失敗したテストが表示された場合に連絡先を決定するのに役立つため、時間を大幅に節約できます。これは、開発者、QAエンジニア、およびCI所有者にとって特に便利です。
テストの失敗は、ソースコードの問題、テストコードの問題、環境の問題など、さまざまな理由で発生する可能性があります。
ALM Octaneアナライザーは、障害の特性を理解し、連絡するのに最も適切な人を決定しようとします。ソースコードまたはテストの問題の場合、この人はコミッターである可能性があります。このシナリオでは、失敗の根本原因である関連するコミットデータを表示できます。または、コミッター以外のユーザーにすることもできます。このユーザーは障害の原因ではないかもしれませんが、障害が発生した理由を明らかにすることができる場合があります。
以下は、ALM Octaneアナライザーのリストです。それらの出力は、テストの失敗とユーザーの関係を示唆しており、コミッターの問題の場合は、追加のコミットデータを示唆しています。
アナライザー |
実行 |
説明 |
---|---|---|
不安定なテスト |
不安定と見なされるテスト |
テストが不安定な場合、ALM Octaneは、テストファイルが不安定になる前に変更された最後のコミットを示します。このコミットは、現在の不安定性を引き起こした初期障害に関連している可能性があります。 |
スタックトレースをテストする |
すべてのテストの失敗 |
現在のテスト失敗のスタックトレースにリストされているファイルへの変更を含むコミットを探します。 |
関連ファイル |
新しいテストの失敗 |
コミッターと担当者の履歴を分析することにより、以前にこのテストにリンクされたファイルへの変更を含むコミットを探します。 コミッターがテストの失敗のために「その上」として手動で割り当てられるときはいつでも、テストへのコミットされたファイル間に関係が構築されます。次に、これを使用して、新しい障害に関連するコミットを識別します。 |
同じアプリケーションモジュール |
新しいテストの失敗 |
テストに割り当てられたアプリケーションモジュールに関連するコミットを探します。 コミットは、コミットメッセージに記載されているストーリーと、それらのストーリーが属するフィーチャーを介して、アプリケーションモジュールに関連付けられています。 |
同じフィーチャー |
新しいテストの失敗 |
テストに割り当てられているアプリケーションモジュールに関連するコミットを探します。 コミットは、コミットメッセージに記載されているストーリーを介してフィーチャーに関連しています。 |
最後に |
新しいテストの失敗 |
[割り当て先] フィールドを見て、このテストを修正した最後の人を探します。 |
テスト所有者 |
新しいテストの失敗 |
テスト調査を支援する可能性のある人々への推奨事項として、テストの所有者を提供します。 |
クラスター |
新しいテストの失敗 |
同じ理由で失敗したテストの責任を負った他のユーザーを探します (彼らは同じテスト失敗クラスターにいます)。詳細については、テストの失敗分析の展開を参照してください。 |
コミットメッセージ |
新しいテストの失敗 |
コミットメッセージのテキストをチェックし、完全なテスト名とコミットメッセージの関係を探します。 |
コミットされたファイル |
新しいテストの失敗 |
コミットされたファイルとその名前をチェックし、完全なテスト名とファイルの関係を探します。 |
失敗に関連するコミットを見つける
パイプライン実行の失敗を分析すると、[テスト] タブにはテスト実行の失敗に関連する可能性のあるコミットが表示されます。詳細については、テストの失敗分析の展開を参照してください。
ALM Octaneは、コミットされたファイルリストとコミットメッセージ内のキーワードを強調表示します。これにより、アナライザーはテスト失敗の疑いがあるユーザーをリストします。強調表示は、2つのアナライザーに基づいています。
アナライザー |
実行 |
説明 |
---|---|---|
コミットメッセージ |
新しいテストの失敗 |
コミットメッセージのテキストをチェックし、完全なテスト名とコミットメッセージの関係を探します。 |
コミットされたファイル |
新しいテストの失敗 |
コミットされたファイルとその名前をチェックし、完全なテスト名とファイルの関係を探します。 |
管理者は、BLAME_COMMITTER_ANALYZERS_EXCLUDE_WORDSサイトパラメーターを使用して、アナライザから除外する特定の単語を一覧表示できます。アナライザーは、これらの単語の1つを検出しても、コミッターの非難レポートをトリガーしません。詳細については、設定パラメーターを参照してください。
ALM Octaneアナライザーの詳細については、ALM Octane Analyzersを参照してください。
SCMユーザーとALM Octaneユーザーのマッピング
SCMの変更をコミットするユーザーをALM Octaneユーザーとして識別すると、ALM Octaneのウィジェットやフィルターなどを使用してコミット情報を分析できます。
SCMユーザーに対して定義された電子メールアドレスがALM Octaneユーザーに対して定義された電子メールアドレスと同じである場合、これらのユーザーがコミットした変更が検出されると、これらのユーザーが自動的にマッピングされます。
ヒント: コミットの作成者をCIサーバーと共有するようにお使いのSCMシステムが設定されている必要があります。たとえば、Jenkins Gitプラグインで、[Use commit author in changelog] オプションを設定します。
これ以外の場合は、スペース管理者がユーザーを手動でマップできます。詳細については、ロールと権限の割り当てを参照してください。
また、ALM Octaneユーザーは、[コミット] タブ内のマップされていないSCMユーザーに自分自身をマップすることが可能です。詳細については、[コミット] タブによるコミットされた変更の追跡を参照してください。
トラブルシューティング
-
パイプラインに関するコミット情報が表示されない
パイプラインの実行中にALM Octaneサーバーを再起動すると、パイプラインを実行するまで変更情報を利用できません。パイプラインを再実行してください。
-
バックログ項目に関連するコミットが表示されない。または、コミットに関連するバックログ項目が表示されない
正しい構文でコミットメッセージが指定されていることを確認してください。
参照情報: