Bootstrap

Google XTS 问题解决 | Android 设备认证

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)

;