国外知名 IT 企业是如何做测试的?

PS:本文转载自黑马测试高赞知乎文章
链接:https://www.zhihu.com/question/22947392/answer/2541383626

对于很多人来讲,成功的互联网公司或者科技企业,往往有着非常出色的产品,高用户量,高使用率,也意味着在软件质量上一定有可以借鉴的地方!
为了让大家看完此文后,有较深的获得感,经过不停的寻找和查阅才汇集了这篇文章。文章主要分为下面几个部分:
1、世界上最知名的5家科技公司,他们如何组织QA(熟悉)?
2、作为测试人员,可以从5家科技公司得到什么借鉴(重要)?

一、世界上最知名的5家科技公司,他们如何组织QA(熟悉)?
1、Google:搜索行业中的最佳实践

Google是世界上被广泛使用的搜索引擎公司,如何组织其测试工作?取决于团队和产品。例如,负责 Google 搜索引擎本身的团队维护着一个庞大而严格的测试框架。由于搜索是 Google 的核心业务,因此该团队希望确保它不断提供尽可能高的质量。
为此,谷歌对搜索引擎的更改采用了以下四阶段的测试流程,包括:
a. 由专门的内部测试人员进行测试
b. 在众测平台上进行进一步测试
c. 通过“Dogfooding”模式(是指邀请公司员工参与到测试中来),让 Google 员工在日常工作中使用该产品
d. Beta 测试,包括将产品发布给最终用户一小部分 Google 产品提供反馈和建议
但公司其他业务产品线,产研团队所采用的 QA 流程则是较为宽松。在某些情况下,质量保证工作,是由该产品的开发人员或测开人员来完成。
2、Facebook:开发驱动测试

Facebook没有雇用任何一个专门从事测试领域的人员。相反,这家社交媒体巨头,依靠其自身的开发人员来测试彼此的项目。在过去主要是手动完成,但随着自动化的持续摸索和推进,现在 Facebook 采用了各种各样的自动化测试解决方案。使用的工具范围从用于后端单元测试的 PHPUnit 到 Jest(Facebook 内部开发的 JavaScript 测试工具)再到用于E2E工作的 Watir。
与谷歌一样,Facebook 也使用 dogfooding 方式,来确保其软件的可用。
但与Google不一样的是,Facebook 承认其测试后,产品内部依然存在着重大缺陷,但它并不会竭尽全力去修复,而是欣然地接受了这些缺陷,对于Facebook 更倾向于使用“金丝雀”版本和增量策略,通过线上更新或增加新功能来修复问题。并不会彻底测试其软件。例如:有一项新功能,但只对一小部分用户开放,来进行灰度测试。通过跟踪功能的使用情况和收到的反馈,公司决定是否要扩大使用用户,或者直接禁用掉该功能。正如它所说,“社交媒体并不是必要的”。此外,减少对测试的关注度,以便更多的去关注其他更有价值的事情。
3、微软:工程师和测试人员是一样的

微软同谷歌一样,测试人员和开发人员的薪酬也是一样的,他们没有传统测试人员,而是由SDET也就是测试开发工程师来替代的。目前测试人员与开发人员的比例约为 2:3,维持这么高比例的原因在于,同其他几个互联网公司不同,微软大部分收入来源于卖系统软件,迭代周期长,任务多,所以往往需要投入更多的人力、物力、财力,以确保其产品在发布前达到高标准的质量。
4、亚马逊:部署至上

与 Facebook 一样,亚马逊也没有建设大型 QA团队 。基本保持每7名开发人员中约有1名研发担任测试工程师的角色。而这种比例是浮动的,并不是一成不变的。测试人员与开发人员的比例是保持变化的。这取决于一旦发现收入下降或客户因网站异常而离开,亚马逊才会加大测试力度。
由于亚马逊的开发和部署过程非常成熟,以每 11.6 秒部署一次软件而闻名!所以无论是发版或者因故障回滚都可以进行高效的部署,以至于不需要进行复杂而广泛的测试工作,以至于被外界看来在亚马逊的流程中,测试工作并不是一项必不可少环节...
5、Spotify:小队、部落和章节

Spotify (声田) 目前是全球最大的正版流音乐服务商之一。和全球四大唱片公司:环球音乐、索尼音乐娱乐、华纳音乐、腾讯音乐娱乐以及其他唱片公司都有合作授权。
Spotify这家公司,雇佣很多专门从事测试工作的人员。他们是跨职能团队的一部分,为各研发团队进行赋能。在 Spotify,员工按照所谓的 Spotify 模型进行组织,该模型由以下三个部分构成:
小队
以敏捷开发的Scrum模式组建的,较少关注实践,而更多关注自身在团队中担任的使命。由于任务不同,一些小队可能只有一名测试人员,也可能是多名测试人员,而其他小队可能根本没有测试人员。
部落
是一组基于业务领域的团队。任何属于小队中的测试人员同时也受这个队伍所在部落主导。
章节
在不同的小队和部落中,Spotify 还使用章节将具有相同技能的人分组,以促进学习和分享经验。例如,来自不同小队的所有测试人员都集中在一个测试章节中。
Spotify 对测试是非常重视。对他们而言测试是一个充满创造性的过程。所以同其他几个公司相比,Spotify 非常依赖专门的测试人员,通过他们来探索,评估,优化产品,更多以用户的感受为出发点,所以并不追求尽可能地自动化。

二、作为测试人员,可以从5家科技公司得到什么借鉴(重要)?
这五家公司都结合他们的业务特点,公司文化,企业价值观,制定出了他们认为适合的,高效的,测试方式。同时在国内很多大型互联网公司或科技公司也对此也有着不同的借鉴及探索实践。
1、比较成体系化的QA团队体系建设及分工
比如之前我在的某云,通过价值观体系的培养,将各个团队通过“组织”的结构形式,彼此高效率协同。明确整个产研的质量目标,并让全体成员知晓形成统一共识,驱动各个职能部门间的合作,增强全员对质量负责的意识。做好缺陷的预防。

测试团队的应对策略:质量监控+发布策略+自动化测试+外包测试。
a ) 质量保证的团队建设及组成:
• 外包测试团队:负责基础功能的测试;
• 测试团队:手工测试、自动化测试、持续集成;
• 测试开发团队:一种是跟业务的测试负责测试中台化,另一种利用测试技术赋能测试与研发团队;
• 外部测试服务:提供对外的测试服务。
b) 质量保证的核心业务:
• 前台验收测试:web、app、gui;
• 前台用户体验测试:性能、安全、耗电量、稳定性;
• 中后台功能测试:性能、安全;
• 流程管理:持续集成、持续交付、devops;
• 质量分析:监控平台、数据分析平台、ai辅助平台。
c ) 另一种尝试:
再比如:我在之前的公司,在不同的业务线并不会成立专门的测试部门,而是统归于质量部,部门中的成员可以被随时抽调,并拆分为一个或多个成员跟进不同的项目。这并不拘泥于传统形式的测试工作,更多的是用来检测从产品到研发及用户整体对产品的使用体验,并提出自己独立的观点。
原则在于如何去定义软件中的缺陷?通过尽可能多的测试,可以对任何一点提出自己的质疑,并对该质疑,组织产品,研发,运营来进行充分的讨论,为日后优化及创新提供原始依据。而项目本身的质量,则全部由研发中的开发者和产品来完成,case则是由产品输出。

当然还有其他的尝试,包括但不限于在集团内部去使用公司的新产品,收集反馈并进行改进。或是在敏捷测试及CICD 、CR、 DevOps的运用上,正在不断进行探索,解决生产中的痛点。国内互联网公司正在通过不断努力和尝试,来提高软件测试的速度,培养具有专业领域的精英,同时这也意味着国内测试行业门槛越来越高。
2、QA同研发的比例通常也并不是固定的
对于测试同研发的比例都会基于业务进行调整。根据业务的大小,复杂度来搭配人力:
通常小步快跑,快速迭代研发和qa比例在2:1,也就是1个前端,1后端,1个QA。
周期较长,要从头搭建一个业务侧很重的业务,开发比重比较大,这时研发同qa比例会在 7:2左右。所以QA同研发的比例通常并不固定是不停的变化着。
进入项目整体交付阶段可能会研发同测试比例可能会在2:5。甚至会更多包括手工、自动化、性能测试等。

但不要用QA在团队中的配占比,这种业余的方式来判断QA的前途和职位缺口,这并不科学。
因为QA的比例是不固定的,更多取决于业务。
但就像中国男足那样,你要是做不好肯定是多余的!要知道一个真正从事测试行业的人,或者说任何一个职业,并不是因为有一个优秀的行业才会有我,而是因为有我可以使这个行业更优秀。
3、自我的改变&实现
通过我们对这五家公司的了解,以及国内互联网公司的改变,我们应该意识到:
当前大公司更倾向于去招聘自动化测试,甚至是测试开发这类岗位的人才,用来替换传统手工测试工程师。
正如乔·科兰托尼奥(测试协会创始人)所说的那样:“优秀的 QA 工程师永远不会死——他们只是扩大了自己的角色。”多年来,一直听说QA 工程师的职业生涯正在消亡。尽管随着越来越多的团队在他们的软件开发过程中左移,QA 的角色确实发生了变化,但没人相信它可以完全消失。

如果你还从事手工测试,那么你将要注意了!你正在面临被淘汰的命运,你需要进行改变。
但是不要着急,你需要的仅仅是升级,你需要的是系统性的学习和规划建议。如果您正在尝试转行进入测试行业,也同样需要注意!请不要在一开始便选错方向,否则会失之毫厘差之千里。打好手工测试的基础,尽快往自动化进行转变,更高目标是作为一名测试开发工程师。
尝试去做出改变,不要畏惧,我们对自动化测试可以这样理解:那只不过是擅长结合并使用各种技术,你可以从下面开始:

上方路线图共计6篇视频(每篇200集),地址为下方视频链接:







若你是对测试不太了解的测试小萌新,有太多太多对测试的疑惑(前途、薪资、技术含量、男生是否可以干.....),强烈推荐你观看《测试小白必看:学习软件测试必问的100个问题,从此贴开始》,相信能扫除掉你心目中90%以上的常见问题。
《100个常见问题链接》:http://bbs.itheima.com/thread-507947-1-1.html

最后,为方便大家自学软件测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。
包括软件学习路线图,黑马50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2020软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助…..
《2022黑马测试学习路线图链接》:http://bbs.itheima.com/thread-405757-1-1.html


