【导读】
对于非宿主的合作伙伴来说,在TBS接入环节,“共享和下载内核”的能力是最重要的,它从根本上决定着APP是否能够使用预期的X5内核提供服务。一旦出现问题,会导致无法加载X5内核或者优化策略失效,从而降低X5占比。但面临的一个问题是,SDK是跟随TBS版本持续优化的,每次SDK发布,都会有大批小伙伴更新apk来提测。
【测试时机】
SDK发布后,会有合作方陆续接入新SDK提测,比如:
2.4 SDK发布:某某视频+2.4SDK,某某会+2.4SDK、某某输入法+2.4SDK、某某宝+2.4SDK 等 ;
2.5 SDK发布:某某直播+2.5SDK,某二次封装SDK+2.5SDK、某东+2.5SDK、某某音乐+2.5SDK等 ;
3.1 SDK发布:某某新闻+3.1SDK,某某音乐+3.1SDK、某某微信+3.1SDK 等。
【测试内容】
上面可以看到,每次更新接入新SDK的小伙伴还是比较多的,而我们主要测试两个功能点:
(1)接入是否成功 ;
(2)接入后的SDK逻辑是否符合预期 。
具体表现为,新的SDK在各种场景下是否能正常使用到内核,比如:
首次安装三方,能共享宿主已有的内核 ;
共享A宿主内核后,若宿主升级到更高版本,三方能跟随升级;
已共享A主内核后,若B宿主升级到更高版本,三方能跟随B升级 ;
下发强制下载后,三方能走强制下载 ;
强制下载后,若宿主有更高版本,三方能跟随升级,等等。
怎么样?
有没有蒙圈,but这还只是一小部分%>_<%!
【人工测试】
合作方的接入时间是不定期的,一般来说。
步骤一:模拟三大宿主场景 。
(1)后台配置宿主内核版本 ;
(2)宿主下载、安装 ;
(3)确认宿主下载成功 。
步骤二:配置三方后台 。
第三步:结果检查 。
(1)读取三方内核版本号;
(2)判断是否符合预期。
【自动化的思考】
1、是否重要?
是。前面有介绍,一旦SDK逻辑出问题,会导致TBS使用异常,X5占比降低。
2、是不是重复工作?
用例可复用。因为对于同个版本的SDK,不同app的接入逻辑是一致的,可复用(有人会问那为什么每个app都要测一遍?因为人家的接入对我们是不可见的,只有个打包的apk给过来,到底SDK的调用对不对,有没有问题,是未知的)。
3、结果是否可判断?
是的。三方内核版本号保存在合作方目录下,可读取后跟预期结果对比。
【自动化过程分析】
我们对人工测试的各个步骤进行分析,统计上看,人工测试最大部分耗时集中在:
宿主环境模拟耗时占比:70%以上 。
宿主环境作为三方共享的前提条件,是非常重要的,一旦条件不符合预期,直接影响后面的测试结果。
方法一:模拟测试过程,后台配置—>宿主下载—>宿主安装—>共享检查。
实践结论:失败率高,不可行。
说明:出于用户的流量考虑,TBS宿主在逻辑上有后台流控,异常保护等诸多限制,反复测试情况下,经常出现无法下载、安装失败等问题,导致宿主环境异常,无法成功安装预设内核。