【轉】研發團隊中最合適的開發測試比是多少

做者 霍泰穩 發佈於 2010年11月18日 上午4時5分  
在上週六淘寶網和阿里巴巴B2B聯合主辦、InfoQ獨家社區支持的第二屆互聯網測試交流大會上,來自Google、Baidu、網易、騰訊、淘寶、阿里巴巴、FreeWheel等公司的測試經理分別分享了他們在測試領域的心得體會,原計劃500人的會場到會了800人。在講師交流環節,你們對"研發團隊中最合適的開發測試比是多少"話題作了討論。(*編輯注:*方便起見,本文對各測試經理均使用花名,請勿對號入座!)php

郭靖是某大型網上商城測試團隊的負責人,自2003年加入公司後就組建了該網站的測試團隊,推進團隊進行性能測試、自動化測試、接口測試等。隨着團隊的壯大,他遇到的比較頭疼的問題是一個研發團隊中開發測試比究竟多少比較合適?根據他的瞭解,Google的開發測試比是10比1,微軟的比例是1比3,你們都作得很好。在長時間的糾結以後,他問本身,這個比例真的很重要嗎?其實在他看來,你們關注的是開發測試人員的技能、效率、成本和質量等維度,而不是某個具體的比例。同時,他也疑問可否有一種合適的手段來講清楚某個研發團隊最合適的開發測試比是多少。算法

來自另外一家知名互聯網公司的測試經理,也是負責整個公司測試框架的楊康談到本身對這個問題的理解:公司高層一般會給質量部定一些目標,要求你的人員配比是多少。但個人理解是,很難定義和衡量質量部的工做成果。對於高層來講,給質量部最有力的一個施壓辦法就是人員配比,至於下一步你怎麼去作,你本身去想辦法。坦白來講,高層是但願能有一個手段,讓質量部的人員能儘量快地完成工做。在開始的時候,咱們整個研發團隊也有過1比2或者1比3的時候,高層就不斷地要求咱們下降開發測試人員比。可是如今你們已經都不提這個事情了,由於高層認爲咱們如今作的還能夠,對產品的貢獻還不錯,如今提的更可能是如何更好地提升質量。
託雷一樣來自一家大型互聯網公司,也是測試團隊的負責人,就楊康提到的和公司高層相關的問題,他一樣深有感觸:在我加入公司後,個人直接老闆換過幾回。每次新的老闆上任,都會問這些問題,我都須要從新給他講一遍咱們是如何作測試的,開發測試比是多少等等。作了一兩年以後,他基本就不問了,可是不幸地是老闆又換了,第一件事又是來問這個問題。而後本身就將3年前相似的話再說一遍。我想你們都瞭解這種狀況,有時主管測試的高層也許是測試領域外的,可能不少是開發出身,不必定真得懂測試。因此我就想可否找到一種比較科學的方法,像性能測試同樣,能大致看到它的瓶頸,看到它的容量規劃到什麼樣的程度等。
來自新創互聯網公司的測試經理歐陽克從"存在即合理"的哲學角度分享了本身的觀點:開發測試比其實反映的是公司內部開發和測試結構的關係,有的公司開發人員多一些,測試人員少一些,這個比例相應來講是最低的。而有的公司比較依賴於QA,可能開發測試比就高一些。因此不一樣的公司,差別確定會比較大。可能沒有一種合適的辦法能數清楚這個事情。個人見解就是存在就是合理。
對Google研發團隊比較有了解的洪七公介紹了Google開發測試比10比1的背景,一樣認爲開發測試比不是最重要的,最重要的是要根據公司的狀況肯定合適的比例:我很是贊成郭靖的觀點,其實高層常常的問題就是人員配比,由於這個問題你們都理解,而像缺陷比率這些問題,有些人可能根本就不懂。並且人員配比和成本很是相關,老闆都關心這個問題。因此說和高層溝通的時候,必定不能糾纏於這個問題,你要告訴他人員比例不是最關鍵的問題。若是他非要有個標準逼着你這樣去作的話,你要給他講其餘公司的人員配比的背景。
好比Google的開發測試比是10比1,實際上是有前提條件的:第一,測試部門並非要進入全部的項目:,若是你的項目作得太糟,程序寫得太爛,測試人員壓根就不會進去;第二,測試人員有絕對的權力控制本身的資源;第三是開發工程師本身要作大量的測試。若是沒有這三個條件,你怎麼去談10比1?根本是不可能的事情。因此你必定要告訴老闆,開發測試比不是最重要的,咱們要根據公司的具體狀況肯定合適的比例。
究竟某個研發團隊的開發測試比多少合適,這和團隊的開發、測試工程師的素質也有密不可分的關係,一燈大師從你們對測試的偏見,結合Google對開發和測試的理解,解釋說要壓縮開發測試比,可行的辦法是提升測試工程師的素質:10比1只是一個量的問題,其實背後還有一個質的問題,即人員素質的問題。在不少傳統軟件公司中,不少測試人員的素質不是很是高,好比你們一般說的觀點就是"你作不了開發就去作測試"。像這種狀況必需要扭轉。在咱們公司,如今就特別重視提升測試人員的技能、素質,同時也一直在提升招聘門檻,增強對測試人員的培養,包括調教開發人員配合作單元測試等。因此說Google的研發比例是10比1,這裏面不能忽視的一點是Google的研發人員和測試人員素質都很高,尤爲是研發工程師對單元測試和代碼質量要求很是高。而我們其餘的一些互聯網行業的研發、測試人員可能就沒有這麼高的素質,這種狀況下只能採起人海戰術。
讀者朋友,您的公司的開發測試比是多少?您對這一話題的見解是什麼?歡迎跟帖討論。瀏覽更多InfoQ中文站的測試內容,請點擊測試專題安全

4 條回覆


測試就是專業化架構

  1. 2010年11月18日 下午6時21分 發表人 Shi Liang
    我也在交流會現場,惋惜只能觀摩"華山論劍",沒能發出"本身的聲音"。
    Cleverman是微軟美國的SDET,他有跳槽去Facebook的想法。可是,Facebook沒有測試職位,他很感慨,也引起了許多討論:bbs.51testing.com/viewthread.php?tid=294789
    個人觀點是:軟件開發老是須要測試工做的,有些團隊中開發者會完成測試工做,所以不須要專職的測試工做者。
    既然開發也能順手作測試,爲何還須要專職的測試人員呢?答案是"專業化"。軟件開發的趨勢是"通才":全部人可以作全部工做,可是總有些工做仍是要專業人士來作。例如安全測試,沒有至關長時間的積累,沒辦法得到成果。許多測試是須要長時間積累才能精通,才能在短期內達到高質量的要求。
    在高競爭性行業,趨勢都是相似的。在通常複雜性的領域,團隊對員工的要求就是通才:你可以寫代碼、寫測試、維護構建、當構建完畢以後自動運行你寫的測試(單元、集成、系統、驗收測試)。在少許的高複雜性領域,須要專家來處理特殊問題。所以技術員工的發展方向是"通才型專家"。
    測試的獨特價值在於在真實的環境中真實的使用,這會致使許多意想不到的狀況。那究竟是誰來執行呢?對於許多小團隊而言,執行者就是開發者,這是最經濟的。對於像Office+Sharepoint這麼龐大的系統,可能須要聯合若干個團隊的測試人員來作真實環境的測試。設立測試職位,在經濟上是划算的。因此,若是專職的測試人員不能提供相應價值,他們的職位就會被取消或壓縮。
    互聯網的高競爭性要求整個團隊承擔質量責任,所以下降了對專職的測試人員的需求。這實際是好事,你們一塊兒開發產品、一塊兒保障質量,這樣最經濟、最迅速(Google和Facebook的水平)。在這樣的環境中,測試人員要向專家發展,提供特殊的價值。 
  2. 誰須要測試人員?

2010年11月19日 下午11時17分 發表人 aaron zhang
我也參加了交流會。在參加以前,我一直在問3個問題:"測試是什麼?誰須要測試人員?測試人員的核心價值是什麼?",我也嘗試按照個人理解進行了回答。下面是個人理解,有不對或不一樣意見的地方歡迎指正。
1. 測試是什麼? 測試是一種手段,是拿着度量標準去嘗試。誰須要用測試這種手段? 使用產品會須要經過測試評判產品的質量。
2. 誰須要測試人員? 一個產品有兩類用戶,一類是產品最終使用者,一類是產品維護者(或開發者);產品的最終使用者和產品維護者須要評判產品質量,須要找"質量代理人"-即測試人員。
3. 測試人員的核心價值是什麼? 核心價值在於保證用戶的利益,最有價值的工做是協助用戶制定適合的度量標準。 
框架

  1. 彷佛諸位把測試理解的有點膚淺了.

2010年11月20日 上午7時58分 發表人 chen Joseph
研發人員須要測試,可是測試團隊仍是須要存在,至於比例是多少,跟公司產品性質有關。產品測試偏重功能的,測試人員就少一些,產品偏重分佈式、集羣的,測試人員就多一些。企業產品線越大,可能每一個部門的測試人員比例都不一樣,不能一律而論。
測試作的工做可能是QC(雖然大多數IT公司都叫QA),QC的工做針對產品自己的,而不是針對過程改進的。一個企業的測試人員應該雙向關注,QC/QA的工做都承擔的話,就必不可少。
針對軟件行業,過程改進、質量體系的正常運行(QA)的人員比例遠不如QC。
另外不少公司的測試人員素質,和開發人員是等同的。測試必須存在,由於開發人員永遠達不到測試人員所起到的功效,你能夠說研發也能夠作單元測試、能夠作功能測試自動化測試、能夠作TDD,可是呢,研發作測試,永遠不能起到一個測試人員對於產品缺陷上的見解,由於每每人很難看到本身的Bug,本身過程當中的缺陷。即便Code review也好,自動化工具也好,這些都是工具,遠不能達到測試人員所起到的做用。
沒有任何人能保證寫的code沒有Bug,即便Google工程師也同樣;沒有任何人可以在研發工做徹底知足的同時,也可以徹底知足測試工程師的責任,由於世界上沒有完人。
因此,說研發替代測試,就是專業化的表現,是有失偏頗的。 
分佈式

  1. 由各類屬性決定吧

2010年11月23日 下午8時48分 發表人 Denny Ye
我是開發人員,在我作過的項目中,有些緊迫改動我很擔憂它的質量問題。一部分緣由是時間緊,沒有太多的單元和集成測試,對本身的代碼不怎麼放心(真的是很緊,不是爲本身寫少許單元測試辯護);另外一部分緣由是項目原本就很重要,容不得太多偏差。但擔憂歸擔憂,站在局外看,這樣的項目,就是一個開發配十個測試(或是開發與測試時間比例)都不能保證很高質量。咎其緣由是由於開發人員本身的單元測試不完備,在最容易發現bug的地方不約束,而讓測試人員去撥開層層厚夾去找bug,不管難度,深度,時間等都不是有效的彌補措施。
因此在討論開發測試比的時候更應該回頭去看看一個bug在不一樣階段的發現成本。單元測試充分完備的代碼,少許的集成測試都能保證它的可靠性。反之,只能問天了。
在我看來決定開發測試比的重要屬性有這些:
1. 開發和測試人員的經驗
2. 開發過程當中是否有充分完備的單元測試
3. 項目的重要性 (平臺系統仍是UI相關的項目等)
4. 對開發代碼是否有code review
等等
Google的項目大部分是基於平臺,算法,架構等,而後由這些基礎平臺構建起用戶能夠看到的應用。這些項目更強調開發人員的素質與專業性。而像Windows這樣一個平臺,極多的用戶交互,更須要測試人員從用戶的角度查找問題(傳言MS在測試人員中有專業的白盒code review人員,待驗證)。工具

相關文章
相關標籤/搜索