Facebook如何提高軟體質量
原文出處: http://www.infoq.com/cn/news/2012/11/Facebook-on-software-quality
以小的研發團隊為核心,遵循幾個非常重要的原則:
- Be there from start to ship: 每個工程師自始至終負責產品。從最開始的一個想法,到開發原型,到內部稽核,反饋,到產品開發,上線和維護,全部有工程師自己搞定。
- Show work early and often: facebook 非常看重反饋,尤其早期內部反饋。他們鼓勵工程師有了想法後,儘快開發出原型,儘快得到反饋。
- Gets your hands dirty: 動手去做,去實現。
- Don’t fall in love: 網際網路產品是不斷變化的,不需要等到把一個產品設計的很完美了才釋出。
- 開發對質量負責: 開發從設計,實現,測試,到部署都要自己做。其它做工具,流程的工程師通過開發工具和流程來幫助開發人員更為簡單方便地做測試,做部署和做監控。每個開發人員有自己單獨的測試環境,測試環境就是執行在開發本地機器上,部署非常簡單快速。測試環境用的是真實的使用者資料。
- 持續整合和測試自動化:每週釋出一次。星期天晚上,要釋出的構建從主線上分支出來到釋出分支,到星期二的中午如果沒有大的問題,就可以上線了。所有的測試執行控制在10分鐘以內,所以不需要考慮不執行哪些測試用例。執行所有測試用例。 (只是聽說,沒有經過考證。)
- 內測 (dog food):釋出之前,公司員工使用要釋出的功能。2-3天之內可以有幾百個或上千個人在使用新功能。負責要釋出功能的開發人員在星期天晚上到星期二中午之間會做大量的測試 。
- 釋出風險控制:新功能本身質量可能有問題,新功能也可能影響其它現有功能。為了減少或控制這些風險。Facebook開發了一整套完善的釋出,控制,監控流程和工具。做到:1.測試通過後,產品質量基本有保證。2.即使有漏測的bug,只會影響很少量的使用者。3.及時監控到問題。4.及時修復。
- 產品監控:監控產品的系統的執行狀態。
Facebook之所以採取這種質量控制策略和它的產品特點密切相關:
- 使用者對社交產品質量的容忍度相對較高。比如發微博,現在連不上,等一會在連線也可以,現在釋出不出去可以等一會再發,粉絲數量統計有誤,沒有人太關心。其實Facebook並不認為自己的質量差。他們認為產品的質量高低不是有多少個failed測試用例,有多少個bug來確定的,而是有使用者對質量的期望值來決定的。如果使用者對產品質量的期望值很高很高,一個bug漏掉了都會照成質量差的印象,使用者很有可能放棄使用。相反,如果使用者的期望值一般,100個bug漏掉了都不會影響使用者繼續使用。所以facebook產品釋出的條件是滿足使用者對質量的期望值即可。
- 相對寬鬆的產品釋出週期。不像微軟或google很多產品已經在市場上,使用者對下一版本的釋出時間和新增加功能的期望很高,這往往給產品開發組的壓力很大。Facebook基本沒有這個問題,它有適合自己的釋出期限,不用受到外界干擾。
- 產品釋出和監控流程比較完善,即使有漏測的bug,對使用者的影響可以控制在最小而且可以及時發現及時修復。
- 什麼是“專職測試工程師”? 頭銜裡面有“測試”的工程師?專門找bug的工程師?專門做質量控制的工程師?等等。
- Facebook的確沒有帶“測試”頭銜的工程師,也沒有專門執行產品找bug的工程師。每個人都是開發工程師。但是他們的實際工作有區別,有的專門做面對使用者的產品,有的專門做測試,開發工具,有的專門做產品的構建和持續整合工具和流程,有的專門做釋出和監控的工具和流程。如果按照傳統意義上的開發和測試的劃分的話,除了第一類外,其他都可以看做專職測試工程師。
- Facebook不是惟一一個沒有帶“測試”頭銜工程師的公司,很多軟體公司都沒有,比如Twitter。
- 很多人把專職測試工程師指專門執行產品找bug的工程師。微軟在2005年去掉STE (software test engineer )崗位,就已經沒有這一型別的專職測試工程師了。
相關文章
- 如何保證軟體質量
- 如何提高Sprint Review的質量?View
- 如何應用六西格瑪培訓提高開發手機軟體質量?
- 如何提高企業資料質量
- 如何做好質量管理、提高研發的程式碼質量?
- 文章質量檢測工具怎麼提高文章質量?提高質量有什麼方法?
- 推薦5款提高工作效率和質量的軟體
- 想有效提高軟體產品質量,第三方軟體測評機構推薦
- 方案:軟體質量保證
- 如何加快專案進度提高專案質量
- 軟體測試——軟體安全質量的保證
- 軟體質量屬性真題
- 如何利用六西格瑪提高個人生活質量?
- 如何透過靜態分析提高iOS程式碼質量iOS
- 軟體測試對軟體質量有哪些影響?
- 軟體測試學習教程—軟體測試質量
- 軟體產品質量如何提升?專業軟體測試公司幫您解決
- 只有不容忍才能提升軟體質量
- 軟體測試對軟體質量的影響有那些?
- 軟體專案管理 8.1.軟體質量基本概念專案管理
- 如何提高Java程式碼質量-優雅的寫程式碼Java
- MES模賽思軟體質量工具更新
- 2022國產QMS質量管理軟體合集
- 軟體質量保障全流程實踐分享
- 軟體論文之論軟體質量保證及其應用
- 軟體專案管理 8.4.軟體專案質量計劃專案管理
- 軟體測試中影響軟體需求質量的因素有哪些?
- 軟體測試報告包含哪些內容?如何獲取高質量軟體測試報告?測試報告
- 如何提高紙質文件管理效率
- 萬字長文詳解如何使用Swift提高程式碼質量Swift
- 如何應用六西格瑪提高保險業服務質量?
- 製造企業如何依靠SAP ERP系統提高質量管理效率?
- 軟體測試學習教程——如何寫出高質量的缺陷報告
- 電子採購軟體如何提高企業效率?
- 服裝erp軟體如何提高企業利潤
- 軟體質量一級屬性科技論文(1)
- 製藥企業常用質量管理軟體TrackWise概述
- [譯] 虛構問題,低質量軟體的根源