提高软件质量实践――Amazon篇

标签: IT技术 Amazon 软件测试 软件质量 | 发表时间:2012-11-06 08:56 | 作者:
出处:http://blog.jobbole.com

来源: Bill Liu 的博客@billliu_seattle

前几天回国转了一圈,做了两家企业质量管理培训,一次上海测试沙龙,和chinatest两次演讲。收获颇多,以后慢慢分享。回来后发现我的软件质量实践系列文章距离上一次发表已经有很长一段时间了。我想还是先把它写完,再写别的文章吧。那么今天我们看看互联网公司的另外一个大哥大是如何做质量控制的――Amazon.

Amazon是一个很传奇的公司,它1995年的时候以一个网上书店起家,在短短的十几年里成为全球最大的在线购物公司。更为甚者,他在2005推出的AWS云计算服务更是被业界公认为云计算的鼻祖,也是现在全球最大最成功的云计算服务提供商。我一直坚信成功的产品一定是由成功的质量控制做保障的,采取什么样的测试策略只有两个决定因素。一是企业文化,二是产品特点。在分析Amazon的测试策略之前,我们先看看它的企业文化。

提高软件质量实践――Amazon篇

业界关于amazon企业文化和成功要素有很多,我觉得实际上最为核心的只有一个,就是他们的“low margin, large volume”理念。就是通过单个商品的低利润和巨大的销售量来最终提高公司利润和公司业务向前发展。工程团队的理念就是要保障企业文化得以顺利实施,所以Amazon的工程团队的理念就是如何保障公司“low margin, large volume”的企业文化。Amazon工程团队有以下特点:

     ●独立的团队:在Amazon,负责产品功能模块的每个团队相对独立。他们对该模块的所有功能,性能,开发,质量,上线,维护等从头到尾的绝对负责。我们在Google中也可以明显看的这一特征.

     ●敏捷的团队:为了保障团队的敏捷,Amazon采用“2个比萨饼”的原则来看控制一个团队的大小。也就是2个比萨饼就可以吃饱(5-7个人)的大小。团队内部和团队之间尽量减少工作的交接,一方面减少因为交接照成的不必要延迟,另一方面避免互相推卸责任。Amazon是最早采用敏捷开发(scrum)的公司之一,他们现在绝大多说产品组都是用scrum,据说有超过400多个CSM.

     ●面向服务的产品体系架构。在01年的时候,Amazon随着它的产品线迅速扩大,业务逻辑越来越复杂,现有的产品体系架构极大地限制了整个公司的高速发展。他们重新设计了基于面向服务的,松耦合体系架构,使得各个模块独立开发,修改和维护。所以Amazon可以在不牺牲质量的同时,快速推出新产品新服务。

很遗憾的是Amazon很少公开谈论他们的质量管理流程和策略,不过通过有限的资料,还是不难看出他们的质量管理的策略:

     ●开发对质量负责:因为每个团队对模块完全负责,并且要做到敏捷。Amazon要求开发对质量负责:从设计,写代码开始一直到代码上线。开发做测试不仅可以尽快地发现bug,而且可以避免过分依赖测试人来提高质量,更为重要的优点是开发在设计是会考虑代码的可测试性 (因为他们自己要测试,肯定想方设法使得测试更为容易些),从而使得模块容易测试,容易维护,松耦合,最终极大提高模块质量。因为开发做了大量的测试,Amazon专职测试工程师也比较稀少(据说对开发的比例是1:7左右)。测试的主要职责是负责复杂用户环境下的测试,以及开发测试工具,流程和基础设施。而且很多产品组把一部分功能测试外包,所以即使Amazon的测试工程师不多,但是整个产品的测试工作却没有一点减少。

     ●自动化测试:这里我就不在多说了,和microsoft, google一样,他们开发了大量的测试工具和流程基础设施来提高测试效率。开发专注于写代码和测试,不用在搭建环境,部署,运行测试用例,和反馈上浪费时间。除了测试自动化外,他们也开发了一整套用以产品上线,维护和监控的工具和流程。只有这样,开发才有可能既要写代码,又要对代码质量从头到尾负责。

     ●数据驱动的决策流程:和google一样,Amazon全方位监控它的应用服务的运行状态,从每个API调用时间,到用户使用产品的每一步骤。根据对这些数据的分析和挖掘,开发团队决定如何提高产品质量。

如果大家熟悉Google的软件质量实践应该可以发现,Amazon和google在软件质量控制的理念和实践有非常的相似之处。有所不同的是,google的很多项目以实验性为目的,最初没有任何专职测试。只有等到项目真的被重视后,测试才开始介入。做为互联网产品的两个大哥大,他们的测试方式或许可以代表着互联网产品的测试发展方向吧。下一次我们介绍最后一个公司的测试策略-facebook。

相关文章

相关 [软件质量 实践 amazon] 推荐:

提高软件质量实践――Amazon篇

- - 博客 - 伯乐在线
来源: Bill Liu 的博客( @billliu_seattle). 前几天回国转了一圈,做了两家企业质量管理培训,一次上海测试沙龙,和chinatest两次演讲. 回来后发现我的软件质量实践系列文章距离上一次发表已经有很长一段时间了. 我想还是先把它写完,再写别的文章吧. 那么今天我们看看互联网公司的另外一个大哥大是如何做质量控制的――Amazon..

提高软件质量实践―― Facebook 篇

- - 博客 - 伯乐在线
来源: Bill Liu 的博客. Facebook从04年的哈佛校园的学生项目在短短的7-8年的时间中快速增长为拥有10亿用户的世界上最大的社交网络,又一次见证了互联网创业成功的奇迹. 同时它的产品研发流程也成为了众多互联网产品公司的追逐对象. 今天我们来看一下facebook在产品质量控制方面的实践.

软件质量之道

- - CSDN博客系统运维推荐文章
        我曾与一些资历非常高但毫无实际经验的人共事过,也曾与一些只有很少或根本没有资历但才华横溢的工程师一起工作过,我也曾经不得已跟一些并不想用心做事、也对学习新东西丝毫不感兴趣的人共事过. 如果说我们这个职业是一张纸,那么这些人就好比纸上的污点. 软件开发业的低劣性不能完全怪罪于那些无知的经理、狡猾的市场营销人员以及总是急不可耐的用户,实际上很大程度上要归咎于这个行业的某些从业人员,他们应该去从事一些即使玩忽职守也不会造成像软件业里这样大的危害的行当,而不应该混迹于这个聚集着人类想象力的最复杂的创造性的行业.

Amazon发布DynamoDB

- - 博客园_新闻
Amazon 于 1 月 18 日发布了 DynamoDB,AWS 的首席技术官 Werner Vogels 在其 博客上说,这是为互联网级别的 Web 应用而设计的 NoSQL 数据库. 首先,AWS 提供价位合理而且高可用的数据库服务,该服务是通过基于固态硬盘(SSD)的快速存储架构交付的. 其二,在日益扩大的受管 NoSQL 云的竞技场中,它是一名新成员.

放Amazon的成本

- 逆风迎上 - Gawain's Jail
HS放了一个StackExchange的构架更新,其中说到把服务放在Amazon上的成本是自己购买后的4倍. 我厂也是Amazon的用户,关于我厂为什么用上了Amazon是有一个段子的. 话说当年运维部门遇上用户大幅增加的时候一个礼拜都在加班,尽在机房过生活了,人手不够用到老大把自己怀孕的老婆都叫来插网线.

Amazon Appstore:糟糕透顶?

- Jeff - 爱范儿 · Beats of Bits
当 Amazon Appstore 发布的时候,除了 Google,几乎所有人都很高兴. 显然对于 Android Market 的糟糕体验和难以盈利,用户和开发者都不甚满意. Amazon Appstore 让用户多了一个选择,也给开发者许诺了一个新的盈利平台. 近日,在 Amazon Appstore 开发应用的开发商 Shifty Jelly 突然宣布放弃 Amazon Appstore,并在博客上大谈 Amazon Appstore 的糟糕透顶.

Amazon密码找回记

- lszhao - 白板报
【核心提示】越来越多的美国互联网服务公司使用电话作为终极的客服沟通方式,而这些呼叫中心往往建在印度,这意味着中国用户如果想解决技术难题,必须苦练口语和听力. 自从买了Kindle电子书,我成了亚马逊的忠实用户. 亚马逊虽然在使用条款中规定,电子书只针对美国用户销售,并且只接受美国信用卡,但实际操作中有简单的变通手段.

Amazon Dynamo – 纠结的设计

- Lianhui Wang - NOSQL Notes
从09年第一次阅读Dynamo论文,到最近阅读Amazon S3的一篇专利,一路过来对论文的理解可以简单归结为两个字 – 纠结. 第一次看到Amazon Dynamo论文,有一种眼前一亮的感觉,Dynamo通过巧妙地组合一些P2P技术在Amazon构建了一个工程上可行的系统,CAP,NWR, Vector Clock一时成为流行词,更为神奇的是,Dynamo号称能够让用户设置不同的NWR策略从而在CAP三者之间获得一个很好的权衡,鱼和熊掌亦可兼得.

Amazon — 聪明的挑战者

- fordchao - 爱范儿 · Beats of Bits
Amazon 的 Kindle 系列更新时间相当稳定,当前的 Kindle 3 是在去年八月发布的. 现在随着平板大潮的兴起,Amazon 将会跟着下海,推出 Android 版 Kindle 的传言也是不断传出. 或者说,并不是什么传言,而已经成为现实,Amazon 正在等待合适的时机,放出它第一款彩屏的阅读设备.