Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

Firebaseテストラボの結果を分析する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Firebase Test Lab を使用して Android アプリでテストを実行するには、コマンドライン インターフェースAndroid Studio 、Firebase コンソールのTest Lab UITesting APIなど、複数の方法があります。どのような方法でテストを開始しても、結果は指定した Firebase プロジェクトに保存されます。上記のツールに加えて、 ToolResults APIを使用して結果を調べることができます。このページでは、これらのテスト結果を確認して分析する方法について説明します。

重要な概念

以前のすべてのテスト実行の結果を表示するには、Firebase コンソールのプロジェクトの左側のナビゲーション パネルで [テスト ラボ] を選択します。このページには、Test Lab を使用してプロジェクトでテストしたアプリからのすべてのテスト実行が表示されます。

テスト結果を確認するには、まず次の 3 つの概念を理解する必要があります。

選択したデバイスと構成に対してテストまたは一連のテスト ケースを実行すると、Test Lab はアプリに対してテストをバッチで実行し、結果をテスト マトリックスとして表示します。

デバイス × テスト実行 = テスト マトリックス

デバイス
電話、タブレット、ウェアラブル デバイスなど、テストを実行する物理デバイスまたは仮想デバイス (Android のみ)。テスト マトリックス内のデバイスは、デバイス モデル、OS バージョン、画面の向き、およびロケール (地域および言語設定とも呼ばれます) によって識別されます。
テスト、テスト実行
デバイスで実行するテスト (または一連のテスト ケース)。デバイスごとに 1 つのテストを実行するか、必要に応じてテストを分割して、そのテスト ケースを異なるデバイスで実行できます。
テスト マトリックス
テスト実行のステータスとテスト結果が含まれます。マトリックス内のいずれかのテスト実行が失敗すると、マトリックス全体が失敗します。

次のセクションでは、テスト結果をナビゲートする方法について説明します。

テスト履歴の結果を解釈する

Test Labを選択してテスト結果に移動すると、これまでに実行したテストの結果が表示されます。

テスト履歴はアプリごとにグループ化されます。各アプリについて、最新の 5 つのテスト マトリックスのみが表示されます。さらに利用可能な場合は、アプリ テスト リストの下部にある [すべてのマトリックス] リンクをクリックして、そのアプリの完全なリストを表示できます。

テスト マトリックスの結果を解釈する

テスト ラボ UIからテストを開始すると、テスト マトリックスを表示できるページにリダイレクトされ、特定のテスト実行をクリックしてテスト結果を表示できます。 Android Studiogcloud コマンドは、テスト マトリックスの結果ページの URL も提供します。

典型的なテスト マトリックスでは、十数台の異なるデバイスでテストを実行することがあります。テストの実行ごとに異なる結果が得られる可能性があります。テスト マトリックスでのテスト実行で考えられる結果には、次のようなものがあります。

  • 合格したテスト合格: 障​​害は発生していません。
  • 失敗したテストに失敗しました: 少なくとも 1 つの障害が発生しました。
  • 結論が出ないテスト合格: おそらくテスト ラボのエラーが原因で、テスト結果は決定的ではありませんでした。
  • スキップしましたテスト合格: マトリックス内の一部のテスト実行で選択されたディメンション値に互換性がありませんでした。これは、選択したデバイスが、選択した 1 つ以上の Android API レベルと互換性がない場合に発生します。

Firebase プロジェクト内の特定のアプリのすべてのテスト マトリックスの集計されたテスト結果を確認するには、次の例に示すように、アプリの名前をクリックします。

4 つのテスト実行のみを含むテスト マトリックス結果ページの例テスト マトリックスの結果

これにより、アプリのテスト マトリックス リストが表示されます。ここで、任意のテスト マトリックスの名前をクリックしてテスト マトリックスの結果を表示したり、アプリの名前 (下の赤いボックスに表示) をクリックしてテスト マトリックスを表示したりできます。 Firebase プロジェクトに関連付けられている他のアプリのテスト マトリックス リスト。

テスト マトリックス リスト ページの例テストマトリックス一覧

テスト マトリックスは、合格、不合格、または決定的ではない可能性があります。テスト マトリックスは、そのマトリックス内のいずれかのテスト実行が失敗するか、決定的でない場合、失敗または決定的でないと表示されます。

ロボテストの結果を解釈する

Robo でテストを実行した場合、結果には、通常のテスト メトリックに加えて、UI をクロールする Robo のビデオとスクリーンショットが含まれます。これらのビデオとスクリーンショットには、Android の「タッチを表示」機能と同様に、Robo がクロール中に行ったアクションの視覚的な表示が含まれています。表示を使用して、Robo の進行状況を追跡し、発見されたバグを再現することができます。

サンプルロボテスト結果動画

ロボテスト結果

1 回のテスト実行の結果を解釈する

テスト マトリックスの結果ページから、テスト実行の 1 つをクリックして、その特定のテスト実行の結果を確認します。

テスト実行結果ページの例テスト実行結果

このページでは、各テストの実行にかかった時間を確認できます。テスト APK のメソッドに対応する特定のテスト ケースの結果 (計測テスト用) と、テスト ログ、スクリーンショット、動画などの詳細なテスト結果も表示できます。 Robo testの場合、詳細なテスト結果には、Robo テストによってアクセスされた UI パスをグラフィカルに示すアクティビティ マップも含まれます。

分割されたインストルメンテーション テストの結果

インストルメント化されたテスト結果を解釈しやすくするために、Test Lab は各テストを独自の詳細なレポート ページに分割し、スタック トレース、ログ、ビデオを完備しています。この機能は、Android Orchestrator を使用しているかどうかにかかわらず機能します。

テストケース結果ページの例テストケースの結果

アクセシビリティの結果を解釈する

Robo テストでは、Android Accessibility Scanner を使用してアプリのアクセシビリティの問題を検出します (デバイスでローカルにスキャンを実行することもできます)。 Robo テストのアクセシビリティ結果を確認して解釈する方法については、 「アクセシビリティ スキャナーを使ってみる」を参照してください。

アプリのアクセシビリティを改善する方法に関する一般的な情報については、 Android デベロッパーのアクセシビリティに関するドキュメントを参照してください。

パフォーマンス指標

物理デバイスで実行されるテストは、パフォーマンス メトリックも返します。

メトリック必要なデバイス構成
アプリの起動時間API 19+
CPU使用率API 21+
メモリ使用量
ネットワーク活動
フレーム/秒API 21+、 SurfaceViewを含む
グラフィック性能API 23+

グラフィック性能の詳細

グラフィック パフォーマンス レポートには、いくつかの主要なグラフィック メトリックに関する統計が含まれています。

  • Missed Vsync:欠落した Vsync イベントの数を、レンダリングに 16 ミリ秒以上かかったフレームの数で割った値。
  • 高入力レイテンシー: 24 ミリ秒より長くかかった入力イベントの数を、レンダリングに 16 ミリ秒より長くかかったフレーム数で割った値。
  • 遅い UI スレッド: UI スレッドの完了に 8 ミリ秒以上かかった回数を、レンダリングに 16 ミリ秒以上かかったフレーム数で割った値。
  • 遅い描画コマンド: GPU への描画コマンドの送信に 12 ミリ秒以上かかった回数を、レンダリングに 16 ミリ秒以上かかったフレーム数で割った値。
  • 遅いビットマップのアップロード: ビットマップの GPU へのアップロードに 3.2 ミリ秒以上かかった回数を、レンダリングに 16 ミリ秒以上かかったフレーム数で割った値。
  • レンダリング時間:テスト実行の各フレームのレンダリング時間の分布。レンダリング時間が 32 ミリ秒を超えると、UI がかなり遅くなります。 700+ のレンダリング時間は、フリーズ フレームを示します。レンダリング データはdumpsys graphicsstatsから収集されます。

詳細なテスト結果

詳細なテスト結果は、テストを実行してから 90 日間利用でき、Google Cloud Storage バケットに保存されます (ただし、Firebase コンソールにも表示されます)。テスト実行結果ページで [テスト結果] をクリックすると、Cloud Storage バケットで詳細なテスト結果を表示できます。詳細なテスト結果が利用できなくなった場合でも、どのテストが成功したか失敗したかを確認できます。

詳細なテスト結果を 90 日以上保持するには、 --results-bucket gcloud コマンドライン オプションを使用して、所有する Cloud Storage バケットにこれらのテスト結果を送信する必要があります。その後、 Age設定を設定して、結果が Cloud Storage バケットに保存される期間を決定できます。 Age設定の変更方法については、ライフサイクル条件を参照してください。