测试报告

昨天下午三点十七分,测试报告我盯着屏幕上那条红得刺眼的测试报告进度条,忽然意识到自己已经盯着它看了整整四十分钟。测试报告它卡在87%的测试报告位置,一动不动,测试报告像极了上周五下班前那个死活不肯通过的测试报告登录模块测试用例。

这份测试报告其实早该写了。测试报告项目上线日期钉在下周一,测试报告开发组的测试报告老王已经连续三天凌晨两点才走,他的测试报告黑眼圈比测试环境里那个404页面还要深沉。可我们谁都没料到,测试报告真正卡住进度的测试报告不是那些复杂的支付流程,也不是测试报告数据迁移脚本,而是测试报告最基础的——用户注册接口。并发量一过两百,测试报告响应时间就从80毫秒飙升到3.2秒。这个数字我反复测了七遍,每一次都差不多,换了三台不同配置的机器,结果像复制粘贴一样稳定。

我把这个发现写进缺陷列表的时候,老王先是沉默,然后突然笑了一声,说“我就知道”。他说他上周重构这段代码时就觉得不对劲,但产品经理催着要新功能,他只能先压着技术债。你看,测试报告有时候就是这么讽刺——它不负责发现惊喜,只负责把所有人心里隐约知道但都不愿承认的问题,用最冷冰冰的数字砸在桌面上。

性能测试只是其中一部分。功能用例一共写了214条,通过198条,失败9条,剩下7条因为环境问题没法执行。失败的那9条里,有5条跟权限控制有关。具体来说,普通用户在特定条件下居然能访问到管理员的导出接口。这不是什么高深的逻辑漏洞,纯粹是前端把按钮藏起来了,后端压根没做校验。我试着用Postman直接调那个接口,200 OK,响应体里明晃晃地躺着三千多条用户手机号。当时办公室空调嗡嗡响,我后背却出了一层细汗。

还有个有意思的现象,移动端的适配问题比功能问题多三倍。尤其是安卓各厂商的定制ROM,同一个页面在小米上正常,到了华为就错位,OPPO上又闪退。我们测试组的小李开玩笑说,这年头做兼容性测试就像开盲盒,你永远不知道下一个打开的机型会给你什么“惊喜”。这话糙,但理不糙。我特意统计了一下,过去两周提交的47个bug里,有29个是安卓机型相关的,占比61.7%。这个比例比上个版本高了近20个百分点,原因不明,但值得警惕。

报告写到一半,老王过来看了一眼我的屏幕,指着那个87%的进度条问:“这玩意儿还要跑多久?”我说不知道,可能几分钟,也可能永远卡在这儿。他叹了口气,说不如先吃饭,回来再看。我想了想,保存了文档,关掉监控页面。有些测试结果需要等待,但测试报告本身不该被等待绑架。

刚出办公室门,手机震了一下。是CI系统推送的通知:那个卡了四十分钟的压测任务,终于跑完了。最终结果比我预想的还要差一些——错误率在持续高负载下达到了4.7%,超过阈值将近一倍。我站在电梯口,看着手机屏幕上那行冰冷的数字,心里却没什么波澜。该写的都写了,该测的也都测了。剩下的,是开发组和产品经理之间的博弈,跟我这个写报告的人,已经没什么关系了。

这份测试报告,说到底就是一面镜子。它照出的不是代码的好坏,而是整个团队在时间压力、需求变更和技术债之间,做出的每一个选择的痕迹。那些红字标注的失败用例,不是用来指责谁的,只是希望下次,我们能在写第一行代码之前,就想起今天这个卡在87%的进度条。