概要

Test Optimization Explorer では、任意のタグを使用して、テスト実行を複数のレベルで検索とフィルター視覚化エクスポートすることができます。

Software Delivery > Test Optimization > Test Runs に移動すると、SessionModuleSuiteTest のレベルで CI のテスト実行結果が表示されます。各テストレベルは、テストの集計の異なるレベルを表します。

一般的なファセット

左側の Test パネルには、テスト実行の検索に使用できるデフォルトのファセットが表示されます。

ファセット説明
Test Statusテストの結果: PassedFailed、または Skipped
Durationテストが完了するまでの時間。
Test ServiceCI Visibility でインスツルメンテーションされたテストサービス
Test Full Nameテストの識別子です。テスト名、テストスイート名、構成やパラメーターがある場合はそれを含みます。
Test Nameテストケースの簡潔な名前です。テスト自体で定義されます。
テストスイート言語やテストフレームワークによって、同じコード単位を実行するテストのグループです。
Flaky同じコミットに対して複数回テストを実行した際に、通過と失敗の両方のステータスを示します。
Has Parametersテストにパラメーターがあるかどうか: true または false
Known Flakyテストが不安定であるかどうか (true または false) です。

このテスト実行が失敗し、現在のブランチまたはデフォルトブランチで、そのテストが不安定と認識された場合です。
言語テストを生成したライブラリのプログラミング言語。
New Flakyこの不安定なテストが以前に発生したかどうか (true または false) です。

このテストが実行されたコミットで、そのテストが不安定であることが特定されます。このテストが、以前に現在のブランチやデフォルトブランチでは不安定なテストとして認識されなかった場合です。
Performance Regressionテスト実行が回帰としてマークされるのは、その期間が平均の 5 倍であり、デフォルトブランチの同じテストの最大期間よりも長い場合です。
Baseline Meanテスト回帰の場合、デフォルトブランチにおける同じテストの、直近 1 週間の平均実行時間を示します。
Baseline Standard Deviationテスト回帰の場合、デフォルトブランチにおける同じテストの標準偏差を、直近 1 週間の実行期間で計算した値で示します。
Absolute Changeテスト回帰の場合、ベースライン平均と比較したテスト実行期間の絶対変化を示します。
Relative Changeテスト回帰の場合、ベースライン平均と比較したテスト実行期間の相対変化を示します。
Standard Deviation Changeテストが新しく追加されたかどうかを示します。
Test Code Ownersリポジトリの構成から推測されるテストのコード所有者の名前です。
Test Fingerprint個々のテスト実行に対する一意の識別子です。
Test Frameworkテストの作成と実行に使われた基本的なフレームワークやツールのセットです。
Test Commandテストの実行に使われたコマンドです。
Test Bundleテストモジュールに相当します。以前のバージョンの Datadog テストライブラリで使用されます。
Test Full Nameテストの正式名称。
Test Moduleテストモジュールは言語によって異なります。

.NET では、テストモジュールは同じユニットテストプロジェクトの下で実行されるすべてのテストをグループ化します。
Swift では、テストモジュールは指定されたバンドルのために実行されるすべてのテストをグループ化します。
JavaScript では、テストモジュールはテストセッションに 1 対 1 でマッピングされます。
Java では、テストモジュールは同じ Maven Surefire、Failsafe、または Gradle Test タスク実行によって実行されるすべてのテストをグループ化します。
Python では、テストモジュールは通常 unittestpytest のようなフレームワークによって管理されるテストスイートの一部として、同じ .py ファイルの下で実行されるすべてのテストをグループ化します。
Ruby では、テストモジュールは通常 RSpecMinitest のようなフレームワークによって管理される同じテストファイル内で実行されるすべてのテストをグループ化します。
Test Traitscategory:flaky のようなテストの特性。
Test Typeunit benchmarkbrowser などのテストの種類。
RUM Activeテストがアクティブな Real User Monitoring Web セッションの中で実行されたかどうかを示します。
Is Newテストが新しく追加されたかどうかを示します。
Is Retryテストが再試行の結果として実行されたかどうかを示します。
Code Coverage EnabledTest Impact Analysis がセッションのテストごとにコードカバレッジを有効にしたかどうかを示します。
Skipped by ITRTest Impact Analysis によってセッション中にスキップされたテストの数です。
Test Skipping EnabledTest Impact Analysis によってテストセッションまたはモジュールのスキップが許可されているかどうか。
Test Skipping TypeTest Impact Analysis がスキップするテストを決定するために使用される方法または基準です。
Test Skippedテストセッション中に実行されなかったテストの総数。これには、スキップするように構成されたテストや、手動で除外されたテストが含まれる場合があります。
Time SavedTest Impact Analysis の使用によってセッションで節約された時間の長さです。
Early Flake Detection EnabledEarly Flake Detection を使用してテストが実行されたかどうかを示します。
Early Flake Detection Abort Reasonテストの Early Flake Detection による中止理由を示します。

Test Optimization Explorer で検索クエリの一部として使用できる一般的なファセットについては、テスト実行ファセットを参照してください。

セッション

テストセッションは最も高いレベルの集計です。これらは yarn testmvn testdotnet test などのテストコマンドに一対一で対応しています。

JUnit レポートのアップロードでは、アップロードされたレポートファイル 1 つにつき 1 セッションです。

モジュール

モジュールの定義は言語によって若干の違いがあります。

  • .NET では、テストモジュールは、同じユニットテストプロジェクトの下で実行されるすべてのテストをグループ化します。
  • Swift では、テストモジュールは、与えられたバンドルに対して実行されるすべてのテストをグループ化します。
  • JavaScript では、テストモジュールはテストセッションに一対一でマッピングされます。
  • Java では、テストモジュールは、同じ Maven Surefire/Failsafe または Gradle Test タスク実行で実行されるすべてのテストをグループ化します。
  • JUnit レポートのアップロードでは、テストモジュールはテストセッションに一対一でマッピングされます。

モジュールの例としては、SwiftLintFrameworkTests があり、これは SwiftLint のテストターゲットに対応します。

スイート

テストスイートは、同じコードのユニットを実行するテストのグループです。

テストスイートの例としては、src/commands/junit/__tests__/upload.test.ts があり、これは datadog-ci のテストファイルに対応します。

テスト実行データは、ダッシュボードノートブックで利用できるため、ビルドエンジニアリングチームは、優先度の高い作業や CI の経時的傾向に関するコミュニケーションをカスタマイズすることができます。

検索とフィルター

左側のファセットをクリックするか、検索バーに独自のカスタムクエリを記述することで、テスト実行のサブセットに焦点を絞ったり、広げたり、シフトしたりできます。ファセットを選択または選択解除すると、検索バーに変更が自動的に反映されます。同様に、検索バーのクエリを変更するか、検索バーにクエリをゼロから記述して、左側のファセットを選択または選択解除できます。

  • テストの検索方法については、Explorer を参照してください。
  • クエリの作成方法については、検索構文を参照してください。

分析

情報を導出または統合するために、クエリされたテスト実行を、フィールド、パターン、トランザクションなどの上位エンティティにグループ化します。属性を検索するために作成する必要のない ファセットを使用すると、以下のアクションを実行できます。

  • CI/CD パイプラインで実行されているテストの進捗を検索し、追跡します。
  • すべての CI/CD ジョブの実行を調査して、失敗したテスト実行を特定してトラブルシューティングします。
  • 修正する不安定なテストを特定します。

視覚化

視覚化の種類を選択して、フィルターや集計の結果を視覚化し、テストの実行をよりよく理解できます。たとえば、テスト結果をリストで表示してテストデータを列ごとに整理したり、時系列グラフで表示して CI テストデータの経時変化を測定したりできます。

エクスポート

Test Optimization Explorer のビューをエクスポートすると、後で別のコンテキストで再利用できます。

参考資料

PREVIEWING: sadhbh-a/gcp_guide