Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る
このページは Cloud Translation API によって翻訳されました。
Switch to English

貿易連盟の概要

Trade Federation(Tradefedまたは略してTF)は、Androidデバイスでテストを実行するために設計された継続的なテストフレームワークです。たとえば、Tradefedは、 互換性テストスイート(CTS)およびベンダーテストスイート(VTS)の実行に使用されます。

Trade Federationは、ホストコンピューターで実行されるJavaアプリケーションであり、adb経由でddmlib(DDMSの背後にあるライブラリー)を使用して1つ以上のAndroidデバイスと通信します。

以下に、いくつかのTFの主な機能と、いくつかの使用例を示します。とはいえ、すぐに始めて始めたい場合は、 ここからスタートページに直接アクセスできます。

特徴

  • モジュラー、柔軟、スケーラブルな設計
  • 多くの異なるタイプのAndroidテストを実行するためのサポートが組み込まれています: インストルメンテーションuiautomator 、ネイティブ/ gtest、ホストベースのJUnitなど
  • adbの上に信頼性と回復メカニズムを提供します
  • 複数のデバイスでのテストのスケジューリングと並列実行をサポート

Instrumentationなどの既存のテストの実行方法に関する最新情報については、 TFによるテストを参照してください。

ユースケース

Trade Federationのモジュール性により、既存のビルド、テスト、レポートインフラストラクチャを備えた環境に簡単に組み込むことができます。以下に、取引先が効率的でスケーラブルなテストプラクティスを可能にするいくつかの実証的なユースケースをリストします。

まず、「どの部分が変更可能で、どの部分が静的か」という質問の観点から、潜在的なユースケースの状況を検討することは有用です。たとえば、デバイスOEMはフレームワーク、システム、およびハードウェアを変更できますが、既存のアプリケーションにはほとんどまたはまったく影響を与えません。一方、アプリケーション開発者はアプリを変更できますが、システムまたはフレームワークのほとんどの側面を制御できません。

その結果、各ユースケースのエンティティには異なるテスト目標があり、一連のテストが失敗した場合には異なるオプションがあります。これらの違いにもかかわらず、トレードフェデレーションは、各テストプロセスを効率的、柔軟、かつスケーラブルにするのに役立ちます。

デバイスOEM

デバイスOEMはハードウェアを構築し、多くの場合、Androidシステムとフレームワークを微調整して、そのハードウェアで適切に実行します。 OEMは、ハードウェアレベルとシステムレベルで安定性とパフォーマンスを維持し、フレームワークの変更によって既存のアプリケーションとの互換性が損なわれないようにしながら、これらの目標を達成するために努力する場合があります。

OEMは、 ライフサイクルのターゲットセットアップ段階で実行されるデバイスフラッシュモジュールを実装できます 。そのモジュールは、実行期間中にデバイスを完全に制御します。これにより、デバイスをブートローダー、フラッシュに強制的に投入し、デバイスを強制的に再起動してユーザースペースモードに戻すことができます。継続的ビルドシステムに結合するモジュールと組み合わせると、システムレベルのファームウェアとJavaレベルのフレームワークに変更を加えるときに、OEMはデバイスでテストを実行できます。

デバイスが完全に起動すると、OEMは既存のJUnitベースのテストを活用したり、新しいテストを作成したりして、対象の機能を検証できます。最後に、1つ以上の結果レポートモジュールを記述して、既存のテスト結果リポジトリに関連付けるか、結果を直接(たとえば、 電子メールで )レポートできます

アプリ開発者

アプリケーション開発者は、さまざまなプラットフォームバージョンやさまざまなデバイスで適切に実行する必要があるアプリを構築します。特定のプラットフォームバージョンやデバイスで問題が発生した場合の唯一の救済策は、回避策を追加して次に進むことです。大規模な開発者の場合、テストプロセスを継続的なビルドシーケンスに組み込むことができます。小規模な開発者の場合、定期的または手動で開始されます。

ほとんどのアプリ開発者は、TFに既に存在するapkテストインストールモジュールを使用します。 ローカルファイルシステム からインストールできるバージョンと、ビルドサービスからダウンロードしたAPKインストールできるバージョンがあります 。後者のバージョンは、同じホストマシンで実行されている任意の数のTFインスタンスで引き続き適切に機能することに注意することが重要です。

複数のデバイスを扱う上でTFは熟練しているため、各テスト結果を、そのテストに使用されたデバイスのタイプで分類することは簡単です。したがって、TFはアプリケーションのビルドごとに2次元(または多次元)の互換性マトリックスを生成する可能性があります。

試験サービス

たとえば、テストサービスを使用すると、アプリ開発者がアプリを送信し、電力測定ツールが装備されたデバイスでテストを実行して、アプリの電力使用量を確認できます。これは、サービスビルダーが実行中のデバイスやアプリケーションを制御しないという点で、前の2つのユースケースとは異なります。

Trade Federationは、単純なIRemoteTestインターフェイスを実装する任意のJavaクラスを実行できるため、デバイスで実行されているテストケースと一部の外部ハードウェアを調整できるドライバーを作成するのは簡単です。ドライバー自体は、スレッドを生成したり、他のサーバーに要求を送信したり、その他必要なことを行うことができます。さらに、結果レポートインターフェイスであるITestInvocationListenerのシンプルさと汎用性は、任意のテスト結果(たとえば、数値的な電力メトリックを含む)を標準の結果レポートパイプラインに表現することも同様に簡単であることを意味します。