打造高效能质量保障的三板斧

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 「奔逸绝尘」 打造高效能质量保障的三板斧 吴骏龙 阿里巴巴本地生活 高级测试经理
2. • 中国科学技术大学 硕士学位 • 曾任职于eBay,专攻测试领域各项自动化技术,推行先进测试理 念,崇尚和热爱技术,擅长通过技术手段保障产品质量 • 现任职于阿里巴巴本地生活,负责质量基础设施建设,工作重心投 吴骏龙 阿里巴巴本地生活 · 高级测试经理 入全局容量保障、稳定性、质量效能等工作,担任多项大促活动和 重点项目PTM
3. 质量保障的「血泪史」 项目节奏太快,没有时间写自动化测试用例
4. 质量保障的「血泪史」 跑一整套自动化回归测试用例,需要12个小时
5. 质量保障的「血泪史」 跑1000个自动化回归测试用例,失败100个, 其中90个是环境问题
6. 质量保障的「血泪史」 我负责的模块质量好不好,我自己也说不准
7. 质量困境 项目倒排期 QA没时间 全局业务识别度差 环境治理不佳 工具不足 自动化程度低 回归测试时间长 环境不稳定 质量效能低下 造数困难 联调效率低 漏测率高 用例可复用性差 质量可信度不足 缺乏架构梳理 问题无法及时暴露
8. 为什么要重视质量效能 以尽可能小的成本,尽可能高的效率,保证产品质量。 质量效能低下,最终会影响质量。 质量效能低下,是不可持续的。
9. 质量提效切入点 PRD 预评审 MRD 自动化、流量回放、造数引擎 CR QA测试用例 PRD 评审 技术方案 排期 接口定义 Dev功能代码 自助回归测试 自验证 问题 • 获得质量反馈太慢,成本太高 • Dev/QA相互依赖太多,造成block • 与外部团队依赖太多,造成block 提测 环境隔离 精准测试 回归测试左移 研发修复 缺陷上报 手工测试 联调 可选 QA验证 发布 线上问题定位 线上验证 可复用 测试组件
10. 质量提效三板斧之「快速」 质量提效三板斧之「精准」 质量提效三板斧之「可信」
11. 质量提效三板斧之「快速」 可重复的,快速提供可靠的质量反馈,包括结果和过程 「一天」构建出一整套回归测试用例集 「一小时」完成中等规模功能模块的自动化测试用例编写工作 「15分钟」跑完整个回归测试(Full Regression) If it hurts, do it more often. — Martin Fowler
12. 流量回放 调用链快照 调用链 上游应用 Redis Redis 待验证服务(回放) 线上服务(录制) MySQL A1 Service MQ A2 Service B Service 服务治理系统 真实调用 流量回放 Client 流量回放 Client MQ 上下文 流量回放服务端 数据比对 任务控制 MySQL A1 Service A2 Service Mock调用 MQ B Service
13. 流量回放 录制流程 回放流程 1.A Service被调用,AOP记录A Service的请求,写入A上下文 1. 从外部消息队列获取调用链上下文,对A Service发起请求 2.调用Redis,AOP记录Redis的入口请求和出口响应,写入A上下文 2. 调用Redis,判断是回放流量,记录调用Redis的入口请求,写入B上下文, 3.SOA方式调用B Service,AOP记录B Service的请求和响应,写入A上下文 4.调用DAO操作DB,AOP记录DAO的入口请求和出口响应,写入A上下文 5.通过数据库中间件时,记录执行SQL,写入A上下文 并从A上下文中获得出口响应,进行mock返回 3. SOA方式调用B Service,判断是回放流量,记录调用B Service的请求,写入 B上下文,并从A上下文中获得响应,进行mock返回 6.发送消息,AOP记录消息内容,写入A上下文 4. 其他流程类似,略过…… 7.A Service调用结束,AOP记录响应,写入A上下文 5. 将上下文A和上下文B输出至流量回放服务器 8.将整条调用链上下文(A Context)输出至外部消息队列 比对流程 1. 将上下文A和上下文B逐字段比对,若不一致则输出 2. 支持通过脚本对比对逻辑进行加强
14. 用例模块化 用例 模块 用户、商户 用户、商户 创建即时单 创建预约单 订单实体 测试用户 测试商户 测试用户 (带满10 - 3红包) 测试商户 (带满减活动) 订单实体 预约单 用户、红包类型 添加红包 成功与否 后续操作 商户 设置活动 成功与否 Check points 测试结果 AOP AOP AOP 通用模块 + 定制模块(来源日常用例) 组装成测试用例 + 检查点
15. 质量提效三板斧之「精准」 恰到好处的,按“需”提供质量反馈 • 执行的测试用例究竟能多大程度上保障系统质量? • 是否每次迭代验证都需要执行全量回归测试?
16. 精准测试 静态分析 用例推荐 项目代码 AST A 数据库 类vs方法vs行 通过A得到 变更方法集 Commit Code Diff B 映射关系 应用服务 with Jacoco 执行 精准用例 用例 执行 输出 代码轨迹 方法vs用例 映射关系 自动化测试系统
17. E2E测试的精准性 让用户来“帮”我们度量 E2E测试的覆盖率靠什么度量? 线上链路收集 归纳同类项 权重分析 产品定义User Story 测试编写用例 研发定义关键路径 测试进行分析 覆盖所有代码 测试进行覆盖 排序 输出关键链路 构建 靠谱吗?精准吗? 测试用例
18. 质量提效三板斧之「可信」 提供高置信度的质量反馈,缺陷即为「BUG」 • 执行失败的自动化测试用例中,大半是环境问题 • 由于测试数据污染,造成测试结果的不准确 • 质量反馈不稳定,导致结果需要人工甄别
19. 测试环境稳定性治理 B1 C1 A2 B2 C2 D2 主干环境 A0 B0 C0 D0 基础环境 服务探活 项目环境 链路巡检
20. 造数的可靠性 造数需求 造数服务 设置权限、过期时间等 造数策略 批量造数 用户 商户 实时造数 数据仓库 生产数据(重试机制) 使用方 消费数据 根据消费量 调整生产量 数据仓库 定期 订单 Golden Data Set 数据校验
21. 总结 质量反馈 快速 精准 可信 提供质量反馈的周期更短 获得质量反馈的成本更低 质量反馈的置信度更高
22. 谢谢观看

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-24 04:02
浙ICP备14020137号-1 $Map of visitor$