精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲欧美一区二区三| 日韩成人毛片视频| 久久天堂影院| 亚洲美女在线国产| 麻豆成人av| 亚洲一区二区影视| 日韩一级在线| 日韩中文字幕免费视频| 91九色蝌蚪porny| 日韩欧美精品一区二区综合视频| 一区二区三区在线免费| 欧美日韩精品免费看| 99久久一区二区| 丝袜美腿一区二区三区| 九九九久久久久久| 最新中文字幕av| 日韩a级大片| 91麻豆精品国产91久久久| 成年人视频观看| av大片在线| 亚洲国产高清不卡| 久久国产日韩欧美| 亚洲成人av综合| 六月丁香婷婷色狠狠久久| 91产国在线观看动作片喷水| 国产97免费视频| 成人羞羞网站入口| 国产视频丨精品|在线观看| 成人在线短视频| 国产成人精品一区二区三区视频 | av无码一区二区三区| 亚洲美女色播| 欧美午夜电影在线播放| 国产淫片免费看| 国产第一页在线| 亚洲精品日韩专区silk| 一区二区在线高清视频| av中文资源在线| 久久久久久免费毛片精品| 国产欧美一区二区三区另类精品 | 国产亚洲欧美aaaa| 精品黑人一区二区三区观看时间| 日韩免费精品| 欧美一区二区在线视频| 国产一区二区在线观看免费视频| 国产精品4hu.www| 欧美亚洲一区二区三区四区| 91人人澡人人爽人人精品| 欧美黑人粗大| 在线视频国内一区二区| 国产精品天天av精麻传媒| 在线成人av观看| 91精品福利在线| 日韩免费高清在线| a∨色狠狠一区二区三区| 欧美性一区二区| 伊人国产在线视频| 日韩黄色三级在线观看| 91精品国产品国语在线不卡| 欧美高清精品一区二区| 亚洲国产一区二区三区网站| 欧美大胆人体bbbb| av黄色一级片| 蜜桃成人av| 在线视频日韩精品| 永久av免费网站| 亚洲特色特黄| 欧美怡春院一区二区三区| 加勒比在线一区| 麻豆精品视频在线观看视频| 91精品在线影院| 亚洲黄色在线播放| 久久综合久久综合九色| 日韩精品久久一区二区三区| 嫩草香蕉在线91一二三区| 一区二区在线观看av| 免费国产黄色网址| 亚洲电影有码| 日韩欧美国产成人一区二区| 日韩免费高清一区二区| 欧美精品一二| 欧美二区乱c黑人| 国产精品第5页| 精品夜夜嗨av一区二区三区| av日韩免费电影| 九色国产在线观看| 一区二区三区四区在线免费观看 | 久久99精品久久只有精品| 91热精品视频| 日韩精品视频无播放器在线看 | 久久久久久久国产视频| 亚洲一区二区伦理| 91九色国产在线| 日韩av成人| 国产精品三级视频| 久久久久久人妻一区二区三区| 欧美艳星kaydenkross| 91精品蜜臀在线一区尤物| 三级电影在线看| 亚洲精品中文字幕乱码| 日本久久91av| 欧美视频xxx| 中文字幕一区二区5566日韩| 国产不卡一区二区视频| 亚洲最大的免费视频网站| 亚洲精品456在线播放狼人| 青青草华人在线视频| 亚洲精品国产日韩| 成人自拍性视频| 国产女人在线视频| 五月婷婷色综合| aaa一级黄色片| 国产一区国产二区国产三区| 亚洲18私人小影院| 朝桐光av在线一区二区三区| 国产精品色哟哟| 老头吃奶性行交视频| 女同一区二区三区| 欧美美女操人视频| 国产美女无遮挡永久免费| 久久久精品中文字幕麻豆发布| 精品国产av无码一区二区三区 | 狠狠色噜噜狠狠色综合久| av香蕉成人| 欧美日韩免费一区二区三区视频| 一区二区三区免费在线观看视频| 欧美日韩精品一本二本三本| 国产精品爽黄69天堂a| 欧美高清电影在线| 婷婷久久综合九色综合伊人色| 亚洲天堂小视频| 亚洲综合婷婷| 91视频九色网站| 黄网站免费在线播放| 欧美性一级生活| 久久日免费视频| 日本成人在线不卡视频| 日本一区二区在线视频观看| gay欧美网站| 亚洲欧美一区二区三区久久| 五月天综合激情网| 91尤物视频在线观看| 国内精品视频一区二区三区| 伊人久久影院| 欧美精品激情在线| 人成网站在线观看| 欧美日韩国产在线| 2025中文字幕| 亚洲二区精品| 久久精品五月婷婷| 中文字幕资源网在线观看免费| 亚洲精品小视频在线观看| 久草手机在线视频| 国产午夜亚洲精品羞羞网站| 国产熟人av一二三区| 日本不卡电影| 亚洲淫片在线视频| 欧洲精品二区| 亚洲国产精品一区二区久| 91九色丨porny丨肉丝| 91在线精品一区二区| 亚洲视频在线观看网站| 亚洲亚洲精品三区日韩精品在线视频| 3d性欧美动漫精品xxxx软件| 在线观看国产精品淫| 97人妻一区二区精品免费视频 | 成人毛片18女人毛片| 久久久久久久性| av天堂永久资源网| 色综合咪咪久久网| 国产富婆一区二区三区 | 精品国产福利视频| 白白色免费视频| 久久精品国产一区二区三 | 久久精品二区| 欧美va在线观看| 麻豆国产va免费精品高清在线| 亚洲精品人妻无码| 一本到不卡免费一区二区| 亚洲怡红院在线观看| 成人高清视频在线| 久久精品视频91| 欧美一区二区三区另类| 久久亚洲免费| 4438五月综合| 97热精品视频官网| 色老头视频在线观看| 精品欧美乱码久久久久久| 久久久精品毛片| 亚洲精品日日夜夜| 99久久人妻无码精品系列| 国产一二精品视频| 免费观看成人在线视频| 国产精品扒开腿做爽爽爽软件| 欧美高清一区二区| 国产日韩一区二区三免费高清| 91sao在线观看国产| 成人在线免费看片| 亚洲日韩欧美视频| 丰满人妻av一区二区三区| 在线观看中文字幕不卡| 中文字幕一区二区精品| 99热国产在线观看| 亚洲女性喷水在线观看一区| 美女脱光内衣内裤| 高清国产一区二区| 一区二区免费av| 久久精品一区| 国产主播自拍av| 欧美激情第二页| 亚洲一卡二卡三卡四卡无卡网站在线看| 成人三级av在线| 成人在线国产精品| 视频精品导航| 日本不卡免费高清视频| 国产桃色电影在线播放| 久久综合久中文字幕青草| 国产福利电影在线| 日韩精品视频在线免费观看| 亚洲精品字幕在线观看| 3d动漫精品啪啪1区2区免费| 丁香社区五月天| 黑人巨大精品欧美一区免费视频 | 色婷婷综合久久久中文一区二区| 精品在线视频免费| 亚洲免费资源在线播放| 成人黄色短视频| 国产精品乱码一区二区三区软件| av小说在线观看| 久久一区二区三区国产精品| 老司机免费视频| 成人av免费在线观看| 99国产精品免费视频| 国产成人综合在线| 999热精品视频| 国产乱一区二区| 久久久精品视频国产| 国内精品久久久久影院一蜜桃| 香蕉视频禁止18| 麻豆91精品视频| 午夜xxxxx| 国产成人免费视频| 国产艳妇疯狂做爰视频| 国产91丝袜在线播放九色| 免费欧美一级片| 岛国av在线一区| bl动漫在线观看| 久久这里只有精品首页| 日韩精品卡通动漫网站| 久久精品夜夜夜夜久久| 亚洲一区二区自偷自拍 | 尤物视频在线观看国产| 五月天欧美精品| 欧美日韩一二三四区| 在线欧美小视频| 中文字幕精品在线观看| 综合在线视频| 亚洲精品日韩av| 亚洲一区电影| 精品亚洲第一| 精品国产一区二区三区四区| 一区二区在线观看网站| 欧美高清不卡| 日韩免费视频播放| 日本不卡一二三区黄网| 亚洲理论中文字幕| 成人小视频在线| 在线观看日本中文字幕| 国产精品美女久久久久久2018 | 一区二区电影| 日韩精品一区在线视频| 天堂成人国产精品一区| 国产精品久久久久久9999| av在线不卡免费看| 九九热免费在线| 亚洲一卡二卡三卡四卡| 中文人妻av久久人妻18| 欧美一区二区三区影视| 无码国精品一区二区免费蜜桃| 日韩精品免费视频| 素人av在线| 国内揄拍国内精品| 国产精成人品2018| aa日韩免费精品视频一| 精品国产午夜| 国产美女永久无遮挡| 久久久成人网| 亚洲欧美日韩中文字幕在线观看| 久久久久国产成人精品亚洲午夜| 日韩激情综合网| 色94色欧美sute亚洲线路一久| 国产手机av在线| 亚洲欧美国产日韩中文字幕| av网站导航在线观看免费| 欧美在线欧美在线| 一区二区亚洲视频| 台湾成人av| 一本久道久久综合婷婷鲸鱼| 在线不卡一区二区三区| 96av麻豆蜜桃一区二区| 欧美激情精品久久久久久免费| 日韩欧美中文免费| 性生活三级视频| 国产亚洲a∨片在线观看| av在线不卡免费| 91亚洲精品久久久久久久久久久久| 天天久久夜夜| www国产无套内射com| 久久机这里只有精品| 精品无码一区二区三区| 亚洲一二三四久久| 99在线无码精品入口| 中文字幕亚洲无线码a| 校园春色亚洲| 精品噜噜噜噜久久久久久久久试看 | 性活交片大全免费看| 国产精品免费aⅴ片在线观看| 男人的天堂一区| 欧美电影免费观看完整版| 日本高清在线观看wwwww色| 欧美怡红院视频一区二区三区| eeuss鲁片一区二区三区| 成年人黄色在线观看| 男女男精品视频网| 欧美性受xxxx黑人| 一本大道久久a久久综合| 天天操天天插天天射| 欧美国产日韩精品| 日韩08精品| 欧洲金发美女大战黑人| 国内欧美视频一区二区| 黄色录像二级片| 欧美丰满高潮xxxx喷水动漫| 在线观看麻豆蜜桃| 国产精品久久久久久五月尺| 欧美伦理在线视频| 久久久久狠狠高潮亚洲精品| 91麻豆文化传媒在线观看| 欧美一区二区三区四| 日韩精品中文字幕久久臀| 成人免费短视频| 日本不卡一区二区三区视频| 老司机亚洲精品| 久久久久久久久久久国产精品| 欧美日韩在线视频一区| 你懂的好爽在线观看| 国产成人精品久久| 精品久久久久久久久久久下田| 手机看片福利日韩| 国产精品福利av| 国产日韩欧美一区二区东京热| 久久视频免费观看| 日本免费一区二区三区视频| 57pao精品| 国产露脸国语对白在线| 国产亚洲精品一区二555| 欧美国产日韩电影| 一区二区三区欧美成人| 国产中文字幕精品| 久久精品国产亚洲av香蕉| 亚洲国产小视频| 成人黄色免费短视频| 亚洲色图自拍| 国产在线精品一区二区| 国产污片在线观看| 亚洲久久久久久久久久| 成人在线中文| 成人一级生活片| 久久精品视频在线免费观看| 中文字幕人妻互换av久久| 久久国产精品影视| 黄色成人美女网站| 精品免费国产一区二区| 亚洲少妇中出一区| 天堂中文在线看| 国产日韩中文字幕| 国产在线欧美| 欧美多人猛交狂配| 欧美精选午夜久久久乱码6080| 麻豆av在线免费观看| 欧美精品一区在线发布| 国精产品一区一区三区mba视频 | 一级做a爰片毛片| 精品婷婷伊人一区三区三| 四虎av在线| 五月婷婷一区| 成人的网站免费观看| 免费在线不卡av| 久久久久久久久久久久久久久久久久av| 蜜桃一区二区三区| 深爱五月综合网| 色先锋资源久久综合| 1区2区在线观看| 日韩电影在线播放| 高清不卡一区二区| 中文字幕久久久久久久| 久久久久免费av| 亚洲激情 欧美| 51精品久久久久久久蜜臀| 欧美一区久久久|