基于可测性的高效自动化测试

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 基于可测性改进的 高效自动化测试 王文浩
2. 讲师简介 2016年7月加入美团,现就职于到店事业群,从事测试开发工作 王文浩 测试开发工程师 主要从事测试工具设计与开发、持续交付等领域的工作,致力于 服务端可测性的改进和测试效率提升 卓越工程生产力峰会 ee.msup.com.cn 2
3. 目录 01 02 03 04 微服务自动化测试困境 可测性改进 应用实践 回顾&展望 卓越工程生产力峰会 ee.msup.com.cn 3
4. 微服务自动化测试困境 - 开发成本高 场景构造难 构造单个场景往往需要涉及多个 服务间数据修改 微服务调用拓扑图 卓越工程生产力峰会 ee.msup.com.cn 开发成本 测试深度 用例稳定性 排查效率 4
5. 微服务自动化测试困境 - 开发成本高 接口定义结构复杂 自动测试开发耗时 单接口定义字段多达 200+ 70% 的时间花费在数据准备+流程编写阶段 卓越工程生产力峰会 ee.msup.com.cn 开发成本 测试深度 用例稳定性 排查效率 5
6. 微服务自动化测试困境 - 测试深度不足 单服务架构复杂 RPC/HTTP/MQ/定时任务 数据库组件 分布式调度任务 消息中间件 KV 存储 •自动化测试校验粒度粗 •底层中间件无法覆盖 •部分类型无法进行自动化测试 外部依赖 PRC/HTTP 服务治理 弹性伸缩 单服务架构 卓越工程生产力峰会 ee.msup.com.cn 开发成本 测试深度 用例稳定性 排查效率 6
7. 微服务自动化测试困境 - 用例稳定性低 单次调用链路⻓ 查询接口 1 个 调用深度 6 层 调用服务 39 个 调用次数 242 次 测试稳定性低 •稳定性受制于下游服务的稳定性 •以单服务可用性99.5%为例,242次调用的 可用性为(0.995)**242 = 29.73% 卓越工程生产力峰会 ee.msup.com.cn 开发成本 测试深度 用例稳定性 排查效率 7
8. 微服务自动化测试困境 - 问题排查效率低 复现成本高 数据流转难 •沟通成本高 •信息记录不规范或难 以统计,缺乏必要的 复现信息 •场景复现链路⻓ •由于数据/环境的波动 以及较⻓的复现链路 导致场景难以复现 缺乏合适的工具发起RPC调用 卓越工程生产力峰会 ee.msup.com.cn 开发成本 测试深度 用例稳定性 排查效率 8
9. 微服务自动化测试困境 - 问题排查效率低 系统迭代快 服务数量: 3000+ ,日均发布次数 200+ 次 自动化测试开发跟不上发布频率 卓越工程生产力峰会 ee.msup.com.cn 开发成本 测试深度 用例稳定性 排查效率 9
10. 微服务服务端测试挑战 开发成本高 用例稳定性低 测试深度不足 数据流转不透明 服务可测性不足 调用链路不可控 排查效率低 卓越工程生产力峰会 ee.msup.com.cn 10
11. 目录 01 02 03 04 微服务自动化测试困境 可测性改进 应用实践 回顾&展望 卓越工程生产力峰会 ee.msup.com.cn 11
12. 可测性定义 The capability of the software product to enable modi ed software to be tested [1] Degree of e ectiveness and e ciency with which test criteria can be established for a system, product or component and tests can be performed to determine whether those criteria have been met [2] Attributes of software that bear on the e ort needed to validate the software product [3] [1]. ISTQB standard glossary [2]. ISO standard 25010:2011 [3]. ISO standard 9126- 1: 2001 12 卓越工程生产力峰会 ee.msup.com.cn
13. 可测性简介 测试从本质上通常可以视为「刺激系统而使之产生响应,然后对其进行检查的过程」。 待测系统 (执行)刺激 (响应)检查 刺激 可控 ,响应 可观 可测性 = 可观性 卓越工程生产力峰会 ee.msup.com.cn 13 + 可控性
14. 可测性分析 可测性 = 可观性 + 可控性 开发成本高 开发成本高 测试深度不足 用例稳定性低 排查效率低 测试深度不足 排查效率低 卓越工程生产力峰会 ee.msup.com.cn 14
15. 可测性改进 服务端 测试工作台 agent 数据上传 指令下发 服务C 录制 回放 发起请求 卓越工程生产力峰会 ee.msup.com.cn agent agent 服务A 服务B 配置 可测性改进方案 15
16. 可测性改进 - 降低开发成本 Mock F’ •可观性 •调用链路可视化 •无视接口定义复杂度 A •可控性 •控制调用范围,避 免调用链路扩散 •降低场景构造成本 Mock B’ D 卓越工程生产力峰会 ee.msup.com.cn 开发成本 测试深度 用例稳定性 排查效率 16 Mock C’ E
17. 可测性改进 - 增加测试深度 •可观性 •内部调用逻辑可视化 •暴露内部链路,提供对 内部链路校验能力 RPC/HTTP/MQ/定时任务 数据库组件 分布式调度任务 消息中间件 KV 存储 •可控性 •中间件调用Mock 外部依赖 PRC/HTTP 服务治理 弹性伸缩 RPC/HTTP/MQ/定时任务 数据库组件 分布式调度任务 消息中间件 KV 存储 外部依赖 PRC/HTTP 服务治理 卓越工程生产力峰会 ee.msup.com.cn 开发成本 测试深度 弹性伸缩 用例稳定性 排查效率 17
18. 可测性改进 - 提高稳定性 查询接口 调用深度 1个 6层 调用服务 调用次数 39个 242次 查询接口 调用深度 1个 1层 调用服务 调用次数 6个 9次 •可控性:降低调用深度 •屏蔽无关服务波动对 用例稳定性的影响 卓越工程生产力峰会 ee.msup.com.cn 开发成本 测试深度 用例稳定性 排查效率 18 服务可用性 29.73% 服务可用性 95.59%
19. 可测性改进 - 提高问题排查效率 复现成本高 数据流转难 •可观性 •打造链路可视化能力 •数据格式标准化 •可控性 •链路数据Mock 卓越工程生产力峰会 ee.msup.com.cn 开发成本 测试深度 用例稳定性 排查效率 19 提供标准化记录模板 数据无缝流转
20. 目录 01 02 03 04 微服务自动化测试困境 可测性改进 应用实践 回顾&展望 卓越工程生产力峰会 ee.msup.com.cn 20
21. 应用实践 链路数据检查 用例个性化校验 自定义回放 … 校验规则 用例生成 链路可视化 场景重建 … 实时可控 卓越工程生产力峰会 ee.msup.com.cn 21 开放扩展能力, 与业务方共建个性化测试能力 提供基础测试能力 以可测性增强为基础
22. 应用实践 - 可测性增强 链路可视化 实时录制 卓越工程生产力峰会 ee.msup.com.cn 22
23. 应用实践 - 可测性增强 实时Mock 卓越工程生产力峰会 ee.msup.com.cn 23
24. 应用实践 - 测试能力 校验规则 所⻅即所得的规则编辑能力 实时校验 卓越工程生产力峰会 ee.msup.com.cn 24
25. 应用实践 - 测试能力 场景重建 缺陷创建标准化 数据分享 通过标准化模板生成缺陷信息 卓越工程生产力峰会 ee.msup.com.cn 一键提交 数据无缝流转 25
26. 应用实践 - 测试能力 场景重建 回放结果自动校验 响应DIFF 链路DIFF 判断出错原因 定位问题根因 卓越工程生产力峰会 ee.msup.com.cn 26
27. 应用实践 - 测试能力 接口测试用例生成 以尽可能少的用例达到较高的覆盖 相离 A B 基于链路数据的相似度系数 对测试用例进行推荐 A 相交 C 相似度越高,流量的覆盖效果越 趋于一致 包含 A 添加B到用例中 基于当前覆盖情况判断 是否添加用例C 排除用例D D 卓越工程生产力峰会 ee.msup.com.cn 接口测试用例推荐 27
28. 应用实践 - 测试能力 接口测试用例生成 自动化用例选择 一键PR 卓越工程生产力峰会 ee.msup.com.cn 28
29. 应用实践 - 测试能力 接口测试用例模式生成模式介绍 F Mock F’ A A B C D 卓越工程生产力峰会 ee.msup.com.cn Mock B’ E 直接mock 29 Mock C’
30. 应用实践 - 测试能力 接口测试用例模式生成模式介绍 F Mock F’ A A B C D 卓越工程生产力峰会 ee.msup.com.cn B E C Mock D’ 链路mock 30 Mock E’
31. 应用实践 - 测试能力 接口测试用例标准化 用例结构标准化 用例校验标准化 卓越工程生产力峰会 ee.msup.com.cn 31
32. 应用实践 - 测试能力 接口测试 用例推荐 手工测试 用例推荐 卓越工程生产力峰会 ee.msup.com.cn 32 接口自动化用例生成
33. 应用实践 - 测试能力 DIFF 测试 性能测试 健壮性测试 专项测试 卓越工程生产力峰会 ee.msup.com.cn 33 安全测试
34. 应用实践 - 扩展能力 数据录制 用例生成 用例筛选 回放配置 扩展引擎 触发点 数据校验 插件1 返回校验结果 卓越工程生产力峰会 ee.msup.com.cn 34 插件2 ······ 插件n
35. 可测性改进 - 服务架构 业务应用 测试分析 测试执行 测试评估 能力扩展 能力扩展 测试分析 测试推荐 链路校验 用例生成 场景重建 专项测试 测试度量 测试报告 测试能力 基础能力 可测性增强 自定义拦截点 Mock数据下发 链路可视化 链路数据查询 实时可控 卓越工程生产力峰会 ee.msup.com.cn 35
36. 应用数据 录制服务 录制接口 录制数据量 生成用例 时间成本降低 用例成功率 600+ 2.3K 32K 65% 21M 99% 卓越工程生产力峰会 ee.msup.com.cn [1]. 数据统计范围:2021.09.05~2021.09.11 36
37. 目录 01 02 03 04 微服务自动化测试困境 可测性改进 应用实践 回顾&展望 卓越工程生产力峰会 ee.msup.com.cn 37
38. 演进历程回顾 测试工作台 2020 通用化Mock服务 2018 RPC Mock服务 Moka3 部分可观性+可控性增强 2017 Moka2 可控性增强 卓越工程生产力峰会 ee.msup.com.cn 38 TestX 全面可观性+可控性增强
39. 未来展望 以可测性改进为基础,打造面向服务端测试的可扩展工作台 测试分析 测试执行 卓越工程生产力峰会 ee.msup.com.cn 39 测试度量
40. Q&A 欢迎加入美团 卓越工程生产力峰会 ee.msup.com.cn 40
41. 关注msup公众号 获取更多工程效能实践案例

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-15 10:21
浙ICP备14020137号-1 $Map of visitor$