XTS介绍
https://source.android.com/docs/compatibility/cts?hl=zh-cn
- CTS (Compatibility Test Suite) : 兼容性测试套件,主要 google 为保证 Android 核心接口功能的 兼容性。
- GTS ( google test suite ): Google 测试套件, gms 相关接口测试以及功能测试。
- VTS (Vendor Test Suite) : 厂商测试套件,主要测试 HIDL 接口,保证 HIDL 接口的兼容性。
分析步骤
1、查看日志报错信息,定位模块。
JUnit(Java)测试用例会打印异常调用栈,分析在对应测试结果与日志目录下两个文件:
- logs/2020.11.11_15.03.26/inv_xxx/host_log_xxx.txt
- results/2020.11.11_15.03.26/test_result.xml
2、查看测试套件包代码逻辑。
可用下面两种方法:
(1)查看源码
(2)反编译测试APK
- 找到测试套件对应zip压缩包,如:Google_Test_Suite\GTS\10_R4(10_R4是版本号,目前最新有15R1)
- 一般内置文件夹testcase有对应名称的APK,没有的话就找报错段所在的APK
常见问题
软件版本和测试问题
- 检查是否缺少Mainline patch——软件版本带入Google Mainline Patch后复测
- Go和常规版本的应用不同,需要确认应用版本类型,否则报错是指找不到APK,因此权限判断的时候fail。表面原因:应用给权限未Grant;根因:缺少Go APK。
- 检查测试环境是否不满足——测试手法改善
开发代码缺陷
1、应用权限未grant
先确认是否集成了应用,若已集成则:
- 若应用在google mainline,需要patch释放,而且要符合平台(Go或常规)。
- 若应用是自研/三方,则需要APP内部开发解决。
2、功能断言fail(业务相关)
找到功能模块,确认检查项的内容,具体问题分析,非通用问题。
比如省电模式下检查网络相关状态(Android V):
com.android.cts.netpolicy.hostside.NetworkCallbackTest#testOnBlockedStatusChanged_powerSaver:
java.lang.AssertionError: expected:<false> but was:<true>
at org.junit.Assert.fail(Assert.java:89)
at org.junit.Assert.failNotEquals(Assert.java:835)
at org.junit.Assert.assertEquals(Assert.java:120)
at org.junit.Assert.assertEquals(Assert.java:146)
at com.android.cts.netpolicy.hostside.NetworkCallbackTest$TestNetworkCallback.expectBlockedStatusCallbackEventually(NetworkCallbackTest.java:178)
at com.android.cts.netpolicy.hostside.NetworkCallbackTest.testOnBlockedStatusChanged_powerSaver(NetworkCallbackTest.java:342)