提高軟件質量實踐:Facebook 是如何做測試的

發表于:2012-11-14來源:msdn作者:billliu點擊數: 標簽:Facebook
提高軟件質量實踐:Facebook 是如何做測試的. Facebook從04年的哈佛校園的學生項目在短短的7-8年的時間中快速增長為擁有10億用戶的世界上最大的社交網絡,又一次見證了互聯網創業成功的奇跡

  Facebook從04年的哈佛校園的學生項目在短短的7-8年的時間中快速增長為擁有10億用戶的世界上最大的社交網絡,又一次見證了互聯網創業成功的奇跡。同時它的產品研發流程也成為了眾多互聯網產品公司的追逐對象。今天我們來看一下facebook在產品質量控制方面的實踐。有人說,現在的 google象早期的微軟,現在的facebook象早期的Google. 我覺得無不道理。 雖然facebook已經早已不是創業公司,但是不難看出它在產品研發和質量控制仍然保持著創業公司的風格。在產品研發上,他們以小的研發團隊為核心,遵循幾個非常重要的原則:

  Be there from start to ship: 每個工程師自始至終負責產品。從最開始的一個想法,到開發原型,到內部審核,反饋,到產品開發,上線和維護,全部有工程師自己搞定。

  Show work early and often: facebook非??粗胤答?,尤其早期內部反饋。他們鼓勵工程師有了想法后,盡快開發出原型,盡快得到反饋。

  Gets your hands dirty: 動手去做,去實現。

  Don’t fall in love: 互聯網產品是不斷變化的,不需要等到把一個產品設計的很完美了才發布。

  為了遵循以上原則,facebook工程師采用以下質量控制手段來保證產品質量:

  開發對質量負責: 開發從設計,實現,測試,到部署都要自己做。其它做工具,流程的工程師通過開發工具和流程來幫助開發人員更為簡單方便地做測試,做部署和做監控。每個開發人員有自己單獨的測試環境,測試環境就是運行在開發本地機器上,部署非常簡單快速。測試環境用的是真實的用戶數據。

  持續集成和測試自動化:每周發布一次。星期天晚上,要發布的構建從主線上分支出來到發布分支,到星期二的中午如果沒有大的問題,就可以上線了。所有的測試運行控制在10分鐘以內,所以不需要考慮不運行哪些測試用例。運行所有測試用例。 (只是聽說,沒有經過考證。)

  內測 (dog food):發布之前,公司員工使用要發布的功能。2-3天之內可以有幾百個或上千個人在使用新功能。負責要發布功能的開發人員在星期天晚上到星期二中午之間會做大量的測試 (一邊上班,一邊刷微博,豈不是很爽 :) )。

  發布風險控制:新功能本身質量可能有問題,新功能也可能影響其它現有功能。為了減少或控制這些風險。Facebook開發了一整套完善的發布,控制,監控流程和工具。做到:1.測試通過后,產品質量基本有保證。2.即使有漏測的bug,只會影響很少量的用戶。3.及時監控到問題。4.及時修復。

  產品監控:監控產品的系統的運行狀態。

  Facebook之所以采取這種質量控制策略和它的產品特點密切相關:

  用戶對社交產品質量的容忍度相對較高。比如發微博,現在連不上,等一會在連接也可以,現在發布不出去可以等一會再發,粉絲數量統計有誤,沒有人太關心。其實facebook并不認為自己的質量差。他們認為產品的質量高低不是有多少個failed測試用例,有多少個bug來確定的,而是有用戶對質量的期望值來決定的。如果用戶對產品質量的期望值很高很高,一個bug漏掉了都會照成質量差的印象,用戶很有可能放棄使用。相反,如果用戶的期望值一般,100個bug漏掉了都不會影響用戶繼續使用。所以facebook產品發布的條件是滿足用戶對質量的期望值即可。

  相對寬松的產品發布周期。不想微軟或google很多產品已經在市場上,用戶對下一版本的發布時間和新增加功能的期望很高,這往往給產品開發組的壓力很大。Facebook基本沒有這個問題,它有適合自己的發布期限,不用受到外界干擾。

  產品發布和監控流程比較完善,即使有漏測的bug,對用戶的影響可以控制在最小而且可以及時發現及時修復。

  Facebook質量控制中引以為豪而且倍受矚目的就是“沒有專職測試工程師”。我這里需要專門討論一下:

  什么是“專職測

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97