この機能は以前「Intelligent Test Runner」と呼ばれており、一部のタグには依然として「itr」が含まれています。
概要 Test Impact Analysis によって、コード変更の影響を受けない無関係なテストをスキップすることが可能になります。
Test Optimization により、開発チームはテストサービス用に Test Impact Analysis を構成し、除外すべきブランチ (たとえばデフォルトブランチ) を設定し、追跡すべきファイルを定義できます (追跡されたファイルの変更時にはすべてのテストの完全な実行がトリガーされます)。
Test Impact Analysis が追跡ファイル、除外ブランチ、および通過したテストを使用して除外テストを定義する方法を示すベン図 テストサービスに Test Impact Analysis を構成し有効化することで、CI 環境全体の信頼性とパフォーマンスを維持しつつ、不要なテスト時間を削減し、CI のテスト効率を向上させ、コストを削減します。
Test Impact Analysis は コードカバレッジデータ を使用してテストをスキップすべきかどうかを判断します。詳細は Datadog の Test Impact Analysis の仕組み を参照してください。
Test Impact Analysis のセットアップ Test Impact Analysis をセットアップするためには、お使いのプログラミング言語に関する以下のドキュメントを参照してください。
Test Impact Analysis の有効化 Test Impact Analysis を有効にするには
Software Delivery > Test Optimization > Settings に移動します。Test Services タブで、サービスの Test Impact Analysis
列で Configure をクリックします。Test Impact Analysis Activation Write
権限が必要です。詳細は Datadog のロール権限についてのドキュメント を参照してください。
クリティカルブランチ (例えばデフォルトブランチなど) で Test Impact Analysis を無効にすることで、包括的なテストカバレッジが確保されますが、機能や開発ブランチでそれを有効にすることで、テストの効率を最大限に高めることができます。
Test Impact Analysis の構成 Test Impact Analysis を構成して、特定のテストがスキップされないようにすることができます。これらのテストはスキップできないテスト と呼ばれ、コードカバレッジデータ にかかわらず実行されます。
Test Impact Analysis を構成するには
有効化したいテストに対して、Configure をクリックします。 Status トグルをクリックして Test Impact Analysis を有効にします。除外するブランチ (通常はリポジトリのデフォルトブランチ) を指定します。Test Impact Analysis は、これらのブランチのテストをスキップしません。 追跡するファイルディレクトリとファイルを指定します (たとえば documentation/content/**
や domains/shopist/apps/api/BUILD.bazel
など) 。Test Impact Analysis は、これらの追跡ファイルが変更された場合、すべての CI テストを実行します。 Save Settings をクリックします。テストサービスで Test Impact Analysis を構成した後、デフォルトブランチでテストスイートの実行を行います。これにより、将来のコミットで無関係なテストを正確にスキップできる基準が確立されます。
Test Impact Analysis のデータを使用する Test Impact Analysis を有効にすることで収集されたデータを探索し、テストのスキップによる時間節約や、組織における Test Impact Analysis の利用状況などを分析して、CI の効率を向上させましょう。
ダッシュボード を作成してテストのメトリクスを視覚化することも、Test Impact Analysis が収集したデータを利用したウィジェットを含むすぐに使えるダッシュボード を使用して、利用パターンや傾向から改善点を特定することもできます。
Test Optimization Explorer で結果を検証する Test Optimization Explorer では、Test Optimization と Test Impact Analysis から収集したデータを用いて視覚化の作成やテストスパンのフィルタリングが可能です。Test Impact Analysis がアクティブな場合は、各テストセッションやコミットで節約された時間が表示され、期間バーが紫色に変わります。これはアクティブなテストスキップを示します。
次のすぐに使える Test Impact Analysis ファセット を使用して、検索クエリをカスタマイズします。
Code Coverage Enabled テストセッション中にコードカバレッジ追跡が有効であったかどうかを示します。 Skipped by ITR Test Impact Analysis によってセッション中にスキップされたテストの数です。 Test Skipping Enabled テストセッションで Test Impact Analysis が有効であったかどうかを示します。 Test Skipping Type Test Impact Analysis がスキップするテストを決定するために使用される方法または基準です。 Tests Skipped テストセッション中に実行されなかったテストの総数。これには、スキップするように構成されたテストや、手動で除外されたテストが含まれる場合があります。 Time Saved Test Impact Analysis の使用によってセッションで節約された時間の長さです。 たとえば、Test Skipping Enabled
を持つテストセッションの実行をフィルタリングするには、検索クエリで @test.itr.tests_skipping.enabled:true
を使用します。
次に、テストセッションの実行をクリックし、テストセッションのサイドパネルの Test Session Details セクションで、Test Impact Analysis によって節約された時間の量を確認します。
その他の参考資料