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

   許多公司領(lǐng)導(dǎo)總是希望得到一個合理的比例,然后按這個比例分配招聘的名額,或者設(shè)法縮小測試隊(duì)伍,減少開發(fā)成本。
多數(shù)情況下,測試人員工作量大,比開發(fā)人員忙,所以想尋求一個數(shù)據(jù),來說服其公司,多招些測試人員。
有些專家說,根據(jù)調(diào)查結(jié)果發(fā)現(xiàn)通常的比例是1個測試人員對3個開發(fā)人員。實(shí)際上,這樣的比例毫無意義。測試人員與開發(fā)人員的比例會受到很多因素的影響,因不同的業(yè)務(wù)、文化和產(chǎn)品而不同。如果不管公司的文化、產(chǎn)品的類型和責(zé)任定義等,一定要按照某個比例來分配測試人員與開發(fā)人員,這是武斷的做法,缺乏科學(xué)性。有兩個典型的例子能說明這個問題:

   微軟公司的測試人員與開發(fā)人員比例一般為1:1,甚至在Windows 2000開發(fā)團(tuán)隊(duì)中,有1800個測試人員,900個開發(fā)人員,測試人員與開發(fā)人員比例為2:1。
   在Google (谷歌)公司,則測試人員與開發(fā)人員比例則很低,據(jù)谷歌公司的測試經(jīng)理介紹,為1:10.
   那為什么呢?這里主要是測試人員與開發(fā)人員工作范圍的定義,在這兩家公司差別挺大,在微軟,單元測試由測試人員(SoftwareDevelopment Engineer in Test, SDET)做, 相當(dāng)于SDET再寫一套代碼來測試開發(fā)人員寫的產(chǎn)品代碼,其工作量不比開發(fā)人員低,另外,微軟開發(fā)的產(chǎn)品都是比較復(fù)雜的操作系統(tǒng)、服務(wù)器軟件等,自然需要很多的測試人員。而Google的單元測試和功能測試一般都是由開發(fā)人員自己來完成,測試人員主要提供自動化測試工具的支持。軟件開發(fā)人員進(jìn)行了足夠的單元測試,單元測試的覆蓋度高達(dá)85%以上,軟件在交給測試人員時,在功能上基本沒有缺陷,這樣測試人員主要集中精力進(jìn)行性能測試、負(fù)載測試、安全性測試等,而這些都是自動化工具來完成的,自然需要較少的測試人員。
 
另外,測試人員與開發(fā)人員還受所開發(fā)的產(chǎn)品類型、企業(yè)文化、項(xiàng)目環(huán)境、質(zhì)量要求水平、開發(fā)人員或測試人員的自身素質(zhì)等影響。例如:

     所開發(fā)的產(chǎn)品是操作系統(tǒng)、基礎(chǔ)平臺,和一般的客戶端軟件、簡單的Web應(yīng)用系統(tǒng),其測試需求、范圍和工作量都是不同的。如Windows操作系統(tǒng)要支持第3方各種應(yīng)用程序、支持大量的API和各種硬件驅(qū)動程序等,還有兼容DOS、32位/64位等應(yīng)用程序,系統(tǒng)非常復(fù)雜、用戶操作也非常靈活,所以測試的工作量也大得多,需要大量測試人員的付出。
    軟件設(shè)計(jì)、代碼的質(zhì)量,也是企業(yè)文化、開發(fā)人員的素質(zhì)和能力等直接影響了軟件的階段性成果的質(zhì)量,如果軟件構(gòu)造質(zhì)量很高,其回歸測試范圍有限、重復(fù)測試的次數(shù)只有1~2次,而不是4~5次,結(jié)果,測試的工作量大大降低,測試人員數(shù)量隨之降低。
例如,許多免費(fèi)的網(wǎng)絡(luò)應(yīng)用產(chǎn)品總是將自己定位在Beta版,那么,會降低質(zhì)量水平,讓用戶試用,并幫助發(fā)現(xiàn)一些缺陷(因?yàn)槊赓M(fèi),用戶也不能抱怨什么),這樣的話,公司內(nèi)部測試的努力會少多了。
    測試人員素質(zhì)高,精兵強(qiáng)將,那么人數(shù)會少些;如果測試人員定位低、待遇低,可能靠人海戰(zhàn)術(shù),那么人數(shù)會多。
在敏捷方法中,開發(fā)人員的主導(dǎo)作用比較明顯,測試人員對開發(fā)人員的比例會低些。如果采用測試驅(qū)動開發(fā),測試人員對開發(fā)人員的比例會更低。這時,測試人員和開發(fā)人員的界限也變得模糊些。
    當(dāng)然,針對一個具體公司,流程、產(chǎn)品和文化等都定型了,可以根據(jù)自己的經(jīng)驗(yàn)、歷史數(shù)據(jù)等,定出一個合適的比例,如1:2、1:3等,都是可以的。如果一個軟件公司,硬要參考微軟、谷歌或其它某個公司的做法,也許不合理。一定要找相似的公司,那家公司又做得很成功,那可以直接參考。
 
    也許將來某,測試人員和開發(fā)人員會合二為一,并沒有明顯的區(qū)分,只是每個人的任務(wù)會有所不同,大家都能勝任、完成某個任務(wù)中的測試和開發(fā)的工作。所以,作為測試人員,掌握良好的技術(shù)也是必要的,包括編程能力。