`
jinnianshilongnian
  • 浏览: 21434428 次
  • 性别: Icon_minigender_1
博客专栏
5c8dac6a-21dc-3466-8abb-057664ab39c7
跟我学spring3
浏览量:2405044
D659df3e-4ad7-3b12-8b9a-1e94abd75ac3
Spring杂谈
浏览量:2997694
43989fe4-8b6b-3109-aaec-379d27dd4090
跟开涛学SpringMVC...
浏览量:5631469
1df97887-a9e1-3328-b6da-091f51f886a1
Servlet3.1规范翻...
浏览量:257571
4f347843-a078-36c1-977f-797c7fc123fc
springmvc杂谈
浏览量:1593160
22722232-95c1-34f2-b8e1-d059493d3d98
hibernate杂谈
浏览量:248971
45b32b6f-7468-3077-be40-00a5853c9a48
跟我学Shiro
浏览量:5847542
Group-logo
跟我学Nginx+Lua开...
浏览量:698161
5041f67a-12b2-30ba-814d-b55f466529d5
亿级流量网站架构核心技术
浏览量:780453
社区版块
存档分类
最新评论

Google是如何做测试的(五)【转载】

 
阅读更多

 

对于测试范围的形式,谷歌并没有使用通用的代码测试、集成测试、系统测试这些常用术语来做区分,而是使用小规模测试、中等规模测试、大规模测试这样的称呼(译者注:代码测试(code testing), 通常指单元测试和API级别的测试,一般使用XUnit、Gtest框架,但谷歌并没有使用代码级别测试这种说法)。小规模测试就是针对小量代码的测试,中等规模测试、大规模测试以此类推。所有的三种工程师角色(译者注,软件开发工程师、软件测试开发工程师、软件测试工程师,参见本系列第二篇,都会去执行上面的三类测试,可能是自动化的测试,也可能是手动测试。

小规模测试,通常(但也并非所有)是自动化的,一般是针对一个单独的函数或者模块。这种测试一般由软件开发工程师(SWE)或者软件测试开发工程师(SET)来实现,通常在运行的时候会依赖模拟环境,当软件测试工程师(TEs)需要去诊断定位一个特定错误时,会去筛选一些小规模测试集合并运行来验证特定问题。对于小规模测试,主要集中在常见功能问题验证上,例如数据损坏、错误边界、发生错误时如何结束等。小规模测试尝试去解决的问题是,代码是否按照其假定的方式运行。

中等规模测试,可以是自动化的或者手动的,涉及到2个及以上功能模块,特别是要覆盖这些功能模块之间交互的地方。有不少软件测试开发工程师(SET)把这种测试描述成“测试一个函数,以及它最近的邻居们”(”testing a function and its nearest neighbors.”)。软件测试开发工程师在独立的功能模块开发完毕后会驱动进行这种测试,软件开发工程师是写这些测试代码、并调试和维护这些测试的主要力量。如果一个测试用例运行失败或者运行错误,相应的开发会自动地跳出来查看处理。在开发周期的后期,软件测试工程师会运行这些中等规模测试,可能是手动的方式(如果很难或者需要投入比较大成本去自动化的时候)或者自动化的方式去运行。中等规模测试尝试去解决的问题是,一些相近的交互功能模块组合在一起是否和预期一致。

大规模测试,涵盖三个及以上(通常更多)功能模块,描述最终用户的使用常ò及其可能扩展。所有的功能模块集成为一个整体的时候需要去关心许多问题,但在谷歌,对于大规模测试,更倾向于着重结果,例如,这个软件是用户期望的那样么?所有的工程师都会参与到大规模测试中,无论是使用自动化还是探索性测试方法。大规模测试尝试去解决的问题是,这个产品运行地是否是最终用户期望的那样。

小规模测试、中等规模测试、大规模测试这些术语本身其实并不重要,你可以给它们取任何你想的名称。对于谷歌的测试人员来说,有了这样一个统一的称谓后,就可以使用这些称谓来讨论正在进行什么样的测试以及其测试范围。有一些雄性勃勃的测试人员也会谈到第四种测试,被称为超级大规模测试,公司的其他测试人员可以认为这样的测试是一个非常大的系统级别的测试,涵盖到几乎所有的功能而且会持续很长的时间,其他的解释都会比较多余了。

哪些需要被测试及测试范围的确定,这是一个动态变化的过程,在不同的产品之间会有比较大的差异。谷歌更倾向于频繁发布,从产品的外面用户那里得到反馈之后再迭代开发。如果谷歌开发了一些产品,或者在已有产品上增加了新功能,会荆┥能早地对外发布并让外部用户能使用并从中受益。在这个过程中需要较早地把用户和外部开发者牵扯进来,并要有一个很好的处理规则来验证是否满足发布条件。

最后,自动化测试和手动测试,对于所有的三种类型测试(小规模、中等规模、大规模测试)来说当然更喜欢前者。如果能够被自动化,而且不需要任何人智力和直觉判断,那就应该把它变成自动化的。只有在特别需要人为判断的时候,例如用户的界面是否漂亮、或暴漏一些涉及用户隐私的内容时,在这些情况下应该保留手动测试。

话虽如此,对于谷歌来说非常重要的是仍然使用了大量的手动测试,不管是使用文本记录的方式还是使用探索性测试,虽然有些已经进入了自动化测试的视线。业界使用的录制技术将手动测试转变成自动化测试,可以在每个版本后自动地重复运行,这样保证了最少的回归工作,并把手动测试的重点放在新问题上。而且,谷歌已经将提交BUG的过程和一些手动测试的日常工作也自动化了,例如,如果一个自动化测试运行失败,系统会自动检测到最后一次代码变更的信息,一般来说这是引起测试失败的原因,系统会给这次代码提交的作者发送一封通知邮件同时自动创建一个BUG来记录这个问题。在测试上,“人类智慧的最后一英寸”体现在测试设计上,谷歌的下一代测试工具也正在这个方向上努力尝试,将其自动化。

这些工具在以后的文章中会被提及强调。不过,下一篇文章还是会将重点放在软件测试开发工程师(SET)的工作上。希望能得到你的持续关注。

 

英文原文:How Google Tests Software – Part Five

 

转载自 伯乐在线 http://blog.jobbole.com/16613/

分享到:
评论

相关推荐

    Google软件测试之道--学习笔记--转载

    Google软件测试之道--学习笔记--转载,网上关于《Google软件的测试之道》一书的学习笔记摘要,帮助读者理解此书的内容和Web软件测试理论。

    Learning Google Apps Script 无水印pdf

    Learning Google Apps Script 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者...

    Google Apps Script(2nd) 无水印pdf

    Google Apps Script(2nd) 英文无水印pdf 第2版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传...

    The Definitive Guide to Firebase Build Android Apps on Google's Mobile 无水印原版pdf

    The Definitive Guide to Firebase Build Android Apps on Google's Mobile Platform 英文无水印原版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络...

    google search client api for c/c++

    演示程序中的key是一个网友给我的,仅供测试用,演示程序中的代理可能连接不上,由于没有设置超时,可能处于等待状态(sorry.....) 函数中各个参数的意义和http://www.google.com/apis/reference.html的说明一样,对此不...

    RAM Stress Test(RST)内存测试软件img

    于是在Google上查找相关说明,经过跋山涉水,终于找到一片,但是很不幸,在一家被挡在墙外的网站上,也就只好半转载、半理解得写出了这一篇使用说明。 先看软件介绍。这个可以从网络上搜索。例如,它是一个独立...

    Programming Google App Engine with Java 无水印pdf

    Programming Google App Engine with Java 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,...

    RAM Stress Test(RST)内存测试软件 nero光盘镜像文件

    于是在Google上查找相关说明,经过跋山涉水,终于找到一片,但是很不幸,在一家被挡在墙外的网站上,也就只好半转载、半理解得写出了这一篇使用说明。 先看软件介绍。这个可以从网络上搜索。例如,它是一个独立...

    Ajax 模仿google百度提示输入框 v1.8

    转载请注明出处 此小程序是模仿Google(sgguest)输入提示框所编写 亦可用于用户注册邮箱时的提示 此程序使用方便简单、易用灵活 且不限Asp、php、net 更新说明: 1.支持xhtml 2.兼容IE6,IE7,FF 3.支持input显示与...

    absl-py-0.9.0.tar.gz

    这些代码从谷歌自己的Python代码基地中搜集而来,已经过全面的测试并广泛用于生产中。 特点: 简单的应用创建 分布式的命令行标志系统 用户自定义的记录模块,并拥有额外的功能。 拥有测试工具 ————...

    论坛弹幕播放器(DZ测试可用,可以简单修改移植到PHPwind)

    如果你要转载下面的内容,那么请注明原帖地址 --------------------------------------------我是分割线-------------------------------------------- 源码下载(内含v1.150mukioplayer): 2012-04-25第3次更新 ...

    google location 补丁包,适合没有集成的room

    已安装测试正常!其他版本应该不能通用,安装时一定要注意版本对应。 来电据库版可以按照网上googlelocation.apk方法更新!声明:转载自网络,因为这个刷机包特别难找,因此,特别收藏 另外,对于菜鸟,刷补丁包时...

    关于人工智能的随笔-谈人工智能时代的学习.doc

    Siri和Google Now已经比几年前的测试版先进很多,这要归功于它们在使用期间收到的数百万个语音请 求,而语音请求已经成为改善系统的训练数据。Siri的创始团队在离开苹果公司后纷纷 成立新的公司,Viv实验室就是其中...

    springmybatis

    mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in ...

    nlp with PyTorch - 2019.zip

    自然语言处理(NLP)为解决人工智能问题提供了无限机会,使亚马逊Alexa和谷歌翻译等产品成为可能。如果您是NLP和深度学习新手的开发人员或数据科学家,本实用指南将向您展示如何使用PyTorch(一种基于Python的深度...

    如何运用LoadRunner脚本关联的动态数据

    百度或Google一下“如何在loadrunner/"target="_blank">LoadRunner脚本中做关联(Correlation)”,你会搜索到在网上相互转载的很经典的一篇文章。洋洋洒洒近6000汉字,像个小百科全书。对于关联Correlation的概念,...

    Beginning Serverless Computing Developing with Amazon Web Services, 无水印原版pdf

    Beginning Serverless Computing Developing with Amazon Web Services, Microsoft Azure, and Google Cloud 英文无水印原版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以...

    php调用mysql存储过程

    前面转载了一篇《php调用mysql存储过程的文章》经过测试,发现文章中的方法似乎不可行! 调用带有select语句的存储过程就出现 PROCEDURE p can’t return a result set in the given context的错误。...

    Unity Admob 插件

    1.把admobpluginres目录下的GoogleMobileAds.framework直接拖拽(一定要拖,不要添加,否则报错)添加到项目根目录下2.给工程添加framework 引用,包括下面的 AdSupport.framework,EventKit.framework,EventKitUI....

    design-resources::triangular_ruler:选择用于设计和学习设计的网站,工具,资产和阅读材料

    咨询,自由职业流程和心态用户体验和交互设计用户研究发行人和发行人浏览器功能Google Chrome浏览器扩展程序和小书签Google Chrome开发者工具毛刷颜色和调色板无障碍调色板辅助功能测试工具字型目录和市场个体铸造...

Global site tag (gtag.js) - Google Analytics