开发人员支持的 CTS

本页概述了开发人员支持的 CTS (CTS-D) 的使用指南。

测试覆盖率

CTS-D 与 CTS 和 CTS 验证程序一样,只能强制执行以下操作:

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

非 MUST 要求(例如强烈推荐、应该、可能)是可选的,不能使用 CTS 进行测试。

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

CTS 测试创建规则

  • 测试必须始终如一地产生相同的客观结果。
  • 测试必须通过开箱即用的一次设备测试来确定设备是通过还是失败。
  • 测试创建者必须消除所有可能影响测试结果的因素。
  • 如果设备需要特定的硬件条件/环境/设置,则必须在提交消息中明确定义该设置。有关设置说明的示例,请参阅设置 CTS
  • 测试一次不得超过 6 小时。如果它需要运行更长时间,请在您的测试提案中包含推理,以便我们对其进行审核。

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

  • Wifi 稳定(对于依赖 Wifi 的测试)。
  • 设备在测试期间保持静止(或不保持静止,取决于测试)。
  • 设备已从任何电量为 X% 的电源上拔下。
  • 除 CTS 外,没有任何应用程序、前台服务或后台服务正在运行。
  • 运行 CTS 时屏幕关闭。
  • 该设备不是isLowRamDevice
  • 电池保护程序/应用程序限制未从“开箱即用”状态更改。

测试资格

我们接受执行现有 CTS、CTS 验证程序或 CTS-D 测试未测试的行为的新测试。任何检查超出我们测试覆盖范围的行为的测试都将被拒绝。

CTS 提交流程

  1. 编写测试提案:应用程序开发人员使用Google 问题跟踪器提交测试提案,描述已识别的问题并提出测试以检查它。提案必须包含关联的CDD 需求 ID 。 Android 团队审核了该提案。
  2. 开发 CTS 测试:提案获得批准后,其提交者在主(AOSP/master)分支上的 AOSP 上创建 CTS 测试。 Android 团队审查代码。
  3. 发布测试:AOSP/master上提交您的 CL,然后将其挑选到最新的androidx-tests-dev分支。该测试现已公开。

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
  • 处理errorprone中所有容易build_error.log的警告和建议。
  • 重新调整对head的更改。这包括cts-developer.xmlcts-developer-exclude.xml测试计划。
  • 与您的 Google 工程联系人一起确定您的测试用例是否可以包含在现有的 CTS 模块中。如果不能,他们会帮助您创建一个新模块。
  • 对于创建的每个新测试模块,在新测试模块目录中创建一个 OWNERS 文件。
    • 您的 OWNERS 文件应包含以下信息,这些信息是从您正在使用的 Google 测试所有者处获得的:
    • # Bug component: xxx
    • 谷歌测试所有者 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 发布计划的详细信息,请参阅发布计划和分支信息