客户端稳定性异常检测:函数接口“扫雷”实践

支付宝客户端高可用团队构建了稳定性“扫雷”体系,包括函数接口、RPC&Config&JSAPI等扫雷,通过Fuzz测试预防线上稳定性故障。技术方案涉及代码扫描、客户端反射执行、参数异常构造及自动化测试,已发现并优化众多问题,未来将持续提升检测能力。
摘要由CSDN通过智能技术生成

作者:安晴

背景

在过去的财年中,支付宝客户端高可用团队持续保障着支付宝客户端线上的高可用稳定性,但只有线上的应急快反能力是不够的,还需要线下提前发现客户端的稳定性风险建设风险挖掘能力,完善整体的客户端高可用保障体系。通过总结过去1-2年的线上闪退问题可以发现其中NPE问题,RPC数据类型不匹配和config变更导致的闪退问题占比较大,完全可以在线下通过一定机制提前发现。

基于此我们对影响稳定性的因素进行分类,按照优先级构建了客户端的稳定性“扫雷”体系,主要包括函数接口扫雷,rpc&config&jsapi扫雷,scheme&广播&通知扫雷,lottie&antmation&鸟巢模板变更扫雷等,通过这套扫雷能力建设我们希望可以完全避免线上出现以上稳定性故障,同时以issue的形式推动研发优化代码,不断提高客户端稳定性,从事前的角度去完善客户端高可用保障体系。

技术方案

根据经验分析在客户端的函数调用中由于对函数参数检查不够导致的各类闪退问题占比在20%左右。现阶段方案Android端针对public和private的static静态接口,iOS端针对所有public接口进行Fuzz测试,通过对安装包扫描获取到全量的接口函数信息,然后对函数入参Fuzz制造各类异常场景,测试客户端的稳定性。

与传统的代码静态扫描相比,本方案在真实客户端上执行,贴近真实场景可制造真实的异常数据。整个技术实现方案包括以下几点:

  • 代码扫
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值