凌晨十一点半。键盘敲得跟暴雨似的。文档进度条总算死死卡在100%。手指头往“发送”键上一摁。没觉着多痛快。反倒像一脚踩空了台阶,心里“咯噔”一下。这破毛病,我隔三差五就犯一回。大伙儿是不是都特爱把“搞完”等同于“搞定”?合上电脑拍拍屁股走人。谁琢磨过:刚扔进邮箱的那坨玩意儿,真能扛事儿吗?说实话,每次发完我都得盯着收件箱发呆半分钟。生怕弹个“发送失败”。或者更糟的,排版全乱。

后来硬着头皮啃《笑傲测试》,里头一段话差点把我给噎着。书里把软件测试员画成个专挑刺儿的冷面客。主角刚要拔剑,人家递块白布过去:“且慢,剑刃有裂。”小说里这叫遇高人。落到咱日常里?这关通常都被咱们自己给跳过了。嫌走流程捆手脚。觉得做检查拖后腿。一心想着赶紧把自己,或者手里的活儿,打包塞进市场里。慢一步,风口就没了。机会就凉了。真这么回事吗?

不过,咱们真就敢随便按“上线”键吗?升职加薪。跟人搭伙过日子。甚至脑子一热订的机票。咱们多半只做了个表面功夫的“可行性分析”。压根没做过什么“压力测试”。这词儿听着挺技术。说白了,就是往系统里灌极限流量,看它啥时候崩盘。换到人身上呢?扒开皮肉问自己:要是明天突然没了现在这层光环,还能不能站稳脚跟?要是感情里就剩惯性撑着,还能不能处得下去?我以前总觉着,停下来检查是怂包行为。江湖儿女嘛。刀口舔血,直接往前冲。后来才咂摸出味儿来。那些跑得最疯的,往往最先“内存溢出”。不是本事不够。是压根没空清理攒下来的“隐性bug”。当然,拿写代码那套硬套过日子,多少有点扯。人又没个重启键,哪能天天跑回归测试?但道理摆在这儿。我觉得未必全对。可至少能防着咱们在坑里摔得连亲妈都不认识。

书里交代测试流程,头一条忌讳就是“修完就完”。得搞“回归”。一个漏洞补上,得把整套用例重新跑一遍。防着旧病没好,新伤又添。生活里的回归测试,那叫一个磨人。它逼着你认栽。承认之前的算盘打错了。逼着你把自己搭好的台子拆了重来。逼着你在旁边人都喊“差不多得了”的时候,自己跟自己较劲:“再捋捋。”说实话,我以前特烦这种“再等等”。总觉得时间不等人。慢一步就被拍在沙滩上。直到有回加班到半夜。盯着洗手间镜子那张油光满面的脸。才突然通透:人又不是流水线上的罐头,非得赶着在某个节点准时贴标出厂。你想想。连手机系统更新还得留个回滚选项呢。咱活人干嘛非得一条道走到黑?

上个月搬家。收拾出一堆破烂。有个几年前买的硬壳笔记本,里头密密麻麻全是计划表。字写得那叫一个板正。时间精确到半小时。现在翻出来看,只觉得胸闷。那时候的我,活脱脱一个没装测试模块的疯子程序员。光顾着往里塞功能,压根没问过自己:这玩意儿我真用得着吗?那些被我直接跳过、标上“已读”的测试环节,根本没凭空消失。它们全攒着劲儿。变成了后来某次毫无征兆的情绪崩溃。变成了对一段关系的莫名敷衍。变成了早高峰挤在地铁里,突然觉得心里空了一块。扯淡。我现在连自己那天到底要干嘛都记不清了。

说到底,咱们或许都得学学书里那个冷面客。给自己留点“挑刺”的自觉。不是天天拿着放大镜找自己茬。而是允许自己偶尔“跑不通”。允许计划被推翻。允许步子慢下来。允许在正式交差前,先给自己做一次彻底验收。这听着挺耽误事儿。可真正能让人把路走宽的,往往不是那几次漂亮的冲刺。而是中途愿意停下来,拍掉鞋底的灰,重新看准方向的那几下子。我觉得这事儿吧。未必是啥成功学鸡汤。可能就是给咱们这些容易上头的普通人,留个喘气的缝儿。

合上书的时候。外头天光都快泛白了。测试流程走到头。拼的不是一个滴水不漏的系统。而是敢拍桌子认“还有毛病”的那股子坦然。过日子大抵也这么回事。咱们天天急着向世界交卷。偏偏把最要紧的那道题给漏了:我到底准备好了没?我也没琢磨透。是不是每件事都得测得那么死。但下回再想一口气把什么玩意儿“上线”的时候。不妨停顿三秒。摸摸自己的剑刃。看看。裂没裂。没裂就继续走。裂了?那就回去拿胶带缠缠。反正日子还长。