前言
前段时间,我在准备绩效材料,总结过去一年的质量工作和产出。不经意间,感叹时间飞逝,今年是我在测试开发领域摸爬滚打的第五个年头,趁着这个时间点,对过去几年工作做个小结。
总结有几个目的:
- 沉淀与分享:沉淀过去几年的质量保障技术和工作经验,一方面可以为刚入门的同学提供些参考,希望帮同学们少走些弯路;另一方面,也让自己可以带着批判的眼光审视这几年的工作,发现不足,持续改进。
- 计划与鞭策:基于过去五年的工作积累和当下行业热点,我制定下一个五年计划,明确未来的发展方向,并定期自我鞭策。
- 交流与共勉:抛砖引玉,期待与业界同仁展开深度讨论,获得宝贵建议。
经历
2019 年:
- 7 月:在学校当地某网络安全公司态势感知研发部进行短期实习,初步体验职场环境。
- 下半年:加入百度网盘部门担任测试开发实习生,参与一刻相册 v1.0 和百度网盘核心模块的质量保障。
2020 年:
- 获得百度智能云测试开发 offer,实习期间负责网络业务测试。
- 正式入职后转入存储测试团队,开启为期三年的云产品测试生涯,专注质量保障与效能提升。
2023 年至今:
- 加入 OLAP 领域初创公司,负责质量保障体系建设、效能提升和基础设施优化。
- 目前负责产品某个方向质量保障工作。
职业生涯前五年关键字:存储、质量保障、效率提升、基础建设。
沉淀
主要可以分为三个方面:质量保障、效率提升和个人技能。
以下是个人经验总结,大致列个大纲,很多概念不会细讲,具体细节可以问大模型或 Google。
质量保障
讲到这里,很多同学可能会直接跟测试挂钩,其实质量保障并不等于测试。测试只是质量保障的一类手段。我总结为 3 方面:质量评估、质量方案、质量标准。
质量评估
质量评估目的是明确系统质量的薄弱点 以制定质量保障方案,按优先级开展。
测试覆盖
- 测试覆盖:内部所有测试进行复盘。
- 代码覆盖率:执行所有测试,产出代码覆盖率。每种代码语言有对应的工具 Java JaCoco, C++ llvm 等。
- 日志覆盖率:执行所有测试,产出日志与代码中日志打印逻辑覆盖率。baidu 有个项目 logcover,个人体感 ROI 不高。
BUG 分析
- 主要是基础场景和 KA 用户场景,需要高优关注。并对 BUG 进行分类,功能、性能、稳定性等。
质保方案
质保方案大致可以分为 3 方面:质保流程、质量测试、质量标准。
质保流程
这块可以网上搜下软件工程测试流程,说的比我这要细,总结下大概以下几个比较有用:
测试准入
- 准入测试通过:各种 CI 通过。
- 增量覆盖率达标:根据实际系统类型,设置基线,比如数据库内核部分 90% 以上。
- 提测文档给出:包含设计文档、代码改动 PR、风险点等。
质量评估
测试设计
测试设计评审
回归测试
- 测试通过后,提测版本在回归流水线上执行,判断是否影响存量功能。当然,回归测试也可以前置到测试准入阶段执行。
发版准出
- 回归测试正常、性能无回退等
冒烟测试
- 挑选高优测试用例作为冒烟测试用例,产品上线后进行验证。
PoC 测试
- 在客户环境或者预生产环境验证。
质量测试
这块可以网上搜下测试金字塔,从底层到顶层,包含但不限于:
基础层:单元测试/打桩测试
中间层:功能/兼容性/集成测试
高层:性能/长稳/压力/混沌/安全/场景仿真
质量标准
任何工程项目都有质量标准,不限于系统软件,汽车、桥梁、食品等。
当然质量标准基线越准确,越丰富、越细节,对应的工程越可靠。
标准基线:这块可以基于项目真实情况,制定对应的质量标准基线,比如:
- 发版所有测试均通过。
- 发版所有测试情况下,不触发监控告警。
- 发版性能所有性能场景不回退。
发版报告
- 需要把所有测试情况真实清晰的输出。
效率提升
这块主要看公司需求,提升测试或研发效率,包含但不限于:
CI/CD
测试工具
测试框架
测试平台
监控告警
个人技能
这块需要自己有个定位,在某个领域想成为什么样的角色,对应的去掌握相关技能。包括硬技能与软技能。
硬技能
系统熟悉
- 用户场景
- 系统架构
- 重要模块
- 代码细节
理论知识
- 计组
- 网络
- 操作系统
- 数据库等
工具使用
- 编程语言
- 系统工具
- 测试工具
- 测试框架等
代码能力
- 代码走读
- 代码审查
问题解决
- 问题复现
- 问题定位
软技能
质量、效率、运维的思维和方法论
向上、向下管理能力等
思考
这是我一直想写的一篇文章。由于篇幅有限,简单总结了几年的工作。后续我会每块内容进行完善或单独写文章与各位讨论。
测试开发的这几年,我对质量保障这个事儿有了比较深刻的理解,获得了较多经验。同时借此机会,感谢各位老师给予的帮助与肯定。
近两年,计算机行业热点大家想必很清楚。生成式 AI 与大模型推动了全产业链革命。有时候我会想,作为测试开发,如何具备立身之本,才不会被 AI 大模型的浪潮淹没。
结合工作沉淀和行业热点,我在多个方面给自己制定下个五年计划:
- 方向方面
- 持续在生成式 AI 与大模型沾边的基础业务。
- 技能方面
- 具备带人的能力。
- 精通当前质保项目(OLAP)的实现原理。
- 持续提升基础理论、工具和代码水平,具备问题定位、风险评估和客户重保能力。
- 能够运用大模型推动在业务质量保障的某个领域落地。
- 学习网络安全,最近对网络安全比较感兴趣。未来大模型安全也是个方向。
- 其他方面
- 输出《分布式存储系统质量保障笔记》,希望对相关从业者有帮助。
- 保持良好的身体状态和心态。
参考
推荐书单
- 《软件测试的艺术》(Glenford Myers)
- 《Google 软件测试之道》(James Whittaker)
- 《设计数据密集型应用》(Martin Kleppmann)
- 《金字塔原理》(Barbara Minto)
- ...
讨论
- 在当前AI大模型快速发展的背景下,传统质量保障手段是否会被AI取代?测试开发工程师应该如何转型或提升技能以适应这一趋势?
- 作为测试开发工程师或架构师,你认为最难能可贵的品质是什么?是技术深度、风险嗅觉,还是其他特质?你在实践中如何培养这种品质?
- 你目前从事哪种岗位,深耕了多久?是否有不一样的心得体会?
欢迎分享你的观点或经验!