来自Facebook的Steven Grimm很好地回答了这个问题,觉得还不错,这里以第一人称翻译了一下。

  • 对于PHP的代码,我们写了非常多的基于PHPUnit测试框架的测试类,这些测试类覆盖范围比较大,从简单的判读真假的单元测试到大规模的后端服务的集成测试。开发人员把运行这些基于PHPUnit的测试用例作为他们工作中的一部分,同时这些用例也在一些专用的设备上不停地被运行(注:持续集成模式)。当开发人员对一些代码做了比较大的修改时,在开发机器上的自动化工具会运行这些测试用例的同时也会生成相应的代码覆盖率数据,对于需要提交到代码库的diff,在做代码review的时候回自动地产生一份带有覆盖率的测试报告。
  • 对于前端的代码,我们使用Waitir(注:Waitir是前端UI的自动化测试框架)做了基于浏览器的界面自动化测试。这些测试用例涵盖了网站页面的功能,特别是针对隐私方面,比如:“用户X发布了Y,而Y应该/不应该被用户Z看到”,有着大量的基于浏览器级别的这种用例。(这些隐私规则当然也会使用一些更低级别的方法被测试到,但是这些规则的实现是必须要严格执行的,并有着非常高的优先级,因此这部分必须要有足够的测试用例来覆盖)
  • 除了一些使用watir的全自动化用例以外,我们也有一些半自动化的测试。这些测试也使用了waitir技术,这样可以使一些表格填充或者点击button来完成整改界面上的流程的测试不太单调乏味,而且我们可以很清楚地检查和验证当前的步骤或流程是否正确合理。
  • 我们也在尝试开始使用JSSpec (注:JavaScript单元测试框架)去做一些JavaScript代码的单元测试,但当前也是刚刚开始做。
  • 对于后端服务的测试,根据不同的服务特性我们采用了许多不同的测试框架与方法。对于一些需要开源发布的项目,我们会使用开源的测试框架,像Boost和JUnit测试框架(注:Boost是针对C++/JUnit是针对Java的测试框架);对于另外一些项目,可能永远都不会发布到外界,我们就是使用内部开发的可以很紧密地与我们build系统集成在一起的C++测试框架。还有少数项目会使用项目级别的测试工具。多数后端服务的测试都会紧紧地和持续集成/Build系统结合在一起,这些持续集成的build系统会不停地针对源代码自动地运行测试用例并生成测试结果,测试结果在存储在数据库的同时会发送到通知系统中去。
  • HipHop(注:HipHop for PHP是Facebook的PHP项目)有一套类似的持续集成系统,HipHop的单元测试和所有基于PHPUnit的测试都会被运行。所有的这些测试结果会和基于普通的PHP解释器的结果做对比,从而可以看到不同PHP上的行为的不同;

Facebook的测试工具将测试结果存储在数据库的同时会发送一份通知邮件,这个邮件会包含执行失败的信息并且邮件的接收范围是开发同学可以自己调整的。(例如,你可以选择只有在测试连续失败一段时候的时候才接收到通知邮件,或者当一个用力失败的时候立刻收到通知)。在浏览器UI上,测试结果和 缺陷/开发任务跟踪系统会结合在一起,可以很容易的将测试失败与开发任务关联起来。

测试中一个非常重要的现象是“导致阻塞”,也就是一个测试用例失败有可能会阻止发布(在Facebook,有发布工程师会来评估是否可以将带有问题的代码发布到生产环境,发布工程师在必要的情况下会得到授权去阻止产品的发布)。阻止产品发布上线的事情是被认为是非常严重的问题,因为在Facebook大家对于这种快速发布的模式是深深引以为豪的。

我所在的团队是测试工程部门,主要职责是打造通用基础工具,这些工具会被上述的所有人用到,同时我们也在维护测试框架,像PHPUnit和Watir。Facebook没有专职的测试团队,所有的工程师都需要为他们的代码写自动化测试用例,并维护这些测试用例,保证产品代码改变的同时这些测试代码可以正确地运行。

Facebook的测试还处于一个初期起步尝试阶段,上面的介绍都只是我们在当前运行的方法而已。

Facebook自动化测试札记相关推荐

  1. SDCC 2015前端专场札记:Facebook、百度、腾讯、美团、饿了么等互联网公司的前端实战

    SDCC 2015前端专场札记:Facebook.百度.腾讯.美团.饿了么等互联网公司的前端实战 发表于2015-11-27 14:14| 682次阅读| 来源AdMaster| 1 条评论| 作者刘 ...

  2. Windows实现appium+iOS自动化测试

    在前面的文章介绍了Windows上安装配置tidevice,环境搭建好后就实现了在Windows运行iOS自动化的第一步,接下来本文重点介绍在Windows上如何运行iOS自动化测试. 如果没有安装好 ...

  3. Python自动化测试(1)-自动化测试及基本技术手段概述

    生产力概述 在如今以google为首的互联网时代,软件的开发和生产模式都已经发生了变化, 在<参与感>一书提到:某位从微软出来的工程师很困惑,微软在google还有facebook这些公司 ...

  4. python手机端编程环境_移动端自动化测试解决方案(Appium + Python) - (1) 环境搭建...

    最近对iOS自动化测试做了一番探究,希望通过自动化测试更好的去提高公司项目的测试效率 .在网上找了很多的文章和相关资料,都因为时间比较久导致无法实现基本环境的搭建,我在这儿分享给大家分享我的实现过程. ...

  5. 操作系统角度谈测试管理和自动化测试

    我们不得不佩服冯诺依曼和早期的计算机科学家们,不只是因为计算机这个伟大产物的诞生和发展,更主要的是,这个行业中的任何分支都似乎有无尽的可能性,让一些大牛们终其一生去探究.当然,最让我佩服的是,无论表现 ...

  6. selenium自动化测试_Selenium测试可实现有效的测试自动化

    selenium自动化测试 尽管移动应用程序的市场份额有大幅增长,但网络应用程序仍然具有大量的用户基础. 在部署之前,企业正在关注Web应用程序的质量. 这是测试发挥重要作用的地方. 与某些可以自动化 ...

  7. rest接口自动化测试_REST服务的自动化测试

    rest接口自动化测试 尽管我是Java和Scala开发人员,但我仍然对软件测试充满热情. 如果更精确-Web应用程序. 开发Web应用程序并确保应用程序具有良好的质量真的很有趣. 当我开始职业生涯时 ...

  8. REST服务的自动化测试

    尽管我是Java和Scala开发人员,但我仍然对软件测试充满热情. 如果更精确-Web应用程序. 开发Web应用程序并确保应用程序具有良好的质量真的很有趣. 当我开始职业生涯时,最受欢迎的Web架构是 ...

  9. 基于 KIF 的 iOS UI 自动化测试和持续集成

    客户端 UI 自动化测试是大多数测试团队的研究重点,本文介绍猫眼测试团队在猫眼 iOS 客户端实践的基于 KIF 的 UI 自动化测试和持续集成过程. 一.测试框架的选择 iOS UI 自动化测试框架 ...

  10. robotframework自动化测试修炼宝典_自动化测试之框架Cucumber和RobotFramework的实战对比...

    读完需要 18分钟 速读仅需 6 分钟 本文首发表于 InfoQ:http://www.infoq.com/cn/articles/cucumber-robotframework-comparison ...

最新文章

  1. Linux查看进程线程个数
  2. Spring Boot 关于 @EnableConfigurationProperties 注解 —— 使用 @ConfigurationProperties 注解的类生效。
  3. 说说Keepalived的脑裂
  4. 高并发下的接口幂等性解决方案!
  5. android ndk 多线程mk,NDK开发之Android.mk文件编写
  6. 拳王公社:虚拟资源项目怎么做?如何操作赚钱?最新操作方法
  7. 问题:使用pandas中的DataFrame写入csv文件多出一行unnamed,如何解决呢??
  8. 分享:将XML(VS提取注释时生成)转换为Chm的一个方法
  9. 为初学者收集的一些C语言学习资料
  10. 计算机源代码英语,计算机源代码编写规范(国外英文资料).doc
  11. 高阶面试官应掌握哪些面试技巧
  12. C++类学习---------step1
  13. JS判断是PC端还是WAP端
  14. AS(强直性脊柱炎)完全手册
  15. 达人评测 华为MatePad2和华为MatePad2 Pro 怎么样
  16. 思科下一代模拟器EVE-NG镜像导入
  17. Windows系统配置
  18. 教育直播APP开发发展前景浅析!
  19. verilog练习:hdlbits网站上的做题笔记(6)
  20. python 响铃_python响铃符不响_python语法注意事项

热门文章

  1. end 键功能的定义
  2. 英特尔下月将推出双核Atom处理器及配套主板
  3. matlab神经网络工具箱使用教程
  4. weevely生成木马文件上传获取靶机中的flag文件
  5. 写了四十篇办公自动化文章后,我整理了这十个常用操作,代码拿走就用!
  6. IRP IO_STACK_LOCATION 《寒江独钓》内核学习笔记(1)
  7. 数据挖掘之七种常用的方法
  8. Shader Reflection Probe 获取图像
  9. UartAssist - 串口调试助手。
  10. 信息系统高级项目管理师:十大知识领域+五大过程组