晚上十一点半。屏幕冷光糊一脸,教程里的操作界面,我他妈已经翻到第三遍了。鼠标在虚拟环境里瞎戳,进度条慢得跟蜗牛爬。心里头空落落的。总以为把每一步都跑顺了,报错全查明白了,第二天就能顺顺当当迈进那间心心念念的办公室。得了吧。这事儿哪有这么回事。你明明在干活,却觉得自己在原地打转。连呼吸都跟着进度条一起卡壳。
程宝雷那本《软件测试工具实用教程》,把IBM Rational系列工具的操作扒得挺细。搭环境,做实验案例,每一步都像是提前焊死的轨道。书里反反复复念叨,学完这些就能“有针对性地解决实际问题”,能“较快地进入测试角色”。听着是挺让人安心。可书一合,IDE一关,那点踏实感,跟断电源的服务器似的,悄无声息就灭了。说实话,书里写得那叫一个滴水不漏。仿佛按着说明书拧螺丝,真能拧出个资深工程师来。但工具书只教人找bug。没教人怎么接住bug冒出来时的那股失重感。
我以前也搞不懂这种“准备”。总觉得过日子不该跟敲代码似的,非得先跑通所有单元测试,才敢点部署上线。咱们这帮人,好像都染上了“准备焦虑症”。挑城市?得把三年落户政策和通勤路线盘明白。换工作?面试题库得背得滚瓜烂熟。甚至谈个恋爱,心里头还得默默拉一份兼容性测试清单。怕出错。怕上线后蹦出不可控的异常。就死磕在本地环境里模拟各种极端状况,妄想把未来的每一个bug都提前揪出来。我觉得吧,可能咱们真有点被这套逻辑给PUA了。测试是为了确认系统是不是按图纸走的。是为了把不确定性赶尽杀绝。可日子不是封闭的测试环境。你没法给突然的行业洗牌写测试用例。也替不了慢慢凉透的关系提前写好降级方案。真正让人熬大夜的,往往不是明面上的毛病。是系统里那些算不出概率的“边缘情况”。
我有个做产品的哥们儿。前年攒够钱买了辆二手车,撂下话要辞职去跑长途。出发前他足足准备了半年。做攻略,买装备,连急救证都去考了。上路头天晚上,他坐在那辆刚提的车里,突然给我甩来条消息:“感觉哪儿都没去,人就已经累脱了。”后来他确实出发了。但路上最戳他的不是风景。是车半路抛锚时,他不得不摇下车窗跟陌生货车司机问路的狼狈。故障灯一路亮着。他修不好,索性也不管了。可他说,那是他这几年睡得最踏实的日子。后来我琢磨,他那时候怕不是把“准备”当成了“预演”。把自己给活活演累了。
咱们大概早就把“测试”这词儿用岔了。测试的初衷是防错。但人活着,偏偏得在没底的事儿里一点点摸出自己的轮廓。书里说学生能通过实验解决实际问题。可现实里的难题,从来不按实验指导书的目录排队。它可能在你刚摸熟一个新工具的时候,冷不丁让你撞进一个完全陌生的行当。也可能在你以为已经“进入角色”时,冷笑着提醒你,这角色压根就不适合你。未必是坏事。但死磕到底,就有点拧巴了。
软件测试那套逻辑是闭环的。发现缺陷,记录缺陷,修复缺陷,验证缺陷。流程走对了,系统就能稳稳当当跑下去。我也不确定自己是不是钻牛角尖了。只是越发觉得,咱们没必要把自己活成一套严丝合缝的代码。留点冗余。容点未处理的异常。跑一半觉得不对劲了,随时能改道。那些当初没跑通的测试用例,最后全成了系统的补丁。没一个算报废的零件。
屏幕上的教程还停在下一页。我啪地合上电脑。没再去点下一个视频。窗外的城早就静透了。偶尔有夜班公交碾过柏油路,轮胎摩擦的声音闷闷的。明天大概还得去面试。还得对付那一堆没弄完的烂摊子。但今晚,我决定不调试了。就这么跑起来吧。就算报错。就算崩盘。也算老子亲自跑过一遍。