《Google 软件测试之道》读书笔记(1~2章)

本文是《Google软件测试之道》的读书笔记,探讨了Google的测试理念,强调质量是开发过程的一部分,而非孤立的测试活动。Google的软件测试团队包括SWE、SET和TE,其中SET作为开发与质量的桥梁,负责提升生产效率。测试流程中,开发人员对自己的代码负责,SET在项目早期即参与设计和自动化计划,以确保可测试性。Google的测试目标是判断预防工作,通过不同规模的测试确保产品质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第 1 章 Google 软件测试介绍

  • 在 Google ,软件测试团队归属于一个被称为工程生产力(工程效率、工程生产率)部门的中心组织的部门。
  • 越来越多的公司从桌面应用转向网络应用,Google 的软件测试方法很可能称为这类公司竞相模仿的榜样
  • Google 是一家以创新和速度为基础的公司,测试需要异常灵活,并且在技能上需要做许多前期规划,只是不停地简单维护并不能真正解决问题。
  • 有时,测试和开发交织在一起,无法区分彼此,但有时候又是完全分离的,甚至开发人员都不知道测试人员在做什么。
  • 测试,并非 “教条式的、强流程、体力密集型、耗时的”,测试不能成为导致创新和开发过程变慢的阻碍。
  • Google 不招聘太多的测试人员,队伍小而精。
  • 写代码的开发人员同时也承担了质量的重任,质量从来就不仅仅是测试人员的责任,每个写代码的开发者本身就是测试者,质量在名义上由这样的测试开发组合共同承担。

1.1 质量不等于测试

  • 质量不是被测试出来的,但未经测试也不可能开发出有质量的软件。
    解释:如果在最开始设计创建的时候就是错的,那它永远不会变成正确的;但如果连测试都没有做,怎么证明软件具有很高的质量呢?

  • 解决办法:停止测试与开发的独立!
    每写完一段代码就立即进行测试,当完成了更多的代码时,就需要完成更多的测试(这些测试由开发人员完成)。

  • 测试不是独立隔离的活动,它本身就是开发的一部分。
    质量不等于测试,当你把开发过程和测试放到一起,就像在搅拌机里混合搅拌那样,直到不能区分彼此的时候,就得到了质量。

  • Google 的目标:把开发过程和测试融合到一起——开发测试必须同时开展。

  • Google 能用如此少的专职人员的原因:开发对质量的负责
    如果某个产品出了问题,第一个跳出来的肯定是导致这个问题发生的开发人员,而不是遗漏这个 bug 的测试人员。

  • 质量更像是一种预防行为,而不是检测。质量是开发过程的问题,而不是检测。

  • 在 Google,测试的目标:判断预防工作做得怎么样。

1.2 角色

  • 开发人员要对自己写的代码负责,比专职的测试人员更适合做测试工作。
  • 测试者的使命是提高生产率。他们的存在是为了让开发人员的工作更有效率,并且很大程度上是为了避免因马虎粗心而导致的返工,因此,质量也是效率的一部分

1.2.1 软件开发工程师(software engineer,SWE)

工作重心 工作内容 时间花费 备注
实现最终用户所使用的功能代码 创建设计文档,选择最优的数据结构,和整体架构,花费大量的时间在代码实现代码审核上,编写、测试代码(包括测试驱动的设计、单元测试、参与构建各种大小规模的测试) 几乎将所有的时间花费在代码编写 SWE 会对他们编写、修复以及修改的代码承担质量责任

1.2.2 软件测试开发工程师(siftware engineer in test,SET)

工作重心 工作内容 时间花费 备注
可测试性和通用基础测试框架 参与设计评审、近距离观察代码质量与风险、对代码进行重构、编写单元测试框架和自动化测试框架 同样花近百分百的时间在代码编写 他们花大量时间编写代码是为质量服务,而SWE更关注客户使用功能的开发实现上
两者比较 关联 不同点
SWE、SET 两者在代码库上是合作伙伴 1. SWE 更关注增加功能性代码提高性能的代码;SET 更关注质量的提升测试覆盖率的增加;2. SET 写代码的目的是为了让 SWE 测试自己的功能

1.2.3 测试工程师(test engineer,TE)

工作重心 工作内容 时间花费 备注
把用户放在第一位,代表用户的利益 组织整体质量实践,分析、解释、测试运行结果,驱动测试执行,构建端到端的自动化测试 花费大量时间在模拟用户的使用场景,自动化脚本或代码的编写上 TE 是真正的产品专家、质量顾问、风险分析师
三者工作比较 责任 工作内容
SWE 负责功能实现和这些独立功能的质量 对容错设计、故障恢复、测试驱动设计、单元测试负责;并和 SET 一起编写测试代码
SET 提供测试支持 大部分代码由 SWE 完成,SET 编写代码的主要职责是让开发者可以很容易地编写测试代码
TE 扮演一个双重确认的身份 1. 确认开发人员在测试方面的工作是否到位;2. 常见用户使用场景中,是否满足性能期望,安全性、国际化、访问权限等是否满足用户的要求;3. 与其他团队的TE、合同工编制的测试人员、以众包形式参与的测试人员、内部尝鲜者、beta测试者、以及早期用户进行合作交流,讨论基本设计带来的风险、功能逻辑复杂性、错误避免的方法

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值