那个从不加班的同事,晋升却比我快,我偷学了他的工作流
我盯着季度晋升名单看了整整五分钟直到屏幕自动息屏映出自己那张写满困惑的脸。林越那个每天六点准时拎包走人的家伙名字赫然出现在高级测试工程师的晋升栏里。而我一个在自动化脚本和回归测试里摸爬滚打了两年的“劳模”每天最早到岗、最晚离开工位上的加班餐券攒了厚厚一沓换来的却只是领导一句“辛苦了继续努力”。那种感觉很难形容。不是愤怒更像是一种认知崩塌。我一直相信的道理——只要足够努力、投入足够多的时间就一定能被看见、被认可——在林越身上彻底失效了。他从不参与晚上的用例评审马拉松周末的紧急发版也从来找不到他人可偏偏是他拿着比我高出整整两个职级的晋升通知。我决定弄清楚这背后的逻辑。不是出于嫉妒而是出于一个测试工程师的本能——当一个系统输出的结果与预期不符时一定是我的理解模型出了问题。接下来的两个月我开始有意识地观察林越的工作方式。这件事做起来并不难因为他就坐在我斜对面隔着一排显示器的距离。真正难的是放下自己那点可怜的自尊心承认一个“看起来没我努力”的人可能比我更懂得如何工作。第一个让我感到冲击的发现是关于测试用例的设计方式。我们组每个人手里都维护着几百条用例每次版本迭代大家的第一反应是把用例库全量跑一遍生怕漏掉什么。我也不例外甚至更夸张——我会把关联模块的用例也拉进来跑美其名曰“覆盖更全面”。结果就是每次回归测试都像一场马拉松从早跑到晚跑到眼睛发酸、脑子发木最后交上去的报告厚得像一本手册。林越不这么干。他做回归测试之前会先花二十分钟看代码提交记录。不是随便扫一眼而是逐条看开发改了哪些文件、动了哪些接口、涉及哪些数据表。看完之后他在用例管理系统里勾选的范围精准得让人不舒服——只跑变更影响的链路只验证核心业务逻辑其余的一律跳过。我一开始觉得他这是在偷懒直到有一次一个支付模块的边界值异常被他用不到三分之一的用例数量就揪了出来而我全量跑了两天反而因为疲劳漏掉了同一个缺陷。这件事让我意识到一个残酷的事实测试的价值从来不是以用例执行数量来衡量的。跑一百条无关紧要的用例不如跑十条命中风险点的用例。林越把时间花在测试策略的制定上而我花在了测试执行的体力消耗上。前者是脑力劳动后者正在被自动化替代。第二个让我重新审视自己的是他对自动化的态度。我们组的自动化覆盖率一直是个敏感话题。领导每次开会都要提大家就拼命写脚本恨不得把每个手工用例都转成自动化。我也是这股浪潮里的积极分子经常加班到深夜就为了多封装几个关键字、多调通几条脚本。可问题是很多脚本跑一次要花四十分钟维护成本极高界面一改就要跟着改最后算下来写脚本加维护的时间比手工执行还长。林越的自动化策略完全不同。他只对三类场景写脚本高频重复的核心业务流程、数据驱动的参数化校验、以及手工很难模拟的并发或异常场景。其他的他宁愿保留手工测试的灵活性也不强行自动化。有一次我在茶水间碰到他忍不住问了一句。他想了想说了一句让我记到现在的话“自动化不是为了取代人是为了把人从重复劳动里解放出来去做机器做不了的事。如果一个脚本的维护成本高于它节省的时间那它就不是资产是负债。”这句话像一盆冷水浇在我头上。我回头翻看自己写的那些脚本至少有四成属于“为了自动化而自动化”的产物跑起来的稳定性堪忧维护起来更是噩梦。我把时间花在了堆砌数字上而他把时间花在了让数字产生真正的效能上。第三个改变我认知的是他处理缺陷的方式。我习惯的做法是发现bug就提bug描述清楚步骤、预期和实际结果然后丢给开发等修完了再验证。这个流程本身没错但问题在于我很少去追问bug的根因。是需求理解偏差是接口文档未更新是代码逻辑缺陷还是环境配置问题这些我很少深究因为“提完bug我的任务就完成了”。林越提的bug单每一张都像一份微型分析报告。他会附上日志片段、抓包数据甚至会在bug描述里写清楚自己推测的可能原因以及建议的修复方向。开发拿到他提的bug几乎不需要反复沟通就能直接定位。更关键的是他会把同类型的缺陷归类整理定期在组内分享告诉大家哪些模块容易出问题、哪种编码习惯容易引入缺陷。他做的不是单点的缺陷发现而是系统性的质量预防。三个月后我做了一个决定——不再靠加班时长来证明自己的价值而是试着把林越的工作流拆解成可复用的方法融入自己的日常。我开始在每次回归前做变更影响分析不再盲目全量执行。我开始审视自动化脚本的投资回报率果断废弃了那些维护成本过高的脚本把精力集中在真正有价值的场景上。我开始在提bug时多花十分钟分析根因把每一次缺陷当成一次学习的机会而不是一个需要赶紧甩出去的任务。改变的过程并不轻松。减少用例执行数量让我一度感到不安总觉得自己“做得不够多”。放弃那些花了很多心血写出来的自动化脚本也让我心疼了好一阵。但数据不会骗人——两个月后我负责的模块线上漏测率下降了自动化脚本的稳定性提升了和开发的协作摩擦也明显减少了。更重要的是我六点半就能走出办公楼天还亮着那种感觉陌生又奢侈。回过头来看林越教会我的不是某种具体的技巧而是一种底层的工作哲学。在软件测试这个领域我们太容易陷入“忙碌等于价值”的陷阱。手工用例一条条跑、自动化脚本一个个写、bug一张张提这些动作本身会制造一种充实的幻觉让人觉得自己在产出。但如果这些动作没有经过策略层面的思考没有指向真正的质量目标那就只是在用战术上的勤奋掩盖战略上的懒惰。测试工程师的核心竞争力从来不是谁能熬更久的夜、谁能执行更多的用例。而是谁能在有限的测试时间里找到最可能出问题的环节用最小的成本获取最关键的质量信息。这是一种判断力一种对系统风险的本能嗅觉它需要时间思考、需要经验沉淀、需要从重复劳动中抽离出来才能培养。如今我也成了别人眼中那个“不怎么加班但产出很高”的人。偶尔有新同事问我诀窍我会把林越当初教给我的东西告诉他们把时间花在测试策略上而不是测试执行上让自动化服务于效率而不是服务于报表把每一个缺陷当成理解系统的窗口而不是需要赶紧关闭的任务单。测试这条路很长加班永远加不完。但真正能让你走远的不是你能熬多少夜而是你是否想清楚了每一个小时的工作究竟在为质量贡献什么。