アンドロイド - CTS(Compatibility Test Suite)をテストする方法

By JS | Last updated: October 16, 2019

Android CTSはCompatibility Test Suiteの略です。 CTSは、Androidの互換性テストであり、メーカーからAndroidの端末を作成すると、CTSテストに合格しなければなら販売をすることができます。 CTSは、Androidの分断化をある程度防ぎ、テストコードで要求される性能を満たすようにします。

一般的に、Androidアプリ開発者は、CTSテストを実行する理由はありません。 一方、デバイスにAndroidのを移植する開発者は、CTSテストをたくさん接するようです。

CTSテストコードは、Androidのソースに含まれており、Androidのサイトで構築されたことをダウンロードすることができます。 CTSテストツールをダウンロードして、直接テストを実行する方法を紹介します。

CTSツールのダウンロード

Android - CTS Downloadページを見れば、Androidのバージョン別にCTSツールのダウンロードリンクがあります。 ARMデバイスでテストをしている場合、 "Android Compatibility Test Suite (CTS) - ARM"を受けていただければされます。 もしX86デバイスやPCの仮想マシンでテストされた場合、 "Android Compatibility Test Suite (CTS) - x86"を受ければされます。

私はAndroidの10のX86バージョンCTSツールを受けました。圧縮をプシゴシェルフォルダの場所まで進入します。

CTSツールを実行

android-cts/toolsフォルダに進入しcts-tradefedバイナリを実行すると、CTSテストシェル入ります。 CTSテストコマンドを使用してテストを実行することができます。

android-cts-10_r1-linux_x86-x86/android-cts/tools$ ./cts-tradefed
==================
Notice:
We collect anonymous usage statistics in accordance with our Content Licenses (https://source.android.com/setup/start/licenses), Contributor License Agreement (https://opensource.google.com/docs/cla/), Privacy Policy (https://policies.google.com/privacy) and Terms of Service (https://policies.google.com/terms).
==================
Android Compatibility Test Suite 10_r1 (5771379)
Use "help" or "help all" to get more information on running commands.
cts-tf >

もし次のようにaaptがpathに設定ができないた出てきたならば、ローカルにダウンロードしたaaptのパスを設定していただければされます。

android-cts-10_r1-linux_x86-x86/android-cts/tools$ ./cts-tradefed
Unable to find aapt in path.

アンドロイドスタジオのSDKをダウンロード頂きましたらaaptもダウンロードされます。 ".bashrc"ファイルに次のようにaaptがあるフォルダのパスを登録していただければされます。

## aapt
export PATH="/home/codechacha/Android/Sdk/build-tools/29.0.0-rc3/":$PATH

このほか、Pythonのとか、他のプログラムがインストールされていなくて実行できないなら、それぞれのインストールしてください。

CTSテストを実行

CTSシェルで次のコマンドを打てば実行可能なテストモジュールを見ることができます。 テストモジュールは、テストのグループと見ればされます。

cts-tf > list modules
x86_64 CtsAbiOverrideHostTestCases
x86 CtsAbiOverrideHostTestCases
x86_64 CtsAccelerationTestCases
x86 CtsAccelerationTestCases
x86_64 CtsAccessibilityServiceTestCases
....

次のコマンドを使用してくださいすべてのCTSのテスト(すべてのモジュール)を実行します。

$ run cts

特定のモジュールのテストのみを実行するには、次のように --moduleオプションでモジュール名を指定していただければされます。

cts-tf > run cts --module CtsAccountManagerTestCases
10-16 18:23:52 I/TestInvocation: Starting invocation for cts with [ DeviceBuildInfo{bid=5771379, serial=emulator-5554} on device emulator-5554]
....

特定のモジュールの特定のクラスのテストのみを実行したいことがあります。 --testオプションクラス名を指定していただければされます。

cts-tf > run cts --module CtsAccountManagerTestCases --test android.accounts.cts.AbstractAuthenticatorTests

--testに明示したクラスに#をブトイシゴメソッド名を書いていただければ、そのメソッドのみをテストします。

cts-tf > run cts --module CtsAccountManagerTestCases --test android.accounts.cts.AbstractAuthenticatorTests#testIsCredentialsUpdateSuggestedDefaultImpl

このように、必要なテストのみを実行するようにすることができます。

の結果を確認

テストが完了すると、CTSは、テストログと結果をファイルにして保存します。

logs/results/という名前のフォルダにログと結果のファイルが保存されます。ファイル名は、テストを実行した時間です。

android-cts-10_r1-linux_x86-x86/android-cts$ tree
.
├── logs
│   └── 2019.10.16_18.23.52
│       └── inv_1830944061350375746
├── results
│   └── 2019.10.16_18.23.52
│       └── vintf-files
│           ├── proc_config.gz
│           └── sepolicy
.....

より詳細なテストオプション

より多くのテストのオプションについて知りたい方はAndroid - CTSコマンドページをご確認ください。 中間見ればオプションについて詳しく説明をしています。

参考

Related Posts

codechachaCopyright ©2019 codechacha