优化 CTS

Android 兼容性测试套件 (CTS) 提供了数百万个单独的测试。虽然在软件开发阶段需要经常运行 CTS,但可以缩短运行这些测试所需的时间。

本页介绍了可以用来缩短测试执行时间的方法,以及如何在该过程中优化硬件资源。

分片设备

为了缩短周期时间,不妨考虑在多台设备上运行 CTS(分片)。如需了解如何使用分片,请参阅运行 CTS 测试

Android Test Station

使用 Android Test Station (ATS) 部署一个界面来运行标准 Android 测试套件。此工具可以充当 Trade Federation (TF) 的网页界面,让您只需进行极少的设置即可在一组测试设备上运行 CTS,以及制定时间表以持续运行测试。

Android Test Station 支持多主机模式,可通过该模式使用单个 ATS 控制器主机在多个 ATS 工作器主机上管理设备和测试。

模拟器持续运行

如需在开发阶段持续运行 CTS,可以使用 Android 虚拟设备 (AVD) 来替代硬件。可以尽早发现测试失败的回归问题,从而大量节省排查和分析根本原因所需的时间。模拟器的多个实例可用于分片,并且可以通过 Android Test Station 安排连续运行。

drawElements 质量计划 (dEQP)

drawElements 质量计划 (dEQP) 包含在 Android CTS 中。此程序名为 CtsDepqTestCases,主要关注 Android 图形的测试覆盖率。此模块占 Android CTS 中所有测试用例的近 80%,占总执行时间的 6%。

由于 Android 图形驱动程序是 Android 固件 (BSP) 的一部分,并且在开发过程中不会发生太大变化,因此您可以有策略地运行此模块。例如,如果您在软件开发期间每两周(或更短时间)运行一次 CTS,则可以根据固件更新时间表在多个周期内排除此模块。

一种方法是在一组设备上单独运行 CtsDeqpTestCases,然后提交 CTS 报告。例如,在两个不同的主机上。

主机 1:

cts-tf > run cts --max-log-size 100 --shard-count 6 -o -m CtsDeqpTestCases

主机 2:

cts-tf > run cts --max-log-size 100 --shard-count 6 -o --exclude-filter CtsDeqpTestCases

媒体测试用例

媒体测试用例会验证音频、视频和多媒体驱动程序等多媒体服务。这些多媒体测试模块对 CTS 执行时间的影响最大。以下情况可能会造成延迟:

  • 在测试期间下载媒体文件或反复播放媒体文件。
  • 重试失败的测试用例。

Android CTS 包含以下测试模块:

  • CtsMediaStressTestCases
  • CtsMediaPlayerTestCases
  • CtsMediaAudioTestCases
  • CtsVideoTestCases
  • CtsMediaDecoderTestCases
  • CtsMediaCodecTestCases
  • CtsMediaV2TestCases

考虑在本地或本地服务器上运行某些媒体测试。如需了解详情,请参阅在本地运行 CTS 媒体测试

多媒体框架及其驱动程序(解码器和编码器)是 Android 固件 (BSP) 的一部分。您可以根据固件更新时间表有策略地运行此模块,并在多个周期内排除这些模块。