由开发者提供支持的 CTS

本页面将介绍由开发者提供支持的 CTS (CTS-D) 的使用指南。

测试覆盖率

与 CTS 和 CTS 验证程序相似,CTS-D 只能强制执行以下各项:

  • 开发者 SDK (developer.android.com) 中描述的适用于特定 API 级别的所有公共 API。
  • 针对特定 API 级别的 Android 兼容性定义文档 (CDD) 中包含的所有强制性要求。

非强制性要求(例如:强烈建议、应该、可以)是可选要求,无法使用 CTS 进行测试。

由于所有 API 和 CDD 要求都与特定 API 级别相关联,因此所有 CTS 测试(CTS、CTS-D 和 CTS 验证程序)都会关联到与其关联的 API 或要求相同的 API 级别。如果特定 API 被废弃或更改,其相应的测试必须废弃或更新。

CTS 测试创建规则

  • 测试必须一致地产生相同的目标结果。
  • 测试必须通过对设备进行一次开箱测试来确定设备是合格还是不合格。
  • 测试创建者必须去除可能会影响测试结果的所有可能因素。
  • 如果设备需要特定的硬件条件/环境/设置,则必须在提交消息中明确定义相应设置。如需查看示例设置说明,请参阅设置 CTS
  • 测试的每次运行时长不能超过 6 小时。如果需要运行更长时间,请在测试方案中附上原因,以便我们进行审核。

以下是一组用于测试应用限制的测试条件示例:

  • Wi-Fi 连接稳定(适用于依赖 Wi-Fi 的测试)。
  • 设备在测试期间保持静止状态(或不保持静止,具体取决于测试)。
  • 在设备电池电量为百分之 X 时将设备从任意电源中拔出。
  • 除 CTS 之外,不运行任何应用、前台服务或后台服务。
  • 运行 CTS 时屏幕处于关闭状态。
  • 设备并非 isLowRamDevice
  • 未从“开箱”状态更改省电模式/应用限制

测试资格条件

我们接受符合以下条件的新测试:会强制执行现有 CTS、CTS 验证程序或 CTS-D 测试未测试的行为。任何会检查不在我们的测试覆盖率范围之内行为的测试都会被拒绝。

CTS 提交流程

  1. 编写测试方案:应用开发者要使用 Google 问题跟踪器提交测试方案,在方案中说明已发现的问题并建议通过测试来检查问题。方案必须包含关联的 CDD 要求 ID。Android 团队会审核方案。
  2. 制定 CTS 测试:方案获得批准后,其提交者会在 AOSP 上的主要 (AOSP/main) 分支上创建 CTS 测试。Android 团队会审核该代码。
  3. 发布测试:在 AOSP/main 上提交您的 CL,然后为最新的 androidx-tests-dev 分支择优挑选您的 CL。该测试现已公开发布。

CTS-D 测试编写指南

  • 遵循 Java 代码样式指南
  • 按照 CTS 开发中所述的所有步骤进行操作。
  • 将您的测试添加到相应的测试计划中:
    • 使用 include-filters 将新测试添加到 CTS-D 测试计划中:platform/cts/tools/cts-tradefed/res/config/cts-developer.xml
    • 使用 exclude-filters 从 CTS 主测试计划中排除您的新测试:platform/cts/tools/cts-tradefed/res/config/cts-developer-exclude.xml
  • 处理 build_error.log 中的所有 errorprone 警告和建议。
  • 将您的更改 rebase 到 head。其中包括 cts-developer.xmlcts-developer-exclude.xml 测试计划。
  • 与您的 Google 工程团队联系人合作,确定您的测试用例能否纳入现有 CTS 模块。如果不能,联系人会帮助您创建一个新模块。
  • 对于创建的每个新测试模块,请在新的测试模块目录中创建一个 OWNERS 文件。
    • 您的 OWNERS 文件应包含以下信息,且这些信息来自与您合作的 Google 测试所有者:
    • # Bug component: xxx
    • Google 测试所有者 ldap
  • AndroidTest.xml 中,指定以下参数。请参阅示例文件(12),例如:
    • Instant_appnot_instant_app
    • secondary_usernot_secondary_user
    • all_foldable_statesno_foldable_states
  • 如需指定正确的 minSDK,请参阅 <uses-sdk> 文档
  • 签入新的测试方法、类别或模块时,请将它们添加到 CTS-D 测试计划中,并从主 CTS 测试计划中排除它们,就像排除新测试一样。

运行 CTS-D 测试

使用 run cts --plan cts-developer 从命令行运行 CTS-D 测试计划。

如需运行特定测试用例,请使用 run cts --include-filter "test_module_name test_name"

如需了解如何运行完整的 CTS 测试,请参阅运行 CTS 测试

接受和发布

您提交测试请求后,内部团队将对其进行审核,以确保它会测试 CDD 要求或记录的 API 行为。如果确定测试是为了检查有效要求或行为,团队会将此测试用例转发给 Google 工程师进行进一步审核。Google 工程师将与您联系,向您提供反馈,指导您如何改进测试以使其被接受并纳入 CTS。

如需详细了解 CTS 发布时间表,请参阅发布时间表和分支信息