Facebook是如何做自动化测试的?

使用facebook-wda进行iOS APP自动化测试 阅读详情

最近Quora上有个讨论,原意是:“facebook是如何做自动化测试的,他们是怎样测试才能保证每周的升级都可以不出差错的呢?”

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

▲对于PHP的代码,我们写了非常多的基于PHPUnit测试框架的测试类,这些测试类覆盖范围比较大,从简单的判读真假的单元测试到大规模的后端服务的集成测试。开发人员把运行这些基于PHPUnit的测试用例作为他们工作中的一部分,同时这些用例也在一些专用的设备上不停地被运行(注:持续集成模式)。当开发人员对一些代码做了比较大的修改时,在开发机器上的自动化工具会运行这些测试用例的同时也会生成相应的代码覆盖率数据,对于需要提交到代码库的diff,在做代码review的时候回自动地产生一份带有覆盖率的测试报告。

▲对于前端的代码,我们使用Waitir(注:Waitir是前端UI的自动化测试框架)做了基于浏览器的界面自动化测试。这些测试用例涵盖了网站页面的功能,特别是针对隐私方面,比如:“用户X发布了Y,而Y应该/不应该被用户Z看到”,有着大量的基于浏览器级别的这种用例。(这些隐私规则当然也会使用一些更低级别的方法被测试到,但是这些规则的实现是必须要严格执行的,并有着非常高的优先级,因此这部分必须要有足够的测试用例来覆盖)

▲除了一些使用watir的全自动化用例以外,我们也有一些半自动化的测试。这些测试也使用了waitir技术,这样可以使一些表格填充或者点击button来完成整改界面上的流程的测试不太单调乏味,而且我们可以很清楚地检查和验证当前的步骤或流程是否正确合理。

▲我们也在尝试开始使用JSSpec 去做一些JavaScript代码的单元测试,但当前也是刚刚开始做。(注:JSSpec 是 JavaScript单元测试框架)

▲对于后端服务的测试,根据不同的服务特性我们采用了许多不同的测试框架与方法。对于一些需要开源发布的项目,我们会使用开源的测试框架,像Boost和JUnit测试框架(注:Boost是针对C++/JUnit是针对Java的测试框架);对于另外一些项目,可能永远都不会发布到外界,我们就是使用内部开发的可以很紧密地与我们build系统集成在一起的C++测试框架。还有少数项目会使用项目级别的测试工具。多数后端服务的测试都会紧紧地和持续集成/Build系统结合在一起,这些持续集成的build系统会不停地针对源代码自动地运行测试用例并生成测试结果,测试结果在存储在数据库的同时会发送到通知系统中去。

▲HipHop有一套类似的持续集成系统,HipHop的单元测试和所有基于PHPUnit的测试都会被运行。所有的这些测试结果会和基于普通的PHP解释器的结果做对比,从而可以看到不同PHP上的行为的不同;(注:HipHop for PHP是Facebook的PHP项目)

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

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

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

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

英文原文:What kind of automated testing does Facebook do?

facebook-wda搭建iOS自动化测试环境全过程,零遗漏! 客户端(Client)就是iOS设备,比如你的iPhone服务端(Server)运行在Mac上的通过服务端与客户端交互,发送测试指令并获取结果。 阅读详情

相关推荐

你知道Facebook是怎么做自动化测试的吗?

Facebook怎样做自动化测试最近Quora上有个讨论,原意是:“facebook是如何做自动化测试的,他们是怎样测试才能保证每周的升级都可以不出差错的呢?”来自Facebook的StevenGrimm很好地回答了这个问题,觉得还不错,这里以第一人称翻译了一下   Facebook怎样做自动化测试   最近Quora上有个讨论,原意是:“facebook是如何做自动化测试的,他们是怎样测试才能保证每周的升级都可以不出差错的呢?”   来自Facebook的StevenGrimm很好地回答了这个问题,觉得还不错,这里以第一人称翻译了一下。   ▲对于PHP的代码,我们写了非常多的基于PHPUn

[探讨]Facebook是如何做自动化测试的?

导读:最近,在国外知名问答网站Quora上有个讨论,原意是:“Facebook是如何做自动化测试的,他们是怎样测试才能保证每周的升级都可以不出差错的呢?” 引发了开发者们的激烈讨论。 来自Facebook的Steven Grimm很好地回答了这个问题,觉得还不错,这里以第一人称翻译了一下。 对于PHP的代码,我们写了非常多的基于PHPUnit测试框架的测试类,这些测试类覆盖范围比较大,从简单的...

weixin_33858336的博客 249

Facebook的自动化测试

Facebook的自动化测试.对于PHP的代码,我们写了非常多的基于PHPUnit测试框架的测试类,这些测试类覆盖范围比较大,从简单的判读真假的单元测试到大规模的后端服务的集成测试。开发人员把运行这些基于PHPUnit的测试用例作为他们工作中的一部分,同时这些用例也在一些专   对于PHP的代码,我们写了非常多的基于PHPUnit测试框架的测试类,这些测试类覆盖范围比较大,从简单的判读真假的单元测试到大规模的后端服务的集成测试。开发人员把运行这些基于PHPUnit的测试用例作为他们工作中的一部分,同时这些用例也在一些专用的设备上不停地被运行(注:持续集成模式)。当开发人员对一些代码做了比较大的

接口自动化测试实战经验分享,测试用例也能自动生成

顾名思义,接口测试就是对系统或者组件之间的接口进行测试,主要校验数据的交换、传递以及系统间的相互依赖关系等。根据测试金字塔的模型理论,测试分为三层,分别是单元测试(Unit Tests)、服务测试(Service Tests)、UI 测试(UI Tests),而我们的接口自动化测试就是服务测试层。单元测试会导致工作量大幅提升,在需求快速迭代和人力紧张的背景下,很难持续推进,本文暂不讨论。而接口自动化测试容易实现、维护成本低,且收益更高,有着更高的投入产出比。

主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。 3500

AI量化投资开源平台——Qlib(微矿)的学习使用笔记(随缘更新)

Qlib 涵盖了量化投资的全过程,为用户的 AI 算法提供了高性能的底层基础架构,从框架设计上让用户可以更容易地应用 AI 算法来辅助解决量化投资的各个关键问题(例如 Alpha 预测,风险预测,市场动态性建模)。本文旨在记录一些面向初学者的基础内容。

in_void的博客 3133

SSCardDriver.dll社会保障卡读写终端接口规范38号文接口

********************获取设备及PSAM卡信息********************//********************获取银行账户信息 ********************//********************获取设备信息********************//********************PIN校验********************//********************通用写卡********************/

广东东信智能科技有限公司的专栏 1745

全新自动化 | Facebook内容发布轻松无忧

为了更好的满足用户跨平台内容分发的需求,我们对自动化功能进行了全面升级!在原有的TikTok自动化基础上,新增了Facebook自动化功能,支持视频/图文的发布,这一功能将极大提高你的工作效率,节省时间和精力。快来试试吧!

GeeLark的博客 1637

【脑电分析系列】第7篇:频域分析基石 — 功率谱密度(PSD)的计算与常见方法对比

本文探讨了脑电图(EEG)频域分析的核心方法——功率谱密度(PSD)。通过对比基于快速傅里叶变换的周期图法和更稳健的Welch's方法,指出后者通过分段、加窗和平均处理,能有效降低估计方差,更适合分析非稳态的脑电信号。文章详细解析了关键参数设置对频率分辨率和统计稳定性的影响,并提供了Python计算实现。PSD分析将复杂的脑电信号转换为直观的频域特征,为研究认知功能和神经疾病提供重要依据。

qq_32516809的博客 1805

FacebookWebBot:自动化Facebook操作的利器

FacebookWebBot:自动化Facebook操作的利器 项目介绍 FacebookWebBot 是一个简单而强大的Python库,旨在帮助用户自动化Facebook操作,而无需依赖Facebook的官方API。通过模拟浏览器行为,FacebookWebBot能够实现从登录、发布帖子到管理好友和群组等多种功能。无论是社交媒体管理、数据抓取还是自动化任务,FacebookWebBot都能提供高...

gitblog_00800的博客 662

【2025最新版】Open3D 区域生长分割(python详细过程版)

点云区域生长分割算法的python详细过程版实现。博客长期更新,本文最新更新时间为:2025年3月23日。

点云侠的博客 9529

【机器学习系列】一文搞懂 零知识机器学习(zkML)

位串行乘法器:实现了Booth编码优化,将乘法分解为移位-加法序列,减少部分积数量50%:模拟脉动阵列的2D网格计算,支持分块(tiling)策略优化内存层次卷积映射:提供直接卷积(行缓冲+滑动窗口)和im2col+GEMM两种硬件映射策略。

VectorShift的博客 156

Facebook是如何做自动化测试的

Facebook是如何做自动化测试的? 摘要:在国外知名问答网站Quora上有个讨论,原意是:“facebook是如何做自动化测试的,他们是怎样测试才能保证每周的升级都可以不出差错的呢?” 引发了开发者们的激烈讨论。 导读:最近,在国外知名问答网站Quora上有个讨论,原意是:“Facebook是如何做自动化测试的,他们是怎样测试才能保证每周的升级都可以不出差错的呢?” 引发了

寒江的专栏 1095

华为OD机考双机位C卷 - 简单的解压缩算法 (Java & Python & JS & GO & C++ & C)

华为OD机考双机位C卷 - 简单的解压缩算法 , 提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 130

Facebook 的自动化测试

源地址:http://testing.etao.com/node/317 最近Quora上有个讨论,原意是:“facebook是如何做自动化测试的,他们是怎样测试才能保证每周的升级都可以不出差错的呢?” 参见Link 来自Facebook的Steven Grimm很好地回答了这个问题,觉得还不错,这里以第一人称翻译了一下。 对于PHP的代码,我们写了非常多的基于PHPUnit测试框...

weixin_30824479的博客 71

Ubuntu零基础入门到精通【4.4讲】:网络、蓝牙、显示器、声音与输入法设置!

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 1486

RT-DETR改进策略【独家融合改进】| HTB + GFPN + LGAG

解决现有Transformer方法的局限:现有的基于Transformer的方法在处理恶劣天气图像恢复时,为了提高内存利用效率,通常将自注意力操作限制在固定的空间范围或仅仅在通道维度上,这种限制阻碍了Transformer对长距离空间特征的捕捉能力,从而影响了图像恢复的性能。利用天气退化特征:观察到天气引起的退化因素主要导致相似的遮挡和亮度变化,因此希望设计一种能够更好地处理这些特征的模块。

Limiiiing的博客 197

【转帖】Facebook 的自动化测试

Facebook 怎样做自动化测试? 最近Quora上有个讨论,原意是:“facebook是如何做自动化测试的,他们是怎样测试才能保证每周的升级都可以不出差错的呢?” 参见Link 来自Facebook的Steven Grimm很好地回答了这个问题,觉得还不错,这里以第一人称翻译了一下。 对于PHP的代码,我们写了非常多的基于PHPUnit测试框架的测试类,这

missyouonly的博客 1300

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Windows上实现iOS APP自动化测试:tidevice + WDA + facebook-wda / appium

tidevice + WDA + facebook-wda / appium在Windows上构建iOS APP自动化测试环境

测试开发小记 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Facebook-wda tidevice iOS自动化测试

今天在用appium进行iOS自动化测试的时候发现其获取布局文件以及截图文件时效率非常低,于是就想到调研一下有没有其他方法跳过appium的接口。这篇文章做了一个调研,结果并没有什么卵用:然后文章中也提到字节实现了一个工具bdc,但是奈何他不开源。

weixin_45485135的博客 2214

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: 学习PHP到底要学习哪些东西?
下一篇: 如何解决PHP里大量数据循环时内存耗尽的问题
Lankecms
博客等级 码龄15年 14粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值