《5-PPT版《客户端健壮性测试实践》覃馨.pdf》由会员分享,可在线阅读,更多相关《5-PPT版《客户端健壮性测试实践》覃馨.pdf(37页珍藏版)》请在三个皮匠报告上搜索。
1、美团平台技术部 2023年06月客户端健壮性测试实践分享要点 1、为什么关注客户端健壮性 2、App健壮性保障的思路 3、App健壮性检测方案设计 4、如何解决健壮性测试覆盖不足和测试耗时长问题201|什么是客户端健壮性定义4健壮性:系统或组件在存在无效输入或压力环境条件下可以正常运行的程度。移动端App健壮性:App运行时遭遇环境异常或者输入异常时客户端能够继续正常运行的能力。什么是客户端健壮性?5举个例子:某服务触发限流向客户端返回状态码403,客户端未获取到预期的接口响应数据时发生了崩溃。请求响应移动端有哪些环境异常和输入?6操作系统硬件环境运行环境内存网络外部 环境CPU系统输入输入应
2、用间应用内用户输入交互 内容 数据交互 事件 遭遇异常后产生的健壮性问题表现7异常类型表现展示异常加载过程中出现Crash/ANR/JS Error功能/模块缺失界面错位字体/颜色/文本内容异常交互异常交互过程中出现Crash/ANR/JS Error交互无响应性能问题CPU、内存、线程池等资源消耗异常加载时间等时间维度性能指标劣化安全问题出现安全漏洞产生被攻击或信息泄露等风险02|为什么关注客户端健壮性业务特点:用户规模持续增长,流量大、高频业务占比高 以基础功能和核心入口为主,影响范围广 业务简介9平台业务外卖美食酒店旅游机票门票打车基础组件技术形态:不同技术形态页面数量分布均衡 以页面流
3、量占比看,Native原生页面占据大部分的曝光(重点关注)动态化容器页面与H5页面相对曝光量极小 Native问题修复周期长,故障恢复时间长 业务简介10平台业务外卖美食酒店旅游机票门票打车基础组件页面数量分布页面流量分布Native页面动态化页面H5页面故障风险11客户端健壮性问题引发故障占比高 典型故障:e.g.核心模块入口丢失,影响十万级用户 e.g.类型转换异常,用户使用App闪退,5分钟内降级仍累计影响百万级用户 /java.lang.NumberFormatException:For input string int count=Interger.parseInt(key);故障险
4、影响范围急需改善=恢复周期03|如何开展客户端健壮性问题治理基本思路 保障方案设计基本思路13制定治理 目标建设度量 方案辅助问题 分析驱动问题 治理持续控制制定治理目标14降低由于网络接口返回数据与预期不符导致的Crash或核心功能/模块缺失的线上问题数量 问题诱因分析:-网络接口返回数据占比100%异常表现:加载过程中出现Crash,占比Top 1 核心功能/模块缺失,占比Top 2 影响时长:出现在Native页面/模块的问题占比100%,需要通过发版才能彻底修复问题,修复成本高、周期长 非Crash/ANR/JS Error类异常发现100%依赖于客诉反馈,发现问题时长不可控运行环境输
5、入分析关键举措15根因分析:关键举措:健壮性检测工具优化建设 业务异常监控完善 流程规范完善及管控手段建设,含技术设计、技术方案评审、测试用例设计、配置变更等整体保障方案 实施策略:客户端健壮性保障方案16 聚焦通用发现能力建设,重点建设事前检测能力质量特性手段工具/平台 支撑健壮性监控运营流程管控制定流程规范需求规范研发规范测试规范发布规范线上运维规范监督流程Push流水线PR流水线提测流水线测试流水线回归测试流水线发布流水线配置变更流水线迭代标准复盘对标静态代码扫描测试健壮性测试异常检测稳定性异常功能异常性能异常线上巡检运行环境异常构造异常输入构造业务层健壮性测试组件/API健壮性测试展示
6、交互单元测试监控告警建设问题治理运营机制建设持续集成/交付平台事件管理中心云真机平台可测性改造SDK自动化测试管理工具问题运营工具工具类使用治理:开发自定义静态代码扫描规则,增量管控新增代码,长期治理存量风险 如:PrimitiveParseDetector、ColorParseDetector 以此为契机初步完善了Android和iOS端共200+扫描规则和组件仓库的接入 静态检测17动态检测18新需求测试人工配置触发健壮性测试版本回归测试监听事件中心触发健壮性测试进入Crash运营流程是否Crash通知负责人确认创建工单是否误报标记误报是否修复不修复确认修复验证测试自动录制数据自动生成用例