用“讲故事”的形式,把自动化测试的演化史拆成 6 个阶段,每个阶段都用“当时人们在烦什么 → 出现了什么新工具/思想 → 带来了什么变化”的三句话 讲清楚。你只需顺着时间线读,就能把 50 年的技术脉络串起来。
1960s–1970s:软件=硬件的“附属品”
- 烦恼 程序是给特定大型机写的,一改硬件就全崩;测试主要靠打卡+打印,改一行代码要重新跑一晚上。
- 新事物 NASA 的「土星 V 火箭制导程序」第一次用脚本批量比对外设输出(算是自动化测试的胚胎)。
- 变化 大家意识到:测试也得像代码一样“可重复执行”,不能每次靠人工盯着灯闪。
1980s:GUI 出现,录制/回放登场
- 烦恼 PC 有了图形界面,鼠标点点点的人工回归测试爆炸式增长。
- 新事物 Mercury(后来 HP 的 QTP)推出「录制-回放」工具:记录你的鼠标键盘,下次自动重放。
- 变化 测试员第一次“不用写代码也能自动化”,但脚本一碰界面坐标就碎,维护噩梦开始。
1990s:单元测试框架开源化
- 烦恼 录制脚本只管“表面点击”,底层逻辑改了也测不到;越到后期越难定位缺陷。
- 新事物 Kent Beck 把 Smalltalk 的 SUnit 搬到 Java → 诞生 JUnit(1997)。xUnit 家族开始统治各种语言。
- 变化 开发者开始“代码级测试”:一个函数就能跑断言,测试第一次变得既快又便宜,TDD 思想萌芽。
2000s:敏捷+持续集成,测试左移
- 烦恼 瀑布模型下测试总在最后 2 周,Bug 越堆越高。
- 新事物 Martin Fowler 提出「持续集成」(CI):每次提交代码都自动编译+跑全部单元测试。Hudson/Jenkins 把 CI 平民化。
- 变化 “测试不再是阶段,而是随时发生”;红绿条(测试失败/通过)成了开发者的红绿灯。
2010s:Selenium/WebDriver 统一 Web UI 测试
- 烦恼 浏览器大战,各家录制工具互不兼容;UI 测试脚本成了“一次性塑料”。
- 新事物 Selenium 2.0(2011)把「WebDriver」做成 W3C 标准,用代码直接驱动浏览器,跨平台、可版本控制。
- 变化 UI 自动化终于像单元测试一样可维护,Page Object 模式兴起,测试与开发共用 Git 流程。
2020s:云原生+低代码+AI
-
烦恼 微服务、移动端、小程序爆炸,环境矩阵呈指数级;传统脚本追不上迭代。
-
新事物
- 云端并行执行(Selenium Grid、BrowserStack、LambdaTest)→ 10 分钟跑完 200 个浏览器组合。
- 低代码/无代码平台(如 mabl、Testim)用 AI 自动修复元素定位。
- ChatGPT 生成测试用例、Playwright/Cypress 一键录制生成代码。
-
变化 测试脚本的生产、维护、执行全面“云化、智能化”,测试工程师更像“质量设计师”,而不是“脚本打字员”。
一句话总结
自动化测试的 50 年,就是不断把“人工、重复、易碎”的操作,一层层抽象成“代码、服务、智能”的过程——从打卡纸到云原生,从深夜机房里的一盏灯到一条微信推送的测试报告。