
小明的"个人豆瓣"越来越像样了。用户系统跑通了,CRUD 没问题,安全也做了基本防护。他决定加一个期待已久的功能:电影评分。用户可以给每部电影打 1 到 5 颗星,页面上显示均分。
功能不复杂。他告诉 Claude Code 需求,很快就跑通了——点星星、提交、页面上出现均分。他自己试了几遍,没问题,很满意。
第二天,朋友发来消息:"搜索坏了。输入关键词点搜索,页面一片空白。"
小明一头雾水。他昨天只改了评分功能,压根没碰搜索。他打开代码一看,评分功能新加的数据查询函数改了一个公共的数据库查询模块——搜索功能也依赖这个模块。改评分的时候,搜索被"误伤"了。
他花了半小时修好搜索。第二天又有人说:"电影详情页打不开了。"他去查,发现昨天修搜索的时候,不小心改了路由配置。修好详情页,当天晚上自己一测——评分功能本身又坏了。
三天,三个 bug,每个都是修前一个 bug 时引入的。他在"打地鼠"——锤下去一个,旁边又冒出来一个。
老师傅看他焦头烂额,说了一句:"你需要的不是更快的反应速度,而是一张安全网。想象一下,每次你改完代码,有个东西自动帮你把所有功能都检查一遍——搜索还能用吗?详情页还能打开吗?评分还正常吗?哪个坏了,它立刻告诉你。你不用等朋友来报 bug,改完代码的那一秒就知道有没有误伤别的功能。"
小明问:"这个东西叫什么?"
老师傅说:"自动化测试。"
上一章:第八章:安全与用户认证