互換性テストスイート(CTS)は、デバイスが Android と互換性があることを確認できる、無料でありながら商用レベルの品質をもつテストスイートであり、ツールです。CTS は、日々のワークフロー(継続的構築システムなど)に組み込めるように設計されています。CTS は、デスクトップ マシン上で動作し、接続されたデバイスやエミュレータで直接テストを実行します。Android の互換性の概要については、Android 互換性プログラムの概要をご覧ください。
図 1. CTS 自動テスト
図 1 は CTS 自動テストを実行するプロセスを示しています。
- CTS をダウンロードしてインストールします。このステップでは、テスト環境、テスト ワークステーション、テストの対象となるデバイス、つまりテスト対象デバイス(DUT)の設定も行います。
- CTS 自動テストを実行します。
- 結果を保存し、確認します。
- 問題を解決し、テストを再実行します。
CTS を使用することで、早い段階で非互換性を発見し、開発プロセス全体を通じて Android の実装の互換性を保つことができます。
CTS コンポーネント
CTS には次の主要コンポーネントが含まれています。
- Trade Federation
- テストハーネスとフレームワークを使用することで、自動的にテストを実行できます。
- CTS 自動テスト
- Trade Federation フレームワークを使用し、Trade Federation テストハーネスを使用して実行できるテストです。
- CTS 検証(CTS-V)テスト
- テストは手動で実行する必要があります。
- CTS 検証(CTS-V)アプリ
- CTS-V テストを実行し、その結果を収集するアプリです。
- テストケース
個々のテストは DUT で実行されます。自動テストケースは JUnit テストとして Java で記述され、Android APK ファイルにパッケージ化されてデバイス ターゲットで実行されます。
テストケースは、単体テストまたは機能テストです。単体テストでは、Android プラットフォーム内の不可分なコードをテストします。たとえば、単一の Android クラスのみをテストします。
機能テストでは、特定のユースケースで使用されるメソッドとクラスを組み合わせてテストします。
- テスト構成
DUT 上で実行される特定の自動テストセットです。テスト構成は、
WORKING_DIRECTORY/cts/tools/cts-tradefed/res/config
に配置されている XML ファイルに記載されています。すべての自動テストケースを含むテスト構成と、テストケースのサブセットを含むテスト構成があります。- テスト モジュール
同じ機能領域のテストケースのコレクションで構成されたテスト構成です。
- テストプラン
テスト モジュールのコレクションで構成されたテスト構成です。
テスト カバレッジ
テストケースは、互換性の確保のために以下の分野をカバーしています。
分野 | 説明 |
---|---|
署名テスト | 各 Android リリースには、そのリリースに含まれるすべての公開 API の署名を記述した XML ファイルがあります。CTS には、デバイスで使用可能な API に対して API 署名を検証するユーティリティが含まれています。署名の検証結果は、テスト結果の XML ファイルに記録されます。 |
プラットフォーム API テスト | プラットフォーム(コアライブラリ、Android アプリケーション フレームワーク)の API が SDK クラス索引の記述どおりか否かをテストします。具体的には、クラスの署名、属性の署名、メソッドの署名、メソッドの動作などの API の正しさの確認、不正なパラメータの処理に関する動作の確認を行います。 |
Dalvik テスト | 対象を Dalvik 実行形式に絞ったテストです。 |
プラットフォーム データモデル | コンテンツ プロバイダを通じてアプリケーション デベロッパーに公開されるコア プラットフォーム データモデルが、SDK の android.provider パッケージの記述どおりか否かをテストします。連絡先、ブラウザ、設定などをテストします。 |
プラットフォーム インテント | コア プラットフォームのインテントが、SDK の一般的なインテントの記述どおりか否かをテストします。 |
プラットフォーム パーミッション | コア プラットフォームのパーミッションが、SDK の Manifest.permission の記述どおりか否かをテストします。 |
プラットフォーム リソース | コア プラットフォームのリソースタイプが、SDK のリソースタイプの概要の記述どおりの正しい動作をしているか否かをテストします。CTS テストには、単純な値、ドローアブル、9-patch、アニメーション、レイアウト、スタイル、テーマ、代替リソースの読み込みなどが含まれます。 |
次のステップ
このドキュメントを読み終わったら、CTS のセットアップをご覧ください。