精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Facebook 的自動化測試

系統 自動化
對于PHP的代碼,我們寫了非常多的基于PHPUnit測試框架的測試類,這些測試類覆蓋范圍比較大,從簡單的判讀真假的單元測試到大規模的后端服務的集成測試。開發人員把運行這些基于PHPUnit的測試用例作為他們工作中的一部分,同時這些用例也在一些專用的設備上不停地被運行(注:持續集成模式)。當開發人員對一些代碼做了比較大的修改時,在開發機器上的自動化工具會運行這些測試用例的同時也會生成相應的代碼覆蓋率數據,對于需要提交到代碼庫的diff,在做代碼review的時候回自動地產生一份帶有覆蓋率的測試報告。

Facebook 怎樣做自動化測試

最近Quora上有個討論,原意是:“facebook是如何做自動化測試的,他們是怎樣測試才能保證每周的升級都可以不出差錯的呢?” 參見Link

來自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的測試還處于一個初期起步嘗試階段,上面的介紹都只是我們在當前運行的方法而已。#p#

附錄原文

What kind of automated testing does Facebook do? How do they make sure they aren’t breaking things in their weekly pushes?

Steven Grimm, 2005-2012

We do several kinds of testing. Some specifics:

For our PHP code, we have a suite of a few thousand test classes using the PHPUnit framework. They range in complexity from simple true unit tests to large-scale integration tests that hit our production backend services. The PHPUnit tests are run both by developers as part of their workflow and continuously by an automated test runner on dedicated hardware. Our developer tools automatically use code coverage data to run tests that cover the outstanding edits in a developer sandbox, and a report of test results is automatically included in our code review tool when a patch is submitted for review.

For browser-based testing of our Web code, we use the Watir framework. We have Watir tests covering a range of the site’s functionality, particularly focused on privacy—there are tons of “user X posts item Y and it should/shouldn’t be visible to user Z” tests at the browser level. (Those privacy rules are, of course, also tested at a lower level, but the privacy implementation being rock-solid is a critical priority and warrants redundant test coverage.)

In addition to the fully automated Watir tests, we have semi-automated tests that use Watir so humans can avoid the drudgery of filling out form fields and pressing buttons to get through UI flows, but can still examine what’s going on and validate that things look reasonable.

We’re starting to use JSSpec for unit-testing JavaScript code, though that’s still in its early stages at this point.

For backend services, we use a variety of test frameworks depending on the specifics of the services. Projects that we release as open source use open-source frameworks like Boost’s test classes or JUnit. Projects that will never be released to the outside world can use those, or can use an internally-developed C++ test framework that integrates tightly with our build system. A few projects use project-specific test harnesses. Most of the backend services are tied into a continuous integration / build system that constantly runs the test suites against the latest source code and reports the results into the results database and the notification system.

HipHop has a similar continuous-integration system with the added twist that it not only runs its own unit tests, but also runs all the PHPUnit tests. These results are compared with the results from the same PHP code base run under the plain PHP interpreter to detect any differences in behavior.

Our test infrastructure records results in a database and sends out email notifications on failure with developer-tunable sensitivity (e.g., you can choose to not get a notification unless a test fails continuously for some amount of time, or to be notified the instant a single failure happens.) The user interface for our test result browser is integrated with our bug/task tracking system, making it really easy to associate test failures with open tasks.

A significant fraction of tests are “push-blocking”—that is, a test failure is potential grounds for holding up a release (this is at the discretion of the release engineer who is pushing the code in question out to production, but that person is fully empowered to stop the presses if need be.) Blocking a push is taken very seriously since we pride ourselves on our fast release turnaround time.

My team, Test Engineering, is responsible for building the common infrastructure used by all the above stuff, as well as for maintaining PHPUnit and Watir. Facebook has no dedicated QA team; all Facebook engineers are responsible for writing automated tests for their code and keeping the tests maintained as the underlying code changes.

Facebook’s test setup is still very much a work in progress, but the above is at least a taste of what we do in that area.

From http://www.quora.com/What-kind-of-automated-testing-does-Facebook-do

【編輯推薦】

  1. Facebook將逐漸停止支持IE7
  2. 傳Facebook將開發瀏覽器對抗Chrome
  3. 社交網絡 David Recordon談Facebook的開源之路
責任編輯:Yeva 來源: 公直的博客
相關推薦

2022-02-17 10:37:16

自動化開發團隊預測

2023-03-27 15:37:43

自動化測試開發

2022-05-10 11:18:42

自動化測試軟件測試

2022-06-08 14:22:55

自動化測試測試

2013-12-02 12:44:28

Facebook自動化管理

2021-09-03 09:56:18

鴻蒙HarmonyOS應用

2013-05-16 10:58:44

Android開發自動化測試

2014-04-16 14:15:01

QCon2014

2011-12-23 17:09:57

自動化測試

2012-12-24 22:54:31

2021-06-30 19:48:21

前端自動化測試Vue 應用

2023-06-28 15:12:33

2017-04-10 12:25:32

iOS自動化測試

2023-11-01 10:18:10

自動化測試工具

2024-11-01 15:05:12

2011-06-03 17:24:48

自動化測試

2014-11-20 13:49:15

2011-01-20 10:17:25

ibmdwWeb

2011-05-30 17:31:26

自動化測試

2012-03-29 10:57:12

Web自動化測試
點贊
收藏

51CTO技術棧公眾號

亚洲经典一区二区三区| 扒开伸进免费视频| 嫩草在线视频| 国产激情91久久精品导航| 午夜精品视频网站| 亚洲一区二区三区日韩| 不卡一区视频| 午夜精品aaa| 亚洲开发第一视频在线播放| 午夜精品在线播放| 久久性天堂网| 中文字幕在线看视频国产欧美| 国产黑丝在线视频| 日韩免费va| 一区二区在线看| 欧美日韩一区二区三区免费| 国产精品免费无遮挡| 国产精品视区| 精品中文字幕在线2019| 97人妻精品一区二区三区免 | 国外成人免费在线播放| 免费看裸体网站| jazzjazz国产精品久久| 欧美性做爰猛烈叫床潮| 成人免费在线网| 黄色免费网站在线观看| 久久精品这里都是精品| 国产精品果冻传媒潘| 中文字幕人成人乱码亚洲电影| 亚洲一级一区| 久久这里有精品视频| 美女100%无挡| 欧美激情影院| 欧美一区二区三区啪啪| 一区二区三区 欧美| 日韩激情电影免费看| 亚洲精品国产第一综合99久久| 青娱乐一区二区| 日韩一级片免费| 国产一区二区日韩精品| 国产精品亚洲欧美导航| 中文字幕黄色片| 99在线|亚洲一区二区| 麻豆成人在线看| 男人天堂资源网| 精品美女在线视频| 亚洲欧美日韩精品久久| 黄色免费看视频| 亚洲视频一起| 欧美一级高清片| 999热精品视频| 在线观看欧美| 91麻豆精品国产91| 手机精品视频在线| 成人短视频软件网站大全app| 欧美三级中文字| 日本熟妇人妻中出| 巨胸喷奶水www久久久免费动漫| 精品国产91久久久久久| 青青青国产在线观看| 538在线视频| 性欧美疯狂xxxxbbbb| 成年女人18级毛片毛片免费| 欧美性受ⅹ╳╳╳黑人a性爽| 亚洲精品免费在线| 青青青在线观看视频| 男女免费观看在线爽爽爽视频| 一区二区在线看| 日本欧美视频在线观看| 国产精品一二三产区| 婷婷夜色潮精品综合在线| ww国产内射精品后入国产| 日本在线影院| 欧美中文字幕一区二区三区| 成人免费在线观看视频网站| 成人在线免费电影网站| 欧美精品自拍偷拍| 日韩精品――色哟哟| 澳门精品久久国产| 亚洲国内精品在线| 中文字幕免费视频| 婷婷亚洲图片| 久久久久久久国产精品视频| 久久久久久91亚洲精品中文字幕| 丝袜亚洲精品中文字幕一区| 国产精品极品美女在线观看免费| 888奇米影视| 成人午夜av电影| 欧美精品七区| 欧洲不卡av| 亚洲在线中文字幕| 免费裸体美女网站| 国产专区精品| 精品视频在线观看日韩| 青青青视频在线播放| 欧美日本一区| 国产精品久久久久久久久久ktv | 免费欧美在线视频| 亚洲淫片在线视频| 日本韩国精品一区二区| 亚洲欧洲国产日本综合| 一二三四视频社区在线| av成人在线播放| 精品国产三级电影在线观看| 中文幕无线码中文字蜜桃| 国产韩国精品一区二区三区| 国内精品小视频| 在线视频 中文字幕| 成人免费va视频| 夜夜爽99久久国产综合精品女不卡 | 亚洲精品www久久久久久| 麻豆精品蜜桃视频网站| 国产伦精品一区二区三区照片91 | 欧美一级黄视频| 丁香桃色午夜亚洲一区二区三区| 日韩av一级大片| 1区2区3区在线| 欧美一卡2卡3卡4卡| 亚洲一区二区三区蜜桃| 伊人精品成人久久综合软件| 国产精品丝袜白浆摸在线| 四季av日韩精品一区| 亚洲手机成人高清视频| 欧美日韩大尺度| 牛牛视频精品一区二区不卡| 九九精品视频在线观看| 国产乡下妇女三片| 久久免费偷拍视频| 免费拍拍拍网站| 日日夜夜精品视频| 久久精品成人动漫| 中文字幕永久在线观看| 久久久久久日产精品| 成人一区二区免费视频| 视频二区欧美毛片免费观看| 日韩在线播放视频| 最新中文字幕免费| 国产亚洲精品福利| 国产福利视频在线播放| 亚洲第一福利专区| 26uuu另类亚洲欧美日本老年| 亚洲第一页在线观看| 亚洲色图另类专区| 欧美激情第3页| 人人狠狠综合久久亚洲婷| 国产精品福利在线| 国产午夜精品一区理论片| 色综合天天性综合| 无码一区二区三区在线| 玖玖在线精品| 精品久久sese| 亚洲欧洲精品一区二区精品久久久 | 国产精品一色哟哟哟| 美国av一区二区三区| 永久免费网站在线| 日韩在线视频观看| 波多野结衣日韩| 26uuu精品一区二区在线观看| 久久久久99精品成人片| 日韩中文字幕一区二区高清99| 久久艹在线视频| 国产精品无码免费播放| 亚洲欧美精品午睡沙发| 97在线视频国产| 97超碰国产在线| 亚洲图片欧美激情| 肉丝美足丝袜一区二区三区四| 欧美成人69| 亚洲最大福利视频网站| 久草在线新免费首页资源站| 精品成人a区在线观看| 亚洲国产精品午夜在线观看| 91在线精品秘密一区二区| 99国产超薄肉色丝袜交足的后果| 国产性xxxx高清| 夫妻av一区二区| 久久亚洲国产成人精品无码区| 伊人精品久久| 性欧美办公室18xxxxhd| 天堂а在线中文在线无限看推荐| 精品露脸国产偷人在视频| 国产盗摄视频在线观看| 亚洲国产成人一区二区 | 丁香婷婷久久久综合精品国产| 26uuu亚洲电影在线观看| 亚洲第一视频在线观看| 久久久久久久久久久影院| 国产精品萝li| 亚洲色图欧美日韩| 在线日本中文字幕| 日韩一级欧美一级| 久久一区二区三区视频| 国产精品视频一二三区| 中文字幕一二三区| 亚洲在线网站| 致1999电视剧免费观看策驰影院| 51精品国产| 国产精品久久久久久久久借妻 | 国产精品探花在线| 精品国产一区二区三区不卡| 无码人妻精品一区二区三区蜜桃91| 免费一区二区三区在线视频| 欧美黑人性生活视频| 三区在线视频| 69久久99精品久久久久婷婷| xxxx.国产| 一区二区三区四区五区视频在线观看| 青青草视频成人| 美女在线一区二区| 日日碰狠狠添天天爽超碰97| 亚洲第一偷拍| 日韩欧美国产二区| 免费观看成人www动漫视频| 国产精品爽黄69天堂a| 国产精品高颜值在线观看| 日韩在线播放一区| 好男人免费精品视频| 亚洲国产精品yw在线观看| 国产精品久久无码一三区| 色综合色综合色综合色综合色综合| 四虎免费在线视频| 国产精品免费免费| 熟女高潮一区二区三区| av动漫一区二区| 五月天六月丁香| 免费成人美女在线观看.| 国产熟女高潮视频| 亚洲欧美激情诱惑| 国产中文字幕二区| 欧美网站在线| 国内外成人激情免费视频| 久久神马影院| 视频一区二区三| 国精一区二区| 欧美日韩精品一区| 亚洲精品国模| 久久影视中文粉嫩av| 久久影视三级福利片| 成人18视频| 日韩高清在线观看一区二区| 91香蕉国产在线观看| 亚洲国产一区二区久久| 国产日韩欧美日韩| 精品福利在线| 国产欧美日韩视频| 狠狠久久综合| 成人免费网视频| 中文幕av一区二区三区佐山爱| 国产精品欧美激情| 黑人一区二区三区| 成人免费视频网址| 深夜福利一区| 成人av免费电影| 精品国内亚洲2022精品成人| 国产伦精品一区二区| 大伊香蕉精品在线品播放| 成人在线看片| 另类春色校园亚洲| 欧美日韩亚洲综合一区二区三区激情在线 | 无人码人妻一区二区三区免费| 久久精品国产精品亚洲综合| 日韩欧美国产片| 国模娜娜一区二区三区| 伊人成人免费视频| 78色国产精品| 久久精品成人av| 久久综合精品国产一区二区三区| 亚洲天堂2024| 99精品1区2区| 婷婷色一区二区三区| 国产精品欧美一区二区三区| 中文国语毛片高清视频| 亚洲欧美另类小说| 国产一级久久久| 欧美性生交xxxxxdddd| 国产精品熟女视频| 欧美精品1区2区| 老熟妇高潮一区二区高清视频| 亚洲黄页网在线观看| 国产黄色片在线播放| 久久精品91久久久久久再现| 欧美男男video| 欧美在线日韩在线| 国产精品诱惑| 国产精品福利视频| 欧美男男gaytwinkfreevideos| 视频一区亚洲 | 亚洲激情一区二区| 亚洲综合色网| 我的公把我弄高潮了视频| 日精品一区二区| 伊人久久久久久久久| 久久精品男人的天堂| 欧美激情图片小说| 亚洲国产成人高清精品| 中文字幕第31页| 亚洲国产精品小视频| 日本中文字幕在线播放| 性日韩欧美在线视频| 日本午夜免费一区二区| 含羞草久久爱69一区| 色琪琪久久se色| 精品久久久久久久久久中文字幕| 免费不卡在线视频| 黄色性生活一级片| 亚洲卡通动漫在线| 久久精品99北条麻妃| 精品国产一区二区三区忘忧草 | 日韩高清二区| 日韩精品一线二线三线| 国产一区二区三区自拍| 日韩欧美国产片| 久久久久久免费网| 久久免费播放视频| 欧美视频精品在线观看| 午夜激情在线视频| 欧美乱大交xxxxx另类电影| 欧洲精品一区二区三区| 国产一区免费在线| 一区二区三区在线电影| 少妇一级淫免费播放| 久久婷婷综合激情| 日韩精品一卡二卡| 欧美一区二区美女| 色三级在线观看| 国产精品88a∨| 欧美巨大xxxx| 精品少妇在线视频| 国产传媒欧美日韩成人| 午夜激情福利网| 欧美日韩一区视频| 黄色在线免费观看大全| 国产91成人在在线播放| 激情亚洲另类图片区小说区| 免费观看中文字幕| 精品一区二区三区不卡| 貂蝉被到爽流白浆在线观看| 91国产精品成人| 免费动漫网站在线观看| 91po在线观看91精品国产性色| 9国产精品午夜| www插插插无码免费视频网站| 国产成人综合视频| 欧美成人精品欧美一级| 欧美一级一区二区| 四季久久免费一区二区三区四区| 91精品啪在线观看麻豆免费| 久久中文字幕av| 91亚洲免费视频| 国产精品的网站| 国产美女永久免费| 免费99精品国产自在在线| 精品视频一二| av日韩在线看| 成人a免费在线看| 日本黄色片视频| 日韩国产一区三区| 欧美性xxx| 亚洲乱码国产乱码精品天美传媒| 麻豆精品一区二区av白丝在线| 女人裸体性做爰全过| 91精品国产综合久久久蜜臀图片 | 在线免费观看视频黄| 亚洲国产精品精华液2区45| 91精品国产乱码久久久久| 久久精品久久久久久国产 免费| 国产一区二区视频在线看| 18视频在线观看娇喘| 国产不卡在线视频| 日本在线视频免费观看| 亚洲欧美日韩成人| 天天综合91| 国产www免费| 91久色porny| 中文字幕在线视频免费| 久久色精品视频| 国产精品自在线拍| 日本成人在线免费视频| 综合欧美一区二区三区| 韩国av电影在线观看| 日韩av电影在线网| 91欧美大片| 国产精品九九视频| 欧美亚男人的天堂| 久久五月精品中文字幕| 免费成人看片网址| 精品一区二区三区的国产在线播放| 久久久久久久国产视频| 亚洲美女动态图120秒| 日本国产一区| 男女私大尺度视频| 国产精品人妖ts系列视频| 亚洲第一成人av| 国产精品高精视频免费| 国产精品成人一区二区网站软件| 欧美老熟妇乱大交xxxxx| 日韩欧美成人一区二区| 浪潮色综合久久天堂| 996这里只有精品| 亚洲国产精品av|