摘要:并不是每個(gè)測(cè)試都可以用到生產(chǎn)中,但即使是失敗的測(cè)試也能幫助我們理解如何才能更好地改進(jìn)。當(dāng)有回應(yīng)返回后,我們就會(huì)更新按鈕。淺綠色的條柱是試驗(yàn)用戶的數(shù)量,黑綠色的條柱是實(shí)際被影響的用戶數(shù)。設(shè)備請(qǐng)求用于試驗(yàn)的數(shù)據(jù),服務(wù)器記錄它發(fā)出的回應(yīng)。
譯者注:本文來自 Facebook 工程師團(tuán)隊(duì)博客
兩年前,我們重寫了我們移動(dòng)端(iOS,Android)的應(yīng)用,使用了原生的開發(fā)棧(native development stacks)代替我們以前定制開發(fā)的 Web 棧(custom web-stack)。這給了我們?cè)陉P(guān)于項(xiàng)目在那里/怎樣下載、緩存、釋放等等方面一個(gè)更好的控制。它分別深入地和操作系統(tǒng)整合在一起,提供在底層調(diào)整修改所有系統(tǒng)的一整套工具。
測(cè)試是我們開發(fā)的一個(gè)重要部分,但在轉(zhuǎn)換到原生的之后,我們沒有了 A/B 測(cè)試的能力。并不是每個(gè)測(cè)試都可以用到生產(chǎn)中,但即使是失敗的測(cè)試也能幫助我們理解如何才能更好地改進(jìn)。失去的這部分能力變成了一個(gè)我們要應(yīng)對(duì)的挑戰(zhàn)。
A/B 測(cè)試要把我們的應(yīng)用移植到 iOS 和 Android 上,需要來自不同團(tuán)隊(duì)的人來進(jìn)行協(xié)作,每四周就要產(chǎn)生一個(gè)新的修復(fù)一些 bug 和帶有一些新特性的二進(jìn)制軟件包。在我們發(fā)布一些更新之后,對(duì)于我們很重要的事情是要去明白:
新特性的使用情況
bug 修復(fù)后的運(yùn)行情況和穩(wěn)定性
用戶界面改進(jìn)之后用戶是怎么使用這個(gè)應(yīng)用及在哪里花的時(shí)間多
為了去了解這些事情,我們需要一個(gè)移動(dòng)端進(jìn)行 A/B 測(cè)試的基礎(chǔ)組件,這個(gè)組件能讓我們的用戶分別使用不同版本的應(yīng)用(版本 A 和版本 B),這些版本在除某些特別需要測(cè)試的部分外,其他各層面都是一樣的。所以我們創(chuàng)造了 Airlock,一個(gè)可以讓我們比較不同版本應(yīng)用的度量數(shù)據(jù)(metric data)和進(jìn)行各種各樣測(cè)試的測(cè)試框架,這幫助我們決定采用那個(gè)版本或者后續(xù)如何迭代。
從一點(diǎn)一滴中建成我們盡可能從最簡單的試驗(yàn)開始:使用已有的 Web-Stack A/B 分箱(binning system)系統(tǒng)。我們構(gòu)造了一個(gè)測(cè)試:把聊天按鈕換成文字"Chat"的試驗(yàn)。當(dāng)應(yīng)用啟動(dòng)的的時(shí)候,它會(huì)發(fā)送一個(gè)到我們服務(wù)器上的網(wǎng)絡(luò)請(qǐng)求,詢問這個(gè)試驗(yàn)的參數(shù)。當(dāng)有回應(yīng)返回后,我們就會(huì)更新按鈕。一些員工會(huì)有按鈕,另一些員工會(huì)有文字"Chat"。我們期望這僅僅會(huì)影響信息發(fā)送的數(shù)量(看起來不會(huì)太多),其他的東西不會(huì)受影響。
曝光日志當(dāng)這個(gè)版本的應(yīng)用公開發(fā)布了,我們等待數(shù)據(jù)能穩(wěn)定下來,然后發(fā)現(xiàn)看到文字"Chat" 的版本會(huì)更熱衷于使用這個(gè)應(yīng)用。是不是我們發(fā)現(xiàn)了什么秘密,或者誘惑般的魔法?沮喪地說,并不是。我們遇到了很多 bug,其中一個(gè)很大的問題是,某個(gè)組件并不能正確地緩沖數(shù)值。由于這是個(gè)大的系統(tǒng),基礎(chǔ)設(shè)施(the infrastructure)必須要是 "防彈的",不然收集到的數(shù)據(jù)就沒用了。
從服務(wù)器開始的數(shù)據(jù)管道決定某個(gè)人的版本是屬于那種變體的。然后,數(shù)據(jù)就會(huì)被打包,接著發(fā)送到設(shè)備上,設(shè)備分析返回的信息然后保存。接著,這個(gè)值會(huì)被用于重新配置 UI,然后最終在屏幕上顯示。問題是我們?cè)谝揽糠?wù)器對(duì)我們數(shù)據(jù)分析的分類。一個(gè)簡單的 bug 就導(dǎo)致了一大群用戶在使用有別于我們期望的的變種版本。服務(wù)器還在堅(jiān)持:"我告訴了設(shè)備去顯示字符串!" 但在某處地方這個(gè)語句變得有點(diǎn)令人模糊(一個(gè)在客戶端存貯邏輯上的 bug)。
一個(gè)試驗(yàn)的部署圖:
上面圖表展示了一個(gè)試驗(yàn)的部署。淺綠色的條柱是試驗(yàn)用戶的數(shù)量,黑綠色的條柱是實(shí)際被影響的用戶數(shù)。我們可以看到,服務(wù)器和設(shè)備的數(shù)據(jù)區(qū)別還是很大的: 在第一天,大多數(shù)用戶收到這個(gè)配置,但大多數(shù)用戶沒有留意到我們?cè)囼?yàn)。當(dāng)問題不僅僅是設(shè)備收到返回的數(shù)據(jù),而需要加上我們的數(shù)據(jù)分析需要知道什么時(shí)候收到信息,然后把它正確地顯示在 UI 上時(shí),問題變得更大了。即使信息能正確地到達(dá),在 UI 不正確時(shí)也有一個(gè)延遲。我們通過
添加雙向握手(wo-way handshake)解決了這個(gè)問題。設(shè)備請(qǐng)求用于試驗(yàn)的數(shù)據(jù),服務(wù)器記錄它發(fā)出的回應(yīng)。因此,即使某用戶沒有看到我們想讓他看到的,我們?nèi)匀豢梢赃M(jìn)行正確性分析(但也必須意識(shí)到選擇性偏差(selection bias)的問題,還有分發(fā)時(shí)由于某些原因變得不平均)。
在進(jìn)行了幾個(gè)月這樣的"課程"之后,我們必須將支持兩個(gè)試驗(yàn)的系統(tǒng)升級(jí)支持整個(gè)應(yīng)用的系統(tǒng)。這個(gè)促使 Airlock 發(fā)生變革的試驗(yàn)是以前我們?cè)胫M(jìn)化和簡化我們應(yīng)用內(nèi)的導(dǎo)航模塊而開發(fā)的。在經(jīng)歷這幾個(gè)月之后,我們把這個(gè)應(yīng)用改變了很多,你可以去下載 Facebook for iPhone 來體驗(yàn)一下,這里面很多是測(cè)試的功勞。
隨后,Airlock 被用于支持更多的試驗(yàn),其請(qǐng)求的參數(shù),數(shù)據(jù)的記錄、客戶端計(jì)算等等都快速地變多。Airlock 充分地被用于測(cè)試原生的應(yīng)用,使得我們的應(yīng)用運(yùn)行得前所未有的輕快,伴隨著測(cè)試的自由,再測(cè)試,和評(píng)估測(cè)試結(jié)果,我們期望能建造更好的測(cè)試和創(chuàng)造更好的用戶體驗(yàn)。
原文:Airlock - Facebook"s mobile A/B testing framework
翻譯:Segmentfault
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/8684.html
摘要:這一新程序被稱為,是一個(gè)完整的深度學(xué)習(xí)系統(tǒng),它的架構(gòu)已經(jīng)嵌入手機(jī)中。因此,移動(dòng)設(shè)備環(huán)境對(duì)機(jī)器學(xué)習(xí)系統(tǒng)提出了機(jī)遇和挑戰(zhàn)。展望下一步,加上這樣的研究工具鏈,是的機(jī)器學(xué)習(xí)產(chǎn)品的核心。 風(fēng)格遷移一直是機(jī)器學(xué)習(xí)領(lǐng)域內(nèi)的一項(xiàng)重要任務(wù),很多研究機(jī)構(gòu)和研究者都在努力打造速度更快、計(jì)算成本更低的風(fēng)格遷移機(jī)器學(xué)習(xí)系統(tǒng),比如《怎么讓你的照片帶上藝術(shù)大師風(fēng)格?李飛飛團(tuán)隊(duì)開源快速神經(jīng)網(wǎng)絡(luò)風(fēng)格遷移代碼 》、《谷歌增強(qiáng)型...
摘要:移動(dòng)測(cè)試就是指把這個(gè)試驗(yàn)用來對(duì)比優(yōu)化移動(dòng)應(yīng)用。移動(dòng)端測(cè)試應(yīng)該測(cè)試什么對(duì)于移動(dòng)端,幾乎所有都可以并應(yīng)該進(jìn)行測(cè)試。對(duì)消極和積極影響的權(quán)衡評(píng)估會(huì)是優(yōu)秀測(cè)試平臺(tái)的重要組成部分。那么,準(zhǔn)備好開始你的第一個(gè)移動(dòng)端測(cè)試了嗎本文作者吆喝科技 做A/B測(cè)試的理由很多,F(xiàn)acebook、Google、BAT、滴滴、美團(tuán)……大公司都在做。但知道它們?yōu)槭裁醋觯吭趺醋觯緼/B測(cè)試有哪些方法論來指導(dǎo)最近實(shí)踐,讓我...
摘要:前端每周清單半年盤點(diǎn)之與篇前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點(diǎn)分為新聞熱點(diǎn)開發(fā)教程工程實(shí)踐深度閱讀開源項(xiàng)目巔峰人生等欄目。與求同存異近日,宣布將的構(gòu)建工具由遷移到,引發(fā)了很多開發(fā)者的討論。 前端每周清單半年盤點(diǎn)之 React 與 ReactNative 篇 前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點(diǎn);分為...
摘要:數(shù)據(jù)管理及性能優(yōu)化統(tǒng)一管理數(shù)據(jù)這一部份算是重頭戲吧。重復(fù)渲染導(dǎo)致卡頓這套的東西在家校群頁面上用得很歡樂,以至于不用怎么寫都沒遇到過什么性能問題。但放到移動(dòng)端上,我們?cè)诹斜眄撝貥?gòu)的時(shí)候就馬上遇到卡頓的問題了。列表頁目前的處理辦法是將值換成。 本文來自于騰訊bugly開發(fā)者社區(qū),非經(jīng)作者同意,請(qǐng)勿轉(zhuǎn)載,原文地址:http://dev.qq.com/topic/57908... 最近一個(gè)季度...
摘要:通過對(duì)比各項(xiàng)目過去個(gè)月在上新增數(shù)量,來評(píng)估其在年度的受關(guān)注程度,進(jìn)而選出年度領(lǐng)域崛起的明星項(xiàng)目。也許正因?yàn)樯鲜鲎詈笠稽c(diǎn),在中國擁有大量的擁躉。不僅被中國最大的電商平臺(tái)阿里巴巴使用,也獲得了與這些公司青睞。 共 4741 字,讀完需 8 分鐘,速讀 2 分鐘。我有幸參與了該項(xiàng)目的部分中文版翻譯、校對(duì)工作,感謝 Sacha Grief,Micheal Ramberu 的統(tǒng)計(jì)整理,以及 Fr...
閱讀 2667·2021-11-23 09:51
閱讀 3255·2021-11-22 14:44
閱讀 4589·2021-11-22 09:34
閱讀 5135·2021-10-08 10:14
閱讀 2459·2021-09-22 15:47
閱讀 3519·2021-09-22 15:40
閱讀 1520·2019-08-30 15:44
閱讀 1630·2019-08-28 18:23