兼容性测试套件

CTS 的工作原理是什么?

兼容性测试套件 (CTS) 是一个免费的商业级测试套件,可在此处下载。CTS 代表兼容性的“机制”。

CTS 在桌面设备上运行,并直接在连接的设备或模拟器上执行测试用例。CTS 是一套单元测试,旨在集成到工程师构建设备的日常工作流程(例如通过连续构建系统)中。其目的是尽早发现不兼容性,并确保软件在整个开发过程中保持兼容性。

CTS 是一个自动化测试工具,其中包括两个主要软件组件:

  • CTS tradefed 自动化测试框架会在桌面设备上运行,并管理测试执行情况。

  • 单独的测试用例会在被测设备 (DUT) 上执行。测试用例采用 Java 语言编写为 JUnit 测试,并打包为 Android .apk 文件,以在实际目标设备上运行。

兼容性测试套件验证程序(CTS 验证程序)是对 CTS(可在此处下载)的补充。CTS 验证程序为无法在没有手动输入(例如音频质量、加速度计等)的固定设备上进行测试的 API 和功能提供测试。

CTS 验证程序是一款手动测试工具,包含以下软件组件:

  • 在 DUT 上执行并收集结果的 CTS 验证程序应用。

  • 在桌面设备上执行,以便为 CTS 验证程序应用中的某些测试用例提供数据或额外控制的可执行文件或脚本。

工作流程

CTS 流程

图 1. 如何使用 CTS

上图总结了 CTS 工作流程。有关详细说明,请参阅本部分的子页面(从设置开始)。

测试用例的类型

CTS 包含以下类型的测试用例:

  • 单元测试会测试 Android 平台中很微小的代码元素;例如 java.util.HashMap 等单个类。

  • 功能测试会通过较高级别的用例将 API 组合到一起进行测试。

CTS 的未来版本将包含以下类型的测试用例:

  • 稳健性测试会测试系统在压力下的耐久性。

  • 性能测试会根据定义的基准测试系统的性能,例如每秒渲染帧数。

涵盖的领域

单元测试用例涵盖以下领域,以确保兼容性:

领域 说明
签名测试 对于每个 Android 版本,都存在用于描述这一版本中所含的所有公开 API 签名的 XML 文件。CTS 包含一个实用工具,用于根据设备上可用的 API 检查这些 API 签名。签名检查的结果会记录在测试结果 XML 文件中。
平台 API 测试 按照 SDK 类索引所述测试平台(核心库和 Android 应用框架)API,以确保 API 的正确性,包括正确的类、属性和方法签名以及正确的方法行为;此外执行负面测试,以确保不正确的参数处理产生预期行为。
Dalvik 测试 这类测试侧重于测试 Dalvik 可执行格式的文件。
平台数据模型 CTS 会按照 SDK android.provider 软件包中所述测试通过内容提供程序提供给应用开发者的核心平台数据模型:通讯录、浏览器、设置等。
平台 Intent CTS 会按照 SDK 可用 Intent 中所述测试核心平台 Intent。
平台权限 CTS 会按照 SDK 可用权限中所述测试核心平台权限。
平台资源 CTS 会按照 SDK 可用资源类型中所述进行测试以正确处理核心类型的平台资源。这包括对以下资源的测试:简单值、可绘制资源、九宫文件、动画、布局、样式和主题背景,以及加载备用资源。