互換性テストスイート

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

Compatibility Test Suite (CTS) は無料の商用グレードのテスト スイートで、バイナリとして、またはAndroid オープン ソース プロジェクト (AOSP)のソースとしてダウンロードできます。 CTS は、互換性の「メカニズム」を表します。

CTS はデスクトップ マシンで実行され、接続されたデバイスまたはエミュレーターでテスト ケースを直接実行します。 CTS は、デバイスを構築するエンジニアの毎日のワークフロー (継続的なビルド システムなどを介して) に統合されるように設計された単体テストのセットです。その意図は、早い段階で非互換性を明らかにし、開発プロセス全体を通じてソフトウェアの互換性を維持することです。

CTS は、次の 2 つの主要なソフトウェア コンポーネントを使用する自動テスト スイートです。

  • CTS Trade Federationテスト ハーネスはデスクトップ マシン上で実行され、テストの実行を管理します。複数のテスト対象デバイス (DUT) にわたってテストを分割する機能を提供します。スイートの再試行機能を使用して、スイート全体ではなく失敗のみを再試行して、再実行時間を大幅に短縮することもできます。
  • 個々のテスト ケースが DUT 上で実行されます。テスト ケースは、実際のデバイス ターゲットで実行する JUnit テストおよびパッケージ化された Android .apk ファイルとして Java で記述されます。

Compatibility Test Suite Verifier (CTS Verifier) は、ダウンロード可能な CTS を補足するものです。 CTS Verifier は、固定デバイスでは手動入力なしではテストできない API および機能 (オーディオ品質、加速度計など) のテストを提供します。

CTS Verifier は、手動テスト用のツールであり、次のソフトウェア コンポーネントが含まれています。

  • DUT で実行され、結果を収集する CTS 検証アプリ。

  • デスクトップ マシンで実行される実行可能ファイルまたはスクリプトで、CTS Verifier アプリの一部のテスト ケースにデータまたは追加の制御を提供します。

ワークフロー

CTS フロー

図 1. CTS の使用方法

この図は、CTS ワークフローをまとめたものです。詳細な手順については、セットアップから始まるこのセクションのサブページを参照してください。

テストケースの種類

CTS には、次の種類のテスト ケースが含まれています。

  • 単体テストは、Android プラットフォーム内のコードのアトミック ユニットをテストします。たとえば、java.util.HashMap などの単一のクラスです。
  • 機能テストは、高レベルのユースケースで API の組み合わせを一緒にテストします。

CTS の将来のバージョンには、次のタイプのテスト ケースが含まれます。
  • 堅牢性テストは、ストレス下でのシステムの耐久性をテストします。
  • パフォーマンス テストでは、1 秒あたりのフレーム数のレンダリングなど、定義されたベンチマークに対してシステムのパフォーマンスをテストします。

対象エリア

単体テスト ケースは、互換性を確保するために次の領域をカバーしています。

領域説明
署名テスト各 Android リリースには、リリースに含まれるすべての公開 API の署名を記述した XML ファイルがあります。 CTS には、デバイスで使用可能な API に対してこれらの API 署名をチェックするためのユーティリティが含まれています。署名チェックの結果は、テスト結果 XML ファイルに記録されます。
プラットフォーム API テストSDKクラス インデックスに記載されているように、プラットフォーム (コア ライブラリと Android アプリケーション フレームワーク) API をテストして、API の正確性を確認します。これには、正しいクラス、属性、およびメソッド シグネチャ、正しいメソッド動作、および不適切なパラメーター処理に対する予期される動作を確認するためのネガティブ テストが含まれます。
ダルビックテストテストは、Dalvik Executable Format のテストに焦点を当てています。
プラットフォーム データ モデルCTS は、SDK android.providerパッケージ (連絡先、ブラウザー、設定など) に記載されているように、コンテンツ プロバイダーを通じてアプリケーション デベロッパーに公開されるコア プラットフォーム データ モデルをテストします。
プラットフォームの意図SDK Available Intentsに記載されているように、CTS はコア プラットフォーム インテントをテストします。
プラットフォームの権限SDK Available Permissionsに記載されているように、CTS はコア プラットフォームの権限をテストします。
プラットフォーム リソースCTS は、SDK Available Resource Typesに記載されているように、コア プラットフォーム リソース タイプが正しく処理されているかどうかをテストします。これには、単純な値、ドローアブル、9 パッチ、アニメーション、レイアウト、スタイルとテーマ、および代替リソースの読み込みに関するテストが含まれます。