《1-PPT版《小程序可测性能力建设与实践》田文杰.pdf》由会员分享,可在线阅读,更多相关《1-PPT版《小程序可测性能力建设与实践》田文杰.pdf(47页珍藏版)》请在三个皮匠报告上搜索。
1、程序可测性能建设与实践美团到店平台技术部杰到店平台技术部2021年加美团,直致于深耕移动端质量保障体系建设。前负责移动端可测性能的建设与落地。C3-机密件 严禁外传录010203 程序可测性能建设案 实践:票业务程序测试经验04 总结与展望 认识程序可测性C3-机密件 严禁外传录010203 程序可测性能建设案 实践:票业务程序测试经验04 总结与展望 认识程序可测性可测性介绍 程序介绍 程序可测性测试活动简介从测试的本质理解可测性 所有测试都可以视为系统因某个激励产响应,然后对其全检测的过程!#$!#$%&!($)*InputOutput可测性概念从测试的本质理解可测性 所有测试都可以视为系
2、统因某个激励产响应,然后对其全检测的过程%&%(激励可控,响应可观,谓之可测!#$!#$%&!($)*移动端可测性天然很低 移动端测试分析 7DddUI系统&设备应可控性可观性 移动端测试分析8挑战测试领域多,测试场景复杂,依赖各种状态,构造困难,难以覆盖所有情况户可观移动端测试分析9挑战多技术栈,多产品、多态多,链路,多场景多机型,多系统移动端测试分析10多技术栈复杂、多态、多端复 多、多场景、链路 测试案需考虑通性难以提覆盖、效率、深度 测试领域多,测试场景依赖各种状态,构造困难可测性低通&具备扩展能的测试案可动化、覆盖可测性改进测试能基础设施挑战 分析 向 移动端质量保障体系11可测性是
3、切测试活动的基础,其贯穿于测试活动的始终可测性改进通、可扩展的能测试动化测试业务场景以可测性改进为基础通过具备很强扩展性的通能框架融合和动化测试可测性建设标12测试场景可直达内部模块可操纵内部模块可感知(可控性)(可控性)(可观性)提升测试效率和测试深度C3-机密件 严禁外传录010203 程序可测性能建设案 实践:票业务程序测试经验04 总结与展望 认识程序可测性可测性介绍 程序介绍 程序可测性程序介绍14系统微信客户端(宿主应)微信程序微信程序运在微信客户端的“轻应”,依附微信态 不下载安装,完即程序发展15各平台相继推出程序,开放升级基础服务能,态圈逐步扩,程序得到迅速发展第批发布微信程
4、序程序技术架构分析16程序运环境分为渲染层和逻辑层,分别由两个线程管理两个线程间通信及与外部通信均经过宿主应转发不同系统的运环境有所区别受宿主应的限制,增加测试难度C3-机密件 严禁外传录010203 程序可测性能建设案 实践:票业务程序测试经验04 总结与展望 认识程序可测性可测性介绍 程序介绍 程序可测性程序可测性现状分析18对逻辑层测试限制较,测试仍是盒 Airtest AirtestAirtest UI动化框架,适于游戏和App,提供了跨平台的API,包括安装应、模拟输、断等,基于图像识别技术定位UI元素,同时提供了命令和python接,可以很容易地在规模设备集群上运Charles代理
5、 构造复杂场景较困难 Charles是个HTTP代理/反向代理具,使得开发者能够查看HTTP和SSL/HTTPS,包括请求、响应以及HTTP标头(其中包含cookie和缓存信息)19程序专,法迁移DebugPanel DebugPanel通常是研发于测程序逻辑开发的调试具,能测试部分场景 操作较繁琐程序可测性现状分析微信官具Minium 基于开发者具,不适QA常测试minium是程序专动化框架。使minium可以进程序UI动化测试,并进函数的mock,可以直接跳转到程序某个并设置数据,做针对性的全测试开发者具与真机运环境有差异 程序可测性全景标套多端运能够深程序内部进控制,对内部状态进观测的可
6、迁移可测性能,提升测试效率和测试深度20C3-机密件 严禁外传录010203 实践:票业务程序测试经验04 总结与展望 程序可测性能建设案 认识程序可测性基本原理22可测性改造的基本原理是/机向被测对象传递参数/指令,被测对象收到参数进处理(可测性SDK),并将应状态上报/呈现的过程InputOutput 传递参数 处理参数 上报状态整体架构23通信层:与/机通信。通过HTTP/WebSocket接收/机传递的控制指令,并将应状态上报给/机 指令分发层:指令处理与分发。解析通信层接收的控制指令,根据指令类型传递给功能层对应的参数 功能层:提供可测性能。处理参数,并设置Hook层相关状态/调相关
7、法来控制应,同时将Hook层获取的应信息传递给通信层进上报 Hook层:与程序的基础库和开发者代码交互,提供底层的状态/法拦截能 监控层:提供程序运时异常监控能,并对可测性为进埋点上报流程分析以请求代理为例24加载Hook层 程序加载时,Hook层先于业务代码加载Hook层 技术段:JavaScript Hook修改属性Getter/SetterProxyPrototype静态Hook基础库-通公共组件库(如美团登录组件)-组件级通业务特定逻辑-以插件形式引针对程序代码层次:25Hook层https:/ 基本思路:拦截wx对象的request法 代理式:在传url的host前加上代理服务器ho
8、sthttp:/127.0.0.1:1234/https:/ Lyrebird:向移动应及前端的插件式测试作台。提供抓包及mock基础功能,还可查看由可测性提供的应状态数据。持定义扩展在执测试的同时并的在后台进检测,也持定义图形界的插件扩展基本功能程序可测性改进测试作台-Lyrebird测试动化测试业务场景应30结合Lyrebird的可测性改进动化应31其他应32系统宿主应可测性改进SDKLyrebird测试动化测试视觉测试UI动化测试健壮性 测试其他测试能32程序C3-机密件 严禁外传录01020304 总结与展望 认识程序可测性 程序可测性能建设案 实践:票业务程序测试经验可测性贯穿票测试
9、活动始终34程序可测性改进通、可扩展能测试动化测试新需求测试回归测试定向测试线上巡检业务测试活动 新需求测试35进填单返回上级再次进填单填写购买信息:期、数量、游玩产品预期:为减少户操作路径,次进填单,需保持预填写的购买信息不变测试分析36再次进填单操作路径细分与缓存相关的技术实现分析 进填单 打开价格历弹层,选择期 添加数量 选择游玩 点击返回退出填单 再次进填单 读取缓存,并将缓存内容渲染在特定模块进展示选择期后,暂存期数据添加数量后,暂存数量数据添加游玩后,暂存游玩数据将暂存的数据写缓存同步骤测试分析37再次进填单测试分析与缓存相关的技术实现分析 读取缓存,并将缓存内容渲染 选择期后,暂
10、存期数据 添加数量后,暂存数量数据 选择游玩后,暂存游玩数据 将暂存的数据写缓存 再次进填单 如图所示从UI验证,也需要从数据验证,验证有读取的动作暂存,保证正确的写暂存,保证正确的写校验写在缓存,且缓存确实有值同步骤暂存,保证正确的写测试分析38可测性分析-通过可观来校验“写”的正确性 进填单 打开价格历弹层,选择期 添加数量 选择游玩 校验写在缓存,且缓存确实有值 同步骤 退出填单测试分析39可测性分析-通过可控来快速达到被测状态,校验“读的正确性 如图所示从UI验证,也需要从数据验证,验证有读取的动作 打开价格历弹层,选择期 添加数量 选择游玩 点击返回退出填单 再次进填单 进填单已使可
11、测性能40控制跳转控制登录控制缓存控制前后端环境请求代理志上报隐私治理动化交互控制录制回放票业务保障41动化测试测试场景构建动化场景数借助可测性使测试覆盖更全,降低测试成本少30%的测试场景完全依赖可测性构造美团微信程序票业务动化例326个动化覆盖100%,场景覆盖80%+票微信程序动化例123个22年123年5动化执1225次保障上线美团程序发版周次,票两周发,点评三周发,以22年以来计算,共保障81+40+27=148次上线22年1以来,视觉动化辅助新需求和回归测试共发现100+个有效问题C3-机密件 严禁外传录01020304 认识程序可测性 程序可测性能建设案 实践:票业务程序测试经验 总结与展望总结43程序可测性改进通、可扩展能测试动化测试业务场景程序从不具备可测性能到 以可测性改进为基础快速接到店移动端测试具链和测试体系展望44基础可测性能建设 动化测试建设 开源能 通 开源能45移动端测试作台Lyrebird https:/ vision-ui https:/ 标准化程序可测性SDK逐步开源中 Q&A更多技术货欢迎关注“美团技术团队”