軟件測試和開發比例

引言程序員

這篇文章是我從stackoverflow上翻譯過來的,若是之後遇到好的文章我還會繼續翻譯。編程

問題服務器

我是一個開發工程師,我與咱們的測試團隊在爭論一個問題:在一個產品中測試團隊的成員數量應該超過開發人員數量嗎?ide

我知道這不是一道編程題,可是我想這個問題與軟件開發密切相關,因此我但願這個問題不要被關閉,以便能獲得專業的回答。工具

回覆一:單元測試

這是個人我的經驗。在微軟咱們有一隻強大的測試開發組織。這和傳統的QA有點不一樣,由於咱們僱傭程序員來測試,而且在設計階段就把他們加入進去。他們的工做是測試,特別是自動化產品測試。根據個人經驗,測試和自動化測試一個功能須要測試人員大概多久的時間與開發人員在產品中編碼和修復缺陷所需的時間差很少,這意味着他們的比例是1:1,這與編寫單元測試所花費的時間和編寫代碼的時間很是類似。測試

這一組合將根據不一樣的標準而有所不一樣:編碼

一、開發人員進行了多少單元測試,他們作的越多,須要測試的工做就越少。翻譯

二、開發者要編寫多少代碼,而不是利用現有的庫。若是有許多預先寫好的代碼使用,測試人員也須要驗證這些功能是否也是正常的,這樣開發與測試所須要的比例必須是1:1。設計

三、開發工做的動態性。若是編寫一個UI,相對較小的開發人員會對測試的表面進行大的改動的話,你講須要更多的測試人員。

四、有多少重要功能。若是是編寫GMail,它隨意使用,在這個領域bug能夠容忍和修復,那麼須要不多的測試人員。另外一個極端,若是你正在研究醫療成像設備,你須要更多的測試,由於在這個領域很難修復缺陷,並且他們出現bug會很是糟糕。


回覆二:

對於大部分我工做的公司項目,他們的比例是1:1,可是可能由於如下幾個因素而有所不一樣:

一、開發效率。我曾經講過一個開發人員,他有很高的輸出量,而且有3個QA忙於他開發的功能上。

二、產品質量標準。一個重要的,高可靠性的系統應該有一個更好的QA,而且須要更多的QA人員。

三、一些項目必須在更好數量的配置和場景中來測試,開發者可能會保持不變,可是你顯示須要更多的QA來覆蓋整個測試矩陣。

四、測試的自動化程度如何。若是測試不能很容易自動化,你須要更多的人來手工測試。

回覆三:

我這裏目前開發測試比是8:1。緣由是咱們很是重視自動化測試。全部的工做都須要接近完整的單元測試覆蓋率。咱們還使用Fitnesse進行功能測試(全部的用戶故事都必須有一個Fitnesse測試),用CI(持續集成)服務器出發完整的測試,開發人員常常檢查,咱們常常發佈。

這是一個巨大的應用程序,有幾千個類和無數的場景。其優點在於速度、靈活性以及成本。不管開發人員花在編寫測試上的額外時間,都少於人力資本管理部門/管理更多的QA人員,或者在產品中發現的缺陷(甚至QA人員都是普通人)。

咱們不多的QA人員會花費他們的時間編寫的自動化測試上,用Selenium或參與新的功能。他們花了不多的時間反覆地重複一樣的功能。

回覆四:

根據個人經驗,有兩種主要的QA人員:1)那些簡單地遵循書面腳本並與應用程序交互以發現邊界問題,2)以及那些能夠本身編寫自動化測試程序的人,尋找新的和創新的方法(偵查、Selenium、編寫API客戶端)來打破開發團隊的代碼。

若是你的QA團隊由第一類的人組成,那麼1:1的比例或是正好的開發人員是必須的。不然他們講難以跟上開發團隊引入的任何新特性,而且會常常地址任何對產品的修改,由於這會使他們的測試工做流程變得更加複雜。

若是你的QA團隊是後者(能夠編寫代碼的測試工程師對任何有生產力的開發團隊來講都是天賜之物)。程序員能夠與他們進行交流,而測試人員經過編寫更智能的,更抽象的測試工具來找到自動化和改進他們本身過程的有用方法。一個真正優秀的測試工程師可能會支持2~3個開發的工做,特別是若是那些開發人員已經編寫了有用的單元測試和集成測試,測試人員能夠將其做爲起點。

最後:

說說本身見解,國內的軟件測試公司的開發測試比通常是3:1,4:1甚至5:1。開發人員通常不肯意作詳盡的功能測試,由於有測試人員在,單元測試覆蓋率也不高,他們會將寫好的程序直接塞給測試,測試人員更多在作功能測試。若是是比較穩定的項目,測試纔有時間作自動化測試,以方便往後迴歸測試減小工做量。

作爲一名測試人員,建議每個軟件測試工程師都要提升編碼能力,不只僅只限於自動化,也要了解開發中所用到的技術,在本地運行當前所測試的開發項目,熟悉開發代碼,最後能夠作到找的bug時知道怎麼去改。能夠寫單元測試,成爲開發測試工程師,願咱們共同進步。

相關文章
相關標籤/搜索