測試人員與開發人員的比例究竟多少是合理的?

資深測試發表於2018-04-26

在一些軟體大會上,人們常常會問這樣一個問題:測試人員與開發人員的比例究竟多少是合理的?而這樣的問題,很難直接給出一個答案。為什麼會有這樣的問題,可能來自於兩方面的壓力:

  • 許多公司領導總是希望得到一個合理的比例,然後按這個比例分配招聘的名額,或者設法縮小測試隊伍,減少開發成本。
  • 多數情況下,測試人員工作量大,比開發人員忙,所以想尋求一個資料,來說服其公司,多招些測試人員。

有些專家說,根據調查結果發現通常的比例是1個測試人員對3個開發人員。實際上,這樣的比例毫無意義。測試人員與開發人員的比例會受到很多因素的影響,因不同的業務、文化和產品而不同。如果不管公司的文化、產品的型別和責任定義等,一定要按照某個比例來分配測試人員與開發人員,這是武斷的做法,缺乏科學性。有兩個典型的例子能說明這個問題:

  • 微軟公司的測試人員與開發人員比例一般為1:1,甚至在Windows 2000開發團隊中,有1800個測試人員,900個開發人員,測試人員與開發人員比例為2:1。
  • 在Google (谷歌)公司,則測試人員與開發人員比例則很低,據谷歌公司的測試經理介紹,為1:10.

那為什麼呢?這裡主要是測試人員與開發人員工作範圍的定義,在這兩家公司差別挺大,在微軟,單元測試由測試人員(Software Development Engineer in Test, SDET)做, 相當於SDET再寫一套程式碼來測試開發人員寫的產品程式碼,其工作量不比開發人員低,另外,微軟開發的產品都是比較複雜的作業系統、伺服器軟體等,自然就需要很多的測試人員。而Google的單元測試和功能測試一般都是由開發人員自己來完成,測試人員主要提供自動化測試工具的支援。軟體開發人員進行了足夠的單元測試,單元測試的覆蓋度高達85%以上,軟體在交給測試人員時,在功能上基本沒有缺陷,這樣測試人員主要集中精力進行效能測試、負載測試、安全性測試等,而這些都是自動化工具來完成的,自然需要較少的測試人員。

另外,測試人員與開發人員還受所開發的產品型別、企業文化、專案環境、質量要求水平、開發人員或測試人員的自身素質等影響。例如:

  • 所開發的產品是作業系統、基礎平臺,和一般的客戶端軟體、簡單的Web應用系統,其測試需求、範圍和工作量都是不同的。如Windows作業系統要支援第3方各種應用程式、支援大量的API和各種硬體驅動程式等,還有相容DOS、32位/64位等應用程式,系統非常複雜、使用者操作也非常靈活,所以測試的工作量也大得多,需要大量測試人員的付出。
  • 軟體設計、程式碼的質量,也就是企業文化、開發人員的素質和能力等直接影響了軟體的階段性成果的質量,如果軟體構造質量很高,其迴歸測試範圍有限、重複測試的次數只有1~2次,而不是4~5次,結果,測試的工作量大大降低,測試人員數量隨之降低。
  • 例如,許多免費的網路應用產品總是將自己定位在Beta版,那麼,會降低質量水平,讓使用者試用,並幫助發現一些缺陷(因為免費,使用者也不能抱怨什麼),這樣的話,公司內部測試的努力會少多了。
  • 測試人員素質高,精兵強將,那麼人數就會少些;如果測試人員定位低、待遇低,就可能靠人海戰術,那麼人數就會多。
  • 在敏捷方法中,開發人員的主導作用比較明顯,測試人員對開發人員的比例會低些。如果採用測試驅動開發,測試人員對開發人員的比例會更低。這時,測試人員和開發人員的界限也變得模糊些。

當然,針對一個具體公司,流程、產品和文化等都定型了,可以根據自己的經驗、歷史資料等,定出一個合適的比例,如1:2、1:3等,都是可以的。如果一個軟體公司,硬要參考微軟、谷歌或其它某個公司的做法,也許就不合理。一定要找相似的公司,那家公司又做得很成功,那就可以直接參考。

也許將來某一天,測試人員和開發人員會合二為一,並沒有明顯的區分,只是每個人的任務會有所不同,大家都能勝任、完成某個任務中的測試和開發的工作。所以,作為測試人員,掌握良好的技術也是必要的,包括程式設計能力。


相關文章