(转)Facebook如何提高软件质量?
劉彪是微軟測試技術團隊的一名軟件設計工程師,他在自己的博客上分享了Facebook如何提高軟件質量的原則、手段和背后的原因。
在文章開頭,劉彪指出:
雖然facebook已經早已不是創業公司,但是不難看出它在產品研發和質量控制仍然保持著創業公司的風格。
他提到,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質量控制中引以為豪而且倍受矚目的的一點:
對于專職測試工程師,劉彪的看法是:
專職測試工程師是個非常模糊的結論。尤其現在我們對產品質量控制方法的不斷演變和提高,“測試”的概念不僅僅是指找bug了,所有圍繞提高產品質量的工作都是測試。頭銜上有沒有“測試”不重要,有沒有“測試”崗位不重要,重要的是如何有效保證和提高產品質量。
劉彪曾在多個技術大會上做過微軟相關開發技術和流程的演講,同時也主編了《詳解Windows Azure云計算平臺》一書,在他的博客中,還分享了Amazon、Google和微軟如何提升軟件質量,感興趣的讀者可以移步一觀。
轉載于:https://www.cnblogs.com/s021368/archive/2012/11/20/2778460.html
總結
以上是生活随笔為你收集整理的(转)Facebook如何提高软件质量?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS-Demo1:JavaScript实
- 下一篇: 虚函数和多态