兼容性测试套件 (CTS) 是一个免费的商业级测试套件,设备制造商使用它来帮助确保其设备与 Android 兼容,以及报告测试结果以供验证。CTS 旨在集成到工程师构建设备的日常工作流程(例如通过连续构建系统)中。其目的是尽早发现不兼容性,并确保软件在整个开发过程中保持兼容性。
您可以下载 CTS 的二进制文件,也可以在 Android 开源项目 (AOSP) 中下载 CTS 的源代码。CTS 在桌面设备上运行,并直接在连接的设备或模拟器上执行测试用例。
CTS 包含两个主要软件组件:
- Trade Federation 自动化测试框架在桌面设备上运行,并管理测试执行情况。Trade Federation 能够对多个被测设备 (DUT) 进行分片测试。您还可以利用套件重试功能仅重试失败的测试而不是完整的套件,从而大大减少重新运行所花的时间。
- 单个测试用例会在 DUT 上执行。测试用例采用 Java 语言编写为 JUnit 测试,并打包为 Android .apk 文件,以便在实际目标设备上运行。
兼容性测试套件验证程序(CTS 验证程序)
兼容性测试套件验证程序(CTS 验证程序)是对 CTS(可在此处下载)的补充。CTS 验证程序可用于测试需要进行手动输入(例如音频质量和加速度计)或手动定位才能在固定设备上测试的 API 和功能。
CTS 验证程序是一款手动测试工具,包含以下软件组件:
-
在 DUT(以及为了满足距离测量要求而用到的第二个设备)上执行并收集结果的 CTS 验证程序应用。
-
在桌面设备上执行的可执行文件或脚本,可为 CTS 验证程序应用中的某些测试用例提供数据或额外控制。
工作流程
![CTS 流程](https://source.android.google.cn/static/docs/compatibility/cts/images/cts-0.png?authuser=5&hl=sv)
图 1. 如何使用 CTS
上图总结了 CTS 工作流程。有关详细说明,请参阅本部分的子页面(从设置开始)。
测试用例的类型
CTS 包含以下类型的测试用例:
- 单元测试用于测试 Android 平台中微小的代码单元;例如 java.util.HashMap 等单一类。
-
功能测试会通过较高级别的用例将 API 组合到一起进行测试。
单元测试覆盖率
单元测试用例涵盖以下领域,以确保兼容性:
领域 | 说明 |
---|---|
签名测试 | 每个 Android 版本中都包含一个 XML 文件,用于描述这一版本所含的所有公开 API 的签名。CTS 包含一个实用工具,该实用工具用于根据设备上可用的 API 检查这些 API 签名。签名检查的结果会记录在测试结果 XML 文件中。 |
平台 API 测试 | 按照 SDK 类索引所述内容来测试平台(核心库和 Android 应用框架)的 API,以确保 API 的正确性,包括正确的类、属性、方法签名以及正确的方法行为;此外还需进行负面测试,以确保不正确的参数处理产生预期行为。 |
Dalvik 测试 | 这类测试侧重于测试 Dalvik 可执行格式的文件。 |
平台数据模型 | CTS 会测试通过 content provider(如 SDK android.provider 软件包中所述)提供给应用开发者的核心平台数据模型:通讯录、浏览器、设置等。 |
平台 Intent | CTS 会测试核心平台 Intent(如 SDK 可用 Intent 中所述)。 |
平台权限 | CTS 会测试核心平台权限(如 SDK 可用权限中所述)。 |
平台资源 | CTS 会测试核心平台资源类型(如 SDK 可用资源类型中所述)的处理是否正确。这包括针对以下资源的测试:简单值、可绘制对象、九宫格、动画、布局、样式和主题,以及加载备用资源。 |