CTS FAQ

Android互換性プログラムは、Androidエコシステムに対する肯定的なフィードバックを維持するための重要な推進力です。 CTSは、スケールの互換性の品質を確保するための重要なツールです。 Androidチームは、CTSツールとテストカバレッジの改善を続けています。テストケースを定期的に追加すると、互換性のあるデバイスの品質が大幅に向上します。

この記事では、CTSテストをより効率的に実行するためのFAQを提供します。

CTSシャーディングとTFシャーディングの違いは何ですか?

CTSシャーディングとTFシャーディングは、異なるテストインフラストラクチャコードベースを利用したまったく異なるテストプランです。 runコマンドはバージョンによって同じですが、シャーディングの結果の動作は異なります。 CTSシャーディングは、次のようにテストケースをテスト対象デバイス(DUT)に静的に割り当てます。

TF Shardingは、次のようにテストケースを使用可能なDUTに動的に割り当てます。

  • コマンド:ctsを実行します
  • Android 9の構成:/ platform / test / suite_harness / + / pie-cts-dev / tools / cts-tradefed / res / config / cts-suite.xml

複数のABIをサポートするデバイスには何が期待されますか?

デバイスは、サポートすると主張する各ABIモードのすべてのCTS / Verifierに合格する必要があります。したがって、特定のABI用のアプリを実行する必要があります。複数のABIのガイドラインは次のとおりです。

  • CTS /ベリファイアの場合、アーキテクチャごとにARMおよびx86リリースがあります。それぞれが32ビットまたは64ビットモードをサポートできます。
  • CTSテストの場合、デバイスがARMとx86の両方をサポートしている場合は、ARMとx86の両方のCTSテストをそれぞれ実行して合格する必要があります。

CDD3.3.1を参照してください。 ABIのCDD要件のためのアプリケーションバイナリインターフェイス

テストの実行時間を短縮するには、プライマリABI(64ビットなど)でのみテストを実行するだけで十分ですか?

いいえ。Androidアプリは、独自の32ビットまたは64ビットのランタイムで実行されます。実際のマシンコード、コードパス、および状態は32と64の間で異なります。1つのモードをスキップすると、デバイスABIの50%しかカバーしません。

未実行として報告されるテストケースが非常に多いのはなぜですか?

未実行番号ではなく、モジュール完了番号を確認する必要があります。

以前のバージョンでは、CTSモジュールは、完了する前にモジュールがあまりにも積極的に実行されたと報告されていました。したがって、一部のデバイスに問題が発生した場合でも、すべてのテストケースが完了せずにモジュール完了数が報告されました。新しいテストハーネスはより保守的であり、問​​題が発生したときに未実行のテストの数が多く報告されます。

完了まで実行されたモジュールは、次の期間中のレポートの最新の呼び出し(done = "false")でモジュールが完了しなかったことを報告します。

  • モジュールのテスト実行は、デバイス接続の問題によって中断されました。
  • モジュールに対して予想されるすべてのテスト実行が実行されたわけではありません。
  • 次のような追加のフィルタリングオプションを使用して(オプション-r/--retryしました。

    • --include-filter
    • --exclude-filter
    • -t /-test(再試行時にオプションはまだサポートされていません)
    • --retry-typeが失敗しました
    • -サブプラン

これらのモジュールのモジュール完了(done = "true")のステータスを取得するには、最新の呼び出しに対して以下を再試行してください。

run retry --retry <session_id> for Android 9 and later versions
run cts --retry <session_id> for Android 8.1 and previous versions

上記の問題なしで実行されたモジュール(残りのテストが0であっても)は、新しいレポートでモジュール完了とマークされます。

例外

  • CtsNNAPITestCasesには、Linux / OSの引数の制限により、既知の問題があります。モジュールは、 run cts -m CtsNNAPITestCasesことで個別に再実行できます。

企業のファイアウォールの背後でテストの準備が失敗するのを防ぐにはどうすればよいですか?

すべての自動テストスイートは、実行時にCTSメディアファイルまたはビジネスロジックファイルのいずれかをダウンロードしようとします。多くの企業環境では、ファイアウォール/プロキシが一般的であるため、テストの準備が失敗します。次の行を実行するか、.profile(Ubuntuの場合)に追加します。

export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'

Secure ElementのCTSにはSIMカードが必要ですか?

テストにSIMカードが必要かどうかは、その機能がテストデバイスでサポートされているかどうかを理解する必要があります。

  • デバイスが安全な要素にアクセスするAndroidアプリをサポートする必要がない場合(モバイルネットワークオペレーター(通信事業者)によって配布された、またはデバイスに埋め込まれたUICC (SIMカードなど))、HIDLマニフェストを含めないように構成できますandroid.hardware.secure_element要素。この場合、 android.se.omapi.SEService.getReaders() APIは空のリストを報告し、CTSテストは自動的に合格してCTSの合格を報告します。
  • デバイスが、モバイルネットワーク事業者(通信事業者)によって配布された、またはデバイスに埋め込まれたUICC (SIMカードなど)のいずれかの安全な要素にアクセスするAndroidアプリをサポートする必要がある場合は、安全な要素を適切に実装してテストする必要があります社内。 Secure ElementのCTSテストでは、Android9に追加されたandroid.se.omapiAPIパッケージが機能することを確認するCTSテストを実行する準備をする方法の概要を説明します。また、CTSテストカバレッジは最小限であるため、自分で追加のテストを実行することをお勧めします。

Secure Element用CTS用のSIMカードはどこで入手できますか?

ご希望のSIMベンダーにご連絡ください。

トークンシャーディングを使用したCTS実行中にOrangeSIMがロック画面に表示されるのはなぜですか?

SIMカードのテストがロックされているため、テストケースは開始されません。トークンシャーディングを使用してCTSを実行する前に、「SIMカードのロック設定」で「SIMカードのロック」オプションを無効にしてください。