对于测试范围的形式,谷歌并没有使用通用的代码测试、集成测试、系统测试这些常用术语来做区分,而是使用小规模测试、中等规模测试、大规模测试这样的称呼(译者注:代码测试(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上查找相关说明,经过跋山涉水,终于找到一片,但是很不幸,在一家被挡在墙外的网站上,也就只好半转载、半理解得写出了这一篇使用说明。 先看软件介绍。这个可以从网络上搜索。例如,它是一个独立...
此实现方式经过IE和Firefox浏览器测试,并且在加载与显示速度上相比传统的AJAX技术有显著提高。 #### 技术原理与实现步骤 ##### 技术原理 1. **监听输入框**:首先需要对输入框进行监听,一旦检测到内容发生变化...
笔者随便通过“大数据量分页效率”,“access 分页”等关键词分别百度和谷歌了一下,发现有此疑问的大有人在。很多网页上也给出了不同的解决办法。那么,这些方法到底能达到优化效率,提高速度的目的吗? 下面我们...
在Selenium测试自动化领域,Selenium2.0(也称为Selenium WebDriver)是一个重要的里程碑,它解决了Selenium1.0(通常称为Selenium RC)的一些关键局限性。Selenium1.0虽然允许开发者使用多种编程语言进行测试,但...
Learning Google Apps Script 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者...
Google Apps Script(2nd) 英文无水印pdf 第2版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传...
The Definitive Guide to Firebase Build Android Apps on Google's Mobile Platform 英文无水印原版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络...
演示程序中的key是一个网友给我的,仅供测试用,演示程序中的代理可能连接不上,由于没有设置超时,可能处于等待状态(sorry.....) 函数中各个参数的意义和http://www.google.com/apis/reference.html的说明一样,对此不...
此外,书中也涵盖了对Android模拟器的操作,使读者能在不实际操作真实设备的情况下进行应用开发和测试。 接下来是基础章节,这些章节深入到了Android应用的开发核心。内容包括了如何描述和设计用户界面,存取应用...
于是在Google上查找相关说明,经过跋山涉水,终于找到一片,但是很不幸,在一家被挡在墙外的网站上,也就只好半转载、半理解得写出了这一篇使用说明。 先看软件介绍。这个可以从网络上搜索。例如,它是一个独立...
- 使用第三方服务如Firebase Cloud Messaging (Google的云消息推送服务),极光推送,个推等,可以帮助开发者简化推送通知的实现,提供更丰富的功能和统计分析。 8. **证书与密钥**: - 开发者需要在Apple ...
这些代码从谷歌自己的Python代码基地中搜集而来,已经过全面的测试并广泛用于生产中。 特点: 简单的应用创建 分布式的命令行标志系统 用户自定义的记录模块,并拥有额外的功能。 拥有测试工具 ————...
如果你要转载下面的内容,那么请注明原帖地址 --------------------------------------------我是分割线-------------------------------------------- 源码下载(内含v1.150mukioplayer): 2012-04-25第3次更新 ...
压缩包中的"xmlTest"可能包含了一些示例代码或测试用例,用于演示如何使用xStream进行XML和JSON的转换。这些文件可以作为进一步学习和实践的基础,帮助开发者更好地理解和掌握xStream在实际项目中的应用。在实践中,...
转载请注明出处 此小程序是模仿Google(sgguest)输入提示框所编写 亦可用于用户注册邮箱时的提示 此程序使用方便简单、易用灵活 且不限Asp、php、net 更新说明: 1.支持xhtml 2.兼容IE6,IE7,FF 3.支持input显示与...
它还支持Google Play服务,这对于测试依赖这些服务的应用非常重要。 3. **版本号**:在压缩包中的“genymotion-2.8.1.exe”表明这是Genymotion的一个旧版本。Genymotion会定期更新以修复漏洞、增加新功能并提升性能...
已安装测试正常!其他版本应该不能通用,安装时一定要注意版本对应。 来电据库版可以按照网上googlelocation.apk方法更新!声明:转载自网络,因为这个刷机包特别难找,因此,特别收藏 另外,对于菜鸟,刷补丁包时...
6. **在线测试平台**:随着在线教育的发展,可能使用在线测试平台进行模拟考试,这涉及网页开发、服务器端编程和用户交互设计等计算机技术。 虽然以上内容并非直接来源于试题本身,而是基于对试题发布和管理过程的...