【安卓】安卓xTS之Media模块 学习笔记(1) xTS介绍

1.背景

Media的安卓xTS相关测试和功能修复已经进行了一段时间了。

在此整理总结下xTS工作总结,留待后续查阅整理。

2. xTS介绍 - 什么是xTS

谷歌的xTS是对谷歌发布的CTS/GTS/VTS/STS/BTS/CTS-on-GSI等一系列测试的统称。

因为安卓系统比较庞大,模块多,并且维护者、参与厂家、贡献者都很多。

为了确保安卓系统的正常功能,谷歌发布了xTS测试系统。

作为安卓的伴生测试系统,xTS为安卓内部各个模块各个层级提供了大量的测试用例,用以维护安卓的兼容性和功能正确。

2.1 CTS

介绍

CTS(Compatibility Test Suite)是Android设备的兼容性测试,主要测试apk与framwork之间的兼容性,测试Android设备是否符合Android系统的兼容性要求。

CTS测试包括_CTS基本测试_和_CTS Verifier测试_两部分,后者是前者的补充,CTS检查的是API和功能,而CTS Verifier是测试在静态设备上测试无法自动测试的API和功能,例如音频质量,触摸屏,加速度计,相机等等

在CTS测试中,会运行和安装一系列dex和APK文件,模拟不同的场景,测试Android标准的接口是否正常返回。通过CTS测试的设备可以获得Android的商标,并享受Android Market的权限。

CTS是xTS测试中比较重要的一项,且测试内容比较全面,case数量众多。CTS会模拟apk的各种行为来测试framework的接口。

CTS的通过意味着基本可以提供安卓系统所要求的功能,在这个系统上,通用的apk都可以正常运行。

测试内容

这个表列的比较详细了,包含签名,接口测试,Dalvik虚拟机 等等,测的是比较详细的。

部署方式

简单介绍下CTS的部署情况,在PC主机上下载CTS测试套件。PC主机最好是linux,谷歌原生支持,如果是windows就需要做一些魔改才能实现。

然后通过USB连接安卓待测设备。

然后在PC主机上安装依赖的环境(AAPT、JDK、ADB......),之后运行CTS Trade Federation自动化测试框架,CTS会从测试包里通过ADB push 一些测试软件(单独的测试用例是用java语言编写的JUnit测试,并打包成Android.apk)和资源文件到安卓待测机中,并进行运行。

运行过程中,PC主机会实时的去监控一些状态,抓取logcat等日志。

等待测试完成后,通过ADB把测试结果抓出来。

CTS的测试包可以自行编译,或从安卓官网下载 (媒体测试需要另外下载 CTS媒体测试包)

2.2 VTS

VTS(vendor test suite),意为供应商测试套件。主要测试Framework与Vendor的HAL层实现之间的兼容性,主要通过AIDL或者HIDL接口。

如图所示,VTS主要测试的是Framework到vendor这一层的接口。

vendor这一层的实现主要是芯片厂家维护,通过AIDL/HIDl接口供Framework调用的。

VTS的测试没有CTS那么全面,VTS的更多的是测试一下vendor接口和少量功能,可以看做是CTS的基础吧。VTS能通过,代表vendor已经提供了最基础的功能接口(接口里的功能是否正确还不确定,至少是接口已经有了)

2.3 GTS

GTS(Google Test Suite)是Google为Android设备提供的测试套件,主要是为了测试Android设备是否符合Google的服务要求。在GTS测试中,会测试Google的各种服务,如Google Play商店、Google地图、YouTube等,以确保这些服务在Android设备上能够正常运行。GTS测试旨在保证Android设备能够提供最佳的用户体验,并确保Google的服务能够在各种设备上稳定运行。

2.4 NTS

对于TV类型的产品,除了上述的VTS、CTS和GTS测试外,还需要进行Netflix认证(NTS)。NTS认证主要是为了确保Android设备的硬件和软件都符合Netflix的要求,以保证用户在使用Netflix应用时能够获得最佳的观影体验。

2.5 STS

STS(Android Security Test Suite)是谷歌关于android安全补丁安装情况的一个测试套件STS和security patch相关的,是CTS测试新增加一项安全测试套件。

2.6 GSI

GSI(Generic system image)--- Reference AOSP system image通用系统映像上的兼容性测试套件

这个文件包也是签约获取授权后才能获取,Google也会定期更新GSI包Android O要求测试VTS和CTS on GSI,此时对应版本必须是GSI版本,测试包都为VTS。

2.7 其他

3. 参考文档

4. 系列

相关推荐
ajsbxi2 分钟前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
顾北川_野7 分钟前
Android CALL关于电话音频和紧急电话设置和获取
android·音视频
&岁月不待人&18 分钟前
Kotlin by lazy和lateinit的使用及区别
android·开发语言·kotlin
TeYiToKu23 分钟前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
dsywws25 分钟前
Linux学习笔记之时间日期和查找和解压缩指令
linux·笔记·学习
Winston Wood2 小时前
Android Parcelable和Serializable的区别与联系
android·序列化
cuisidong19972 小时前
5G学习笔记三之物理层、数据链路层、RRC层协议
笔记·学习·5g
乌恩大侠2 小时前
5G周边知识笔记
笔记·5g
清风徐来辽2 小时前
Android 项目模型配置管理
android
帅得不敢出门3 小时前
Gradle命令编译Android Studio工程项目并签名
android·ide·android studio·gradlew