CTS 常见问题

Android 兼容性计划是维持 Android 生态系统积极反馈的关键驱动力。 CTS是保证量表兼容质量的关键工具。 Android 团队不断完善 CTS 工具和测试覆盖率。定期添加测试用例对兼容设备的质量有显着提升。

本文提供常见问题解答以更有效地运行 CTS 测试。

CTS Sharding 和 TF Sharding 有什么区别?

CTS Sharding 和 TF Sharding 是完全不同的测试计划,由不同的测试基础设施代码库提供支持。虽然不同版本的运行命令相同,但分片结果的行为不同。 CTS Sharding 将测试用例静态分配给被测设备 (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/验证程序。因此,有必要为特定的 ABI 执行应用程序。多个 ABI 的指南如下:

  • 对于 CTS/Verifier,每种架构都有ARM 和 x86 版本。它们中的每一个都可以支持 32 位或 64 位模式。
  • 对于 CTS 测试,如果设备同时支持 ARM 和 x86,则它必须分别运行并通过 ARM 和 x86 CTS 测试。

CDD 3.3.1。用于 ABI 上 CDD 要求的应用程序二进制接口

仅在主要 ABI(例如 64 位)上运行测试是否足以减少测试执行时间?

不会。Android 应用程序在其自己的 32 位或 64 位运行时上运行。实际机器码、代码路径和状态在 32 和 64 之间是不同的。如果你跳过一种模式,你只覆盖了 50% 的设备 ABI。

为什么有这么多测试用例报告为未执行?

您应该检查Module Done编号而不是Not Executed编号。

在旧版本中,CTS 模块在完成之前被报告为Module Done过于激进。因此,即使某些设备出现问题,也没有完成所有测试用例就报告了Modules Done编号。新的测试工具更加保守,并在出现问题时报告更多的未执行测试。

模块运行到完成在报告中的最近调用中报告模块未完成(done="false") 在以下期间:

  • 模块的测试运行因设备连接问题而中断。
  • 并未执行该模块的所有预期测试运行。
  • 使用其他过滤选项重试(使用选项-r/--retry ),例如:

    • --include-filter
    • --排除过滤器
    • -t/--test(重试时尚不支持该选项)
    • --重试类型失败
    • --子计划

要获得这些模块的Module Done (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 个测试)执行的模块在新报告中被标记为Module Done

例外

  • 由于 linux/OS 对 args 的限制,CtsNNAPITestCases 存在一个已知问题。该模块可以通过直接run cts -m CtsNNAPITestCases单独重新运行。

如何避免企业防火墙后的测试准备失败?

所有自动化测试套件都尝试在运行时下载 CTS 媒体文件或业务逻辑文件。在许多公司环境中,防火墙/代理是典型的,这会导致测试准备失败。执行以下行或将其添加到 .profile(在 Ubuntu 上)。

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

我是否需要用于 CTS for Secure Element 的 SIM 卡?

测试是否需要 SIM 卡取决于对测试设备是否支持该功能的了解。

  • 如果您的设备不需要支持访问安全元素的 Android 应用程序(无论是在移动网络运营商(运营商)分发的UICC (例如 SIM 卡)中还是嵌入在设备中),您可以将 HIDL 清单配置为不包括android.hardware.secure_element HAL 元素。在这种情况下, android.se.omapi.SEService.getReaders() API 将报告一个空列表,CTS 测试将自动通过并报告 CTS 通过。
  • 如果您的设备确实需要支持访问安全元素的 Android 应用程序——无论是在移动网络运营商(运营商)分发的UICC (例如 SIM 卡)中还是嵌入在设备中——您需要正确实施安全元素并对其进行测试内部。安全元素的 CTS 测试概述了如何准备运行 CTS 测试以确保 Android 9 中添加的android.se.omapi API 包正常运行。我们还建议您自行执行其他测试,因为 CTS 测试覆盖率极低。

我在哪里可以获得 CTS for Secure Element 的 SIM 卡?

您可以联系您首选的 SIM 供应商。

为什么在使用令牌分片的 CTS 执行期间,Orange SIM 在锁定屏幕上?

测试用例没有启动,因为测试 SIM 卡被锁定。在使用令牌分片执行 CTS 之前,禁用“SIM 卡锁定设置”中的“锁定 SIM 卡”选项。