主题
第九章:功能测试与自动化

序言
小明的"个人豆瓣"越来越像样了。用户系统跑通了,CRUD 没问题,安全也做了基本防护。他决定加一个期待已久的功能:电影评分。用户可以给每部电影打 1 到 5 颗星,页面上显示均分。
功能不复杂。他告诉 Claude Code 需求,很快就跑通了——点星星、提交、页面上出现均分。他自己试了几遍,没问题,很满意。
第二天,朋友发来消息:"搜索坏了。输入关键词点搜索,页面一片空白。"
小明一头雾水。他昨天只改了评分功能,压根没碰搜索。他打开代码一看,评分功能新加的数据查询函数改了一个公共的数据库查询模块——搜索功能也依赖这个模块。改评分的时候,搜索被"误伤"了。
他花了半小时修好搜索。第二天又有人说:"电影详情页打不开了。"他去查,发现昨天修搜索的时候,不小心改了路由配置。修好详情页,当天晚上自己一测——评分功能本身又坏了。
三天,三个 bug,每个都是修前一个 bug 时引入的。他在"打地鼠"——锤下去一个,旁边又冒出来一个。
老师傅看他焦头烂额,说了一句:"你需要的不是更快的反应速度,而是一张安全网。想象一下,每次你改完代码,有个东西自动帮你把所有功能都检查一遍——搜索还能用吗?详情页还能打开吗?评分还正常吗?哪个坏了,它立刻告诉你。你不用等朋友来报 bug,改完代码的那一秒就知道有没有误伤别的功能。"
小明问:"这个东西叫什么?"
老师傅说:"自动化测试。"
本章从小明的"打地鼠"困境出发,带你理解测试的核心价值,掌握 API 测试和 E2E 测试的实战方法,最终建立一套自动化工作流——让机器帮你记住"每次都要检查"这件事。
本章小节
| 小节 | 内容 |
|---|---|
| 9.1 为什么需要测试 | 回归测试、测试金字塔、何时自动化、AI 辅助测试的正确姿势 |
| 9.2 API 测试与 E2E 测试 | API 测试实战、Playwright E2E 测试、Flaky 测试排查、日志阅读 |
| 9.3 自动化工作流 | Git Hooks、GitHub Actions CI、TDD 入门、测试成熟度 |
上一章:第八章:安全与用户认证
