《Google软件测试之道》是一本讲述Google软件测试理念和实践的书。

本文摘抄了书中让我醍醐灌顶的金句,包括测试理念、测试方法、测试文化,以及我的感悟。

一、关于测试理念

1. 测试不是找bug,而是预防bug

"测试的目的不是找bug,而是预防bug。"

这句话让我醍醐灌顶。

  • 以前以为测试就是找bug
  • 原来测试更重要的是预防
  • 在开发阶段就考虑测试
  • 从源头减少bug
  • 测试是质量保障,不是质量检查

预防,比治疗更重要。

2. 质量是构建出来的,不是测试出来的

"质量是构建出来的,不是测试出来的。"

这句话很深刻。

  • 质量不是靠测试测出来的
  • 是靠开发过程构建出来的
  • 好的代码,好的设计
  • 好的流程,好的文化
  • 测试只是最后一道防线

质量,是构建出来的。

3. 开发者对质量负责

"开发者对质量负责,测试人员只是辅助。"

这句话改变了我的认知。

  • 以前以为测试人员对质量负责
  • 原来开发者才是第一责任人
  • 开发者要写测试
  • 开发者要保证代码质量
  • 测试人员是教练,不是守门员

开发者,是质量的第一责任人。

4. 测试是开发的一部分

"测试不是开发之后的阶段,而是开发的一部分。"

这句话很重要。

  • 测试和开发不是分离的
  • 测试贯穿整个开发过程
  • 需求阶段就开始测试
  • 设计阶段就开始测试
  • 编码阶段就开始测试

测试,是开发的一部分。

二、关于测试方法

1. 测试金字塔

"测试金字塔:单元测试最多,集成测试次之,端到端测试最少。"

测试金字塔,是测试的经典模型。

  • 单元测试:快速、稳定、便宜
  • 集成测试:中等
  • 端到端测试:慢、不稳定、贵
  • 底层测试多,上层测试少
  • 合理分配测试资源

测试金字塔,指导测试策略。

2. 快速反馈

"测试要快速反馈,慢的测试等于没有测试。"

这句话很有道理。

  • 测试要快
  • 几分钟内出结果
  • 开发者才能频繁运行
  • 慢的测试,没人愿意跑
  • 等于没有测试

速度,是测试的生命线。

3. 自动化优先

"能自动化的测试,都要自动化。"

自动化,是测试的趋势。

  • 重复的测试,自动化
  • 回归测试,自动化
  • 手工测试只做探索性测试
  • 自动化提高效率
  • 自动化保证一致性

自动化,是测试的未来。

4. 测试数据很重要

"测试数据和测试用例一样重要。"

这句话提醒了我。

  • 好的测试数据
  • 能覆盖各种场景
  • 能发现更多bug
  • 测试数据要精心设计
  • 不要只用简单数据

测试数据,是测试的基础。

三、关于测试文化

1. 测试人人有责

"测试不是测试团队的事,是每个人的事。"

这句话是测试文化的核心。

  • 产品经理要考虑测试
  • 设计师要考虑测试
  • 开发者要写测试
  • 测试人员要推动测试
  • 全员参与,质量才有保障

测试,人人有责。

2. 不怕犯错,怕不改正

"不怕犯错,怕不改正。"

这句话很宽容,也很有力量。

  • 犯错是正常的
  • 关键是要改正
  • 从错误中学习
  • 建立容错的文化
  • 鼓励试错

犯错,是学习的机会。

3. 持续改进

"测试不是一次性的,是持续改进的过程。"

这句话很对。

  • 测试要持续改进
  • 不断优化测试用例
  • 不断优化测试流程
  • 不断优化测试工具
  • 没有最好,只有更好

持续改进,是测试的常态。

4. 测试是投资,不是成本

"测试是投资,不是成本。"

这句话改变了很多人的看法。

  • 测试不是花钱
  • 是投资
  • 投资质量
  • 投资未来
  • 好的测试,能省更多钱

测试,是投资。

四、关于测试人员

1. 测试人员是质量教练

"测试人员不是守门员,是质量教练。"

这句话重新定义了测试人员。

  • 不是最后把关的人
  • 是帮助团队提高质量的人
  • 教开发者写测试
  • 推动测试文化
  • 建立测试体系

测试人员,是质量教练。

2. 测试人员要懂技术

"测试人员要懂技术,不懂技术的测试人员没有未来。"

这句话很现实。

  • 测试人员要会写代码
  • 要会写自动化测试
  • 要会分析问题
  • 要会用工具
  • 纯手工测试,越来越少

技术,是测试人员的基本功。

3. 测试人员要懂业务

"测试人员要懂业务,不懂业务的测试是无效的。"

这句话也很对。

  • 测试人员要理解产品
  • 要理解用户
  • 要理解业务逻辑
  • 才能写出有效的测试
  • 才能发现真正的问题

业务,是测试的灵魂。

4. 测试人员要会沟通

"测试人员要会沟通,沟通能力比技术能力更重要。"

这句话很有道理。

  • 测试人员要和开发者沟通
  • 要和产品经理沟通
  • 要和管理层沟通
  • 推动质量改进
  • 沟通能力很重要

沟通,是测试人员的核心能力。

五、关于自动化测试

1. 自动化不是银弹

"自动化不是银弹,不能解决所有问题。"

这句话很清醒。

  • 自动化很重要
  • 但不是万能的
  • 有些测试适合手工
  • 有些测试适合自动化
  • 要合理选择

自动化,不是银弹。

2. 自动化测试也要维护

"自动化测试也是代码,也要维护。"

这句话提醒了我。

  • 自动化测试不是写完就完了
  • 要持续维护
  • 代码变了,测试也要变
  • 不维护的自动化测试
  • 会变成负担

维护,是自动化的关键。

3. 稳定的自动化才有价值

"不稳定的自动化测试,比没有测试更糟。"

这句话很深刻。

  • 自动化测试要稳定
  • 不稳定的测试
  • 经常误报
  • 大家就不相信了
  • 比没有测试更糟

稳定,是自动化的生命线。

4. 自动化要分层

"自动化要分层,不要什么都端到端。"

这句话是测试金字塔的延伸。

  • 单元测试自动化
  • 集成测试自动化
  • 端到端测试自动化
  • 分层自动化
  • 各层各司其职

分层,是自动化的原则。

六、关于持续集成

1. 持续集成是测试的基础设施

"持续集成是测试的基础设施,没有CI就没有高效的测试。"

这句话很对。

  • CI让测试自动运行
  • 每次提交都跑测试
  • 快速发现问题
  • 保证代码质量
  • CI是测试的基础

CI,是测试的基础设施。

2. 构建要快

"CI构建要快,慢的CI等于没有CI。"

这句话和快速反馈一脉相承。

  • CI要快
  • 几分钟内完成
  • 开发者才能频繁提交
  • 慢的CI
  • 大家就不想用了

速度,是CI的关键。

3. 红灯要立即修

"CI红灯要立即修,不要带着红灯继续开发。"

这句话是纪律。

  • CI红了,说明有问题
  • 要立即修
  • 不要不管
  • 不要带着问题继续
  • 红灯是团队的事

红灯,是紧急事件。

七、我的感悟

1. 测试思维很重要

第一个感悟:测试思维很重要。

  • 不只是测试人员
  • 每个人都要有测试思维
  • 考虑边界情况
  • 考虑异常情况
  • 考虑用户场景

测试思维,是一种思维方式。

2. 质量是文化

第二个感悟:质量是文化。

  • 不是靠流程
  • 不是靠工具
  • 是靠文化
  • 每个人都重视质量
  • 质量才有保障

质量,是文化。

3. 测试要左移

第三个感悟:测试要左移。

  • 测试不要等到最后
  • 要提前
  • 需求阶段就开始
  • 设计阶段就开始
  • 越早发现问题,成本越低

左移,是测试的趋势。

4. 测试要右移

第四个感悟:测试也要右移。

  • 测试不要只在发布前
  • 发布后也要测试
  • 监控生产环境
  • 收集用户反馈
  • 持续改进

右移,也是测试的趋势。

5. 测试是终身学习

第五个感悟:测试是终身学习。

  • 技术在变
  • 方法在变
  • 工具在变
  • 要持续学习
  • 才能跟上时代

学习,是测试人员的常态。

八、写在最后

《Google软件测试之道》,这些话让我醍醐灌顶。

测试不是找bug,而是预防bug;质量是构建出来的,不是测试出来的;开发者对质量负责;测试是开发的一部分。测试金字塔、快速反馈、自动化优先、测试数据很重要。测试人人有责、持续改进、测试是投资。测试人员是质量教练,要懂技术、懂业务、会沟通。

2023年了,软件测试的理念在不断发展,但核心的思想是不变的:质量是构建出来的,测试是开发的一部分,人人有责,持续改进。

最后,用一句话总结:"测试不是找bug,而是预防bug;质量是构建出来的,不是测试出来的。测试人人有责,持续改进,质量才有保障。"

愿这些金句,也能让你醍醐灌顶。