腾讯 专项技术测试组长李昶博-腾讯的专项测试之道

宰流婉

2017/11/14 发布于 技术 分类

李昶博,腾讯专项技术测试组长,专注9年性能测试,人称“性能哥”,腾讯公司2015年度优秀讲师。经历PC QQ、手机QQ、Q+桌面、QQ空间、QQ音乐等客户端项目,多个项目获得了百倍的性能提升。在性能领域,共取得6件国家专利。2012年,QQ性能优化项目团队获腾讯公司级重大技术突破奖。

文字内容
2. 腾讯的专项测试之道 benjaminli(李昶博) 腾讯公司—SNG社交网络质量部 DevOpsDays 2017·上海站
3. 目录 1 向您介绍我自己 2 我们的专项测试方法论 3 我们自研的平台工具 4 成熟的专项团队测哪些指标? 5 发布后的全网监控 DevOpsDays 2017·上海站
4. 我有哪些项目经验? 2008 2014 2017 Windows 2013 Android PC QQ QQ Q+桌面 QQ空间 QQ音乐 DevOpsDays 2017·上海站 2015 iOS 更多项目 音视频 QQ空间 QQ音乐 AVSDK 全民K歌 花样视频 互动交友 办公IM RTMP SDK Now直播 空间直播 企鹅电竞 腾讯课堂
5. 我给腾讯公司带来的价值 DevOpsDays 2017·上海站
6. 目录 1 向您介绍我自己 2 我们的专项测试方法论 3 我们自研的平台工具 4 成熟的专项团队测哪些指标? 5 发布后的全网监控 DevOpsDays 2017·上海站
7. DevOpsDays 2017·上海站
8. 腾讯专项技术测试员工能力模型 探索性测试 自动化 纵 T3 轴 T2 ︓ 级 T1 别 外包 更 实习 高 √ √ √ √ √ √ √ √ √/× √/× 横轴:难度更高 分析定位 √ √ √ √/× × OS源码 提解决方案 √√ √/× √/× ×× ×× √/× × DevOpsDays 2017·上海站
9. 速度体验评测模型 交互模式 举例 用户操作 立即回馈 用户预期 < 400ms 成效 1.指导测试用例 的编写 2. 性能测试执 行可以交给外包 忙模式 进度条 实时动画 游戏,视频等 < 4秒 3.无标准时代, 每个性能Bug的 重要性依赖 最多等待4秒, leader判断。现 看到进度条前进 在,开发不再 PK,聚焦于性 掉帧率0% 能优化。 卡时间 窗口展示后不卡 < 50ms 竞品法则 任何情况下,始终要快于竞争对手 DevOpsDays 2017·上海站
10. 技术评审模型 分类 C/S 代码结构 B/S 磁盘I/O 界面效果 关键路径 细项 产品需求PK 技术方案PK 性能测试点 处理大批量数据的协议 不需要 增量拉取/大数据通道 窄带环境下测试速度 两个或以上的C/S协议来回 不需要 考虑合并为一个来回 高丢包环境下测试速度 下载/上传数据量 > 100K 不需要 不需要 I/O测试、流量测试 下载/上传数据量 > 500K 进度条 不需要 下载速度测试 独立的vcproj工程 不需要 尽量使用静态LIB 有共享价值才可用DLL 常驻内存的数据段(static数据、一旦申 不需要 按需申请、按场景释放 验证内存增量/释放 请就不再释放的逻辑) Static类/全局变量 不需要 非必要情况不要使用 验证启动程序时/DLL加载 时,不加载此模块的代码 是否有内嵌网页 不需要 跨进程WEB展现 页面测速/内存泄漏测试 是否跳转到浏览器 不需要 不需要 页面测速 为界面层提供数据查询/存储接口 不需要 接口查询效率 I/O测试 (封装DB、ini、注册表等) 多次磁盘写操作(移动、复制、删除等) 不需要 不需要 I/O测试 数据遍历(SQL、复合文档、文件系统) 需求合理? 考虑无遍历的替代方案 I/O测试 有多个同类界面元素 不需要 异步界面展示/按需加载 异步展示 (举例:多个桌面图标) 设计 按需加载 I/O测试 动画效果 不需要 Timer实现/阻塞式动画 测试掉帧率 逻辑是否和关键路径挂钩:启动时、登录 不需要 按需加载设计 按需加载 面板、登录时/登录后、退出 关键路径性能测试 DevOpsDays 2017·上海站
11. 目录 1 向您介绍我自己 2 我们的专项测试方法论 3 我们自研的平台工具 4 成熟的专项团队测哪些指标? 5 发布后的全网监控 DevOpsDays 2017·上海站
12. 研发支撑平台:CI/合流/发布 DevOpsDays 2017·上海站
13. 安装包质量监控:体积、方法数 DevOpsDays 2017·上海站
14. CodeDog:静态代码扫描 200+项目已接入:给两个SVN就能从差异中扫出Bug 共1731条扫描规则,其中201条自研规则 C++ Android Java Coverity CppCheck CppLint Android Lint FindBugs DevOpsDays 2017·上海站 C/C++ C# JavaScript Objective C PHP Python PyLint Ruby
15. Perflib & QTA:性能自动化测试 DevOpsDays 2017·上海站
16. New Monkey:稳定性测试 DevOpsDays 2017·上海站 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 项目名称 手Q 空间独立版 空间结合版 QQ Music 全民K歌 应用宝 腾讯新闻 天天快报 腾讯视频 企鹅办公 腾讯课堂 天天P图 Now直播 企鹅FM 腾讯视频OEM 腾讯视频少儿版 花样直播 企鹅辅导 微云 企鹅电竞 闪咖 腾讯直播 音视频开放SDK 部门 即通产品部 社交平台部 社交平台部 数字音乐部 数字音乐部 MIG OMG OMG OMG 即通产品部 即通应用部 社交平台部 即通应用部 社交平台部 OMG OMG 即通应用部 即通应用部 云平台部 增值产品部 社交平台部 OMG 音视频实验室
17. Magnifier:卡顿监控 DevOpsDays 2017·上海站
18. 目录 1 向您介绍我自己 2 我们的专项测试方法论 3 我们自研的平台工具 4 成熟的专项团队测哪些指标? 5 发布后的全网监控 DevOpsDays 2017·上海站
19. 专项质量体系 Windows 采集 分析 外网 卡顿 时延 CPU 句柄 页错误 IO 线程 perflib.win Magnifier + Windows Performance Analyzer 卡上报 全网性能上报 哈勃 内存 稳定性 WinDbg 全网Crash上报 Android 卡顿 电量 稳定性 时延 线程 流量 流畅度 CPU 内存 IO DB GC 音视频 采集 分析 外网 × 电流仪 New × × Monkey Log Log Wire Shark 智子 × RQD 哈勃 × × perflib.android Trace View 分析云 SNG APM Alloc Trace × × SNG APM iOS 采集 分析 外网 卡顿 × × 智子 时延 Log 哈勃 流畅度 CPU 内存 线程 IO perflib.ios Apple Instruments SNG APM × 流量 TCPDump WireShark × 电量 体温枪 × × 稳定性 New Monkey RQD DevOpsDays 2017·上海站
20. 框架效应:这样PK,效率多低? 性能Bug 这不影响用户体验吧? 要改 决策上升 在实验室中证明 我觉得可以接受 我的环境没这问题 测试数据稳定吗?你都不复现,我怎么查 这不关我的事啊,是历史问题/系统问题 限制业务规模 延后/预加载 移到子线程 要我原子优化?你测到不卡就 足够了,别搞那么复杂 发布:外网投诉 DevOpsDays 2017·上海站 测试不是证明过体验够好了吗?
21. 无需重现规律定位随机性能Bug 卡顿 实验室 App Log perflib 全网监控 智子 时延 APM 时延 CPU IO GC DB 流量 卡顿 IO DB 掉帧率 流量 TraceView IOMonitor AllocTrace IOMonitor TCPDump DevOpsDays 2017·上海站 编码 验证 度量 解决 分析
22. 带分析能力的性能自动化 DevOpsDays 2017·上海站
23. 结果:不吵架了,直接解Bug IO太高 专项分析工具 定位到出问 题的函数 谁写的这么烂的代码? 优化之 测试验证 IO减少30倍 影响90%用户 DevOpsDays 2017·上海站
24. CPU测试 DevOpsDays 2017·上海站 CPU变频特 性 其他APP串 扰 如何判定性 Android 4.x 能问题 有Bug
25. IO测试 Bug:启动慢 至12秒 连续3周没有分 析出原因 效率提升60倍 IO分析 2小时内找到某 组件最大 DevOpsDays 2017·上海站
26. 内存测试 重复打开 关闭 基准值 缓 存 DevOpsDays 2017·上海站 泄漏
27. GC测试 GC问题 • 内存复用 • 可解!! CPU问题 • 函数耗时 • 无解?? 数据规模 优化前(ms) 优化后(ms) 性能提升 10000 27,635 2,853 9倍 20000 164,235 4,380 36倍 30000 789,600 6,945 113倍 40000 2,287,948 9,910 230倍 50000 3,884,815 16,038 241倍 100000 远超1小时,无法测出 29,100 - DevOpsDays 2017·上海站
28. 掉帧率(流畅度)测试 16.67ms 掉10帧,167ms 更 敏 FPS = 50 掉帧率 = 16.7% 感 FPS = 50 掉帧率 = 0% …… …… 避 每天运行10轮: 免 每天运行1轮: 平 均 化 60 50 0% 16.7% DevOpsDays 2017·上海站 60 60 5.0% 4.0% 3.0% 2.0% 1.0% 0.0% 60 60 60 60 60 1.45% 0.26% ≥1帧 1.19% 0.20% 0.96% 0.05% ≥2帧 ≥4帧 优化前 优化后 FaceBook 60 0.68% 0.01% ≥8帧 59
29. 流量测试 自己解析 /proc/net /xt_qtaguid/ stats TrafficStats 含有本地回环 的流量 DevOpsDays 2017·上海站
30. 目录 1 向您介绍我自己 2 我们的专项测试方法论 3 我们自研的平台工具 4 成熟的专项团队测哪些指标? 5 发布后的全网监控 DevOpsDays 2017·上海站
31. 用户投诉跟进 DevOpsDays 2017·上海站
32. Crash全网上报 DevOpsDays 2017·上海站
33. 卡顿全网上报 外网用户卡顿率 DevOpsDays 2017·上海站
34. 时延全网上报 DevOpsDays 2017·上海站
35. SNG APM:掉帧率 DevOpsDays 2017·上海站
36. SNG APM:IO、DB、内存 IO 主线程不能 I/O Buffer太小 重复I/O DevOpsDays 2017·上海站 DB 主线程不能 做DB 全表扫描 没有使用事 务 SQL重复编 译 累计I/O > 100MB 内存泄漏 内存触顶率 Activity泄 漏 内存Dump VC泄漏
37. DevOpsDays 2017·上海站
38. 会议 培训 咨询 • 8月18日 DevOpsDays 上海 • 全年 DevOps China 巡回沙龙 • 11月17日 DevOps金融上海 DevOpsDays 2017·上海站 • EXIN DevOps Master 认证培训 • DevOps 企业内训 • DevOps 公开课 • 互联网运维培训 • 企业DevOps 实践咨询 • 企业运维咨询 商务经理:刘静女士 电话 / 微信:13021082989 邮箱:liujing@greatops.com
39. 性能哥就是benjaminli 有benjaminli就有性能 Thanks 荣誉出品 高效运维社区 国际最佳实践管理联盟 DevOpsDays 2017·上海站
40. 想第一时间看到 高效运维社区公众号 的好文章吗? 请打开高效运维社区公众号,点击右上角小人,如右侧所示设置就好 DevOpsDays 2017·上海站