Google软件测试之道-第一章观后感

第1章 Google软件测试介绍

在去工作前,立下一个小flag,把这本书看完。观摩大佬们如何做测试,和大家一起研读感受测试的乐趣。



前言

当有人来问我,Google 成功的关键是什么,我的第一个建议就是,不要招聘太多的测试人员。
书中的原话,和我想象中的不太一样,现在的互联网公司需求迭代的很快,测试人员如果人数不多,上线的时候风险会比较大吧,咋样能够做到人少的情况还能保证高质量的代码呢?
写代码的开发人员也承担了质量的重任。质量从来就不仅仅是一些测试人员的问题。
感觉这一点在我看到的现象中,还是难以达到的,开发人员自测的质量是远远不够的,排期紧的情况下,能够保住主流程已经很难得了,如何约束开发人员的自测质量,也是一个需要思考的问题。如果开发人员能够给测试人员提供高质量的代码,确实是件非常好的事情。

一、质量不等于测试

质量不是被测试出来的——这句看似陈词滥调的话却包含着一定的道理。

感觉后续的翻译有些奇怪,还以为是产品的需求很重要呢,后面才知道是开发时候测试的重要性。

质量不等于测试,当你把开发过程和测试放到一起,就像在搅拌机里混合搅拌那样,直到不能区分彼此的时候,你就得到了质量。

这里或许应该理解成开发人员自测的重要性,但是要是开发人员自测很多,按照现在的产品迭代速度来说,开发有很大压力呀。

二、角色

SWE(software engineer): 软件开发工程师
SET(software engineer in test): 软件测试开发工程师
TE(test engineer): 测试工程师

三、组织结构

资深管理者一般都来自产品经理或开发经理,而不是来自于测试团队。在产品发布时,优先考虑的是功能是否完整和
易用性方面是否足够简单,却很少考虑质量。作为同一个团队,测试总是在为开发让路。

现实中确实是这样的,产品说可以满足用户需求就可以。

这种测试人员在不同项目之间的借调模式,可以让SET和TE时刻保持新鲜感并且总是很忙碌,另外还能保证一个好的测试想法可以快速在公司内部蔓延。一个在Geo
产品上运用很好的测试技术或工具,很有可能在 Chrome 产品中也得到使用。推广测试技术方面创新的最佳方式,莫过于把这个创新的发明者直接借调过来。

感觉这种方式,刚开始时测试人员会很痛苦,因为互联网迭代很快,相对应的业务会很复杂,即使是同一产品线,测试人员借来借去的话,熟悉业务是个很麻烦的过程,而且业务不熟练极易造成线上事故。

四、爬、走、跑

Google 经常在最初的版本里只包含最基本的可用功能,然后在后继的快速迭代的过程中得到内部和外部用户的反馈,而且在每次迭代的过程中都非常注重质量。
一个产品在发布给用户使用之前,一般都要经历金丝雀版本、开发版本、测试版本、beta或正式发布版本。

现在大家确实是这样做的,一个想法相比于非常完善了在上线,不如只上核心功能,因为你的竞争对手如果先上线了,会导致你失去大量用户,因此不断的迭代是一个很好的做法,首先抢占市场,但是保证质量也是很重要的,因为一旦出现代码质量问题,给用户造成了损失,这会导致用户对你的信任下降,进而可能不用你的产品,这是非常危险的事情。

金丝雀版本:这是每日都要构建的版本,用来排除过滤一些明显不适宜的版本。
开发版本:这是开发人员日常使用的版本,一般是每周发布一个。该版本具有一定的功能并通过了一系列的测试。
测试版本:这是一个通过了持续测试的版本。这个版本基本上是最近一个月里的最佳版本了,也是工程师在日常工作中使用的最稳定最信任的一个版本。
beta或发布版本:这个版本是由非常稳定的测试版本演变而来,并经历了内部使用和通过所有质量考核的一个版本,也是对外发布的第一个版本。

互联网公司测试流程也是如此,一般分为dev测试,test测试,stage测试,production测试。其中dev测试是开发人员写代码时自测的版本,其他为测试人员测试。

五、测试类型

Google 并没有使用代码测试、集成测试、系统测试这些命名方式,而是使用小型测试、中型测试、大型测试这样的称谓,着重强调测试的范畴规模而非形式。

感觉这样分的原因,一个是有测试的时间线来分,一般由小模块先开测,依次到大模块。再者是由不同的人员测试,小模块是由开发主测,自动化测,测开会帮你测下;中型的则是开发和测开一起测,测开写代码,开发帮改,后期测试在测。大型就是三个角色一起,然后主要目的是符合用户的期望。

金丝雀版本:这是每日都要构建的版本,用来排除过滤一些明显不适宜的版本。开发版本:这是开发人员日常使用的版本,一般是每周发布一个。该版本具有一定的功能并通过了一系列的测试。
测试版本:这是一个通过了持续测试的版本。这个版本基本上是最近一个月里的最佳版本了,也是工程师在日常工作中使用的最稳定最信任的一个版本。
beta或发布版本:这个版本是由非常稳定的测试版本演变而来,并经历了内部使用和通过所有质量考核的一个版本,也是对外发布的第一个版本。

互联网公司测试流程也是如此,一般分为dev测试,test测试,stage测试,production测试。其中dev测试是开发人员写代码时自测的版本,其他为测试人员测试。

对于所有的三种类型测试,当然更倾向于前者。如果能够自动化,并不需要人脑的智睿与直觉来判断,那就应该以自动化的方式实现。这些自动化测试在每次建立之后都会重复地回归运行,而手动测试更倾向于关注于新功能。

自动化测试是测试进化的终极方向呀,为了上线快,手动测试还是无法替代,因此,用代码提升手动测试的效率还是很有用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值