2009-07-14 57 views
7

我們有一個非常複雜的Java系統,其中包括一些後端層,包括數據庫和專有的Swing前端。有外部方可以附加模擬我們的前端的後端API。我們的組織中有大約5個筒倉共享此係統。總共有大約15個開發者維護這個系統。質量保證與開發比率

我們的QA團隊的規模應該是什麼規則?

編輯:添加基於響應迄今提出的問題有點背景的:

  1. 我們每年大約四個主要版本,和一幫之間較小的差異的。
  2. 我們的平臺有錢易手,所以對我們的客戶來說有很多意義。
  3. 我們使用正式的錯誤修正系統。
  4. 我們不使用TDD。
  5. 我們使用巡航控制等工具進行持續集成。
+0

您的迴歸測試需要多長時間才能完成?當然它應該基於這個? – Jon 2009-07-14 03:24:37

+6

我不同意誰要這封閉。雖然不涉及編程,但它與軟件質量和軟件開發生命週期密切相關,並且絕對至關重要。 – 2009-07-14 03:26:38

+0

regeression需要一週的時間才能完成 – akf 2009-07-14 04:15:44

回答

9

作爲一名前測試團隊主管,我建議儘可能多地進行測試。聽起來你組織中的很多人都依賴於你的軟件。提前測試並經常測試。

認識到測試是每個人的責任是非常重要的。開發人員需要編寫好的單元測試。 UI開發人員應該手動測試UI。我試圖鼓勵測試驅動開發,關注度量(使用正式的缺陷跟蹤系統,跟蹤缺陷密度等),設置一個持續集成服務,並設計可測試性代碼(使用像Spring這樣的框架來進行依賴注射,使用嘲笑和存根服務等 - 我很樂意詳細討論)。修復bug的成本在後面找到的代價會越來越昂貴,所以最好在它正式進行QA之前找到它。

傑夫

2

它可能依賴於代碼庫如何參與是(是否有很多集成模塊),以及如何參與用戶體驗(如果有很多視覺元素和輸入控制進行測試)。

如果這是一個非常複雜的系統,您可能需要爲每5位開發人員考慮2-3位QA工程師。但是,如果這些功能並沒有真正改變太多或者涉及較少,我認爲每5位開發人員(甚至每10位開發人員)只需要1個QA即可脫身。

+0

如果「這些功能變化不大,那麼這10個開發人員會生產什麼?」 – Yishai 2009-07-14 03:18:20

2

不,沒有經驗法則。每個組織都是不同的,因爲每個組織都有完全不同的需求,需求,項目等等。你只能找到適合你的組織的東西。

4

從5個或6個開發者的1個QA開始。然後根據您認爲QA需要做多少工作或無所事事開始調整。

事實上,這只是基於我自己的經驗,因爲涉及的因素太多。您的代碼庫是如何發展或穩定的?它有多大?測試需要多全面?涉及哪些測試和分析工具?里程碑發佈的頻率如何?你有什麼樣的發展過程?多少手動測試和多少自動測試?

還有很多問題。所以從一個任意數字開始,然後從那裏開始。

3

理性QA到dev比率只能被相對衍生於所討論的應用的複雜性。

顯然,一個超級開發者可能會想出一個複雜的應用程序,其中全部只有3個QAs可以高效地測試,因爲工作流的複雜性;反過來,對於3個初級開發者來說,可以有1個QA將一個相對簡單的輸入輸出報告應用程序拼湊在一起。

因此,您需要的QA人員數量將取決於您擁有的要求的數量和複雜程度,而不是您使用的軟件開發人員的數量。

1

9年前,我不知道他的觀點是否改變了this article,但Joel會推薦每2個全職開發人員1個全職QA人員。我想說,隨着系統的不斷髮展,定期更新,這個比例是相當不錯的。

然後,如果系統不經常更改,很少更新,爲什麼會有許多開發人員開始?我已經傷害到說服自己,1:2是大多數情況下的完美比例。 :)

0

2名測試工程師每3名開發人員是一個體面的開始。如果很多測試案例涉及無法自動化的東西(物理地插入/拔出東西,UI渲染的直觀驗證),則每2名測試工程師添加1個測試人員。

3

這很大程度上取決於系統的功能以及缺陷的後果是什麼?你在編寫財務軟件嗎?還是社交網絡?一次失敗的可能成本大於另一次,因此質量保證工作量不盡相同。同樣,如果它是一個產品(多個安裝的用戶基礎可能更難修補),您需要它比內部更穩定。

您還需要問您是否期望他們進行基本系統測試或卷和負載測試。這聽起來像是在考慮UI測試和API測試的結合。假設你正在談論一個「正常」類型的系統,並且我們正在談論基本的系統測試,那麼我認爲所有努力的33%應該是測試工作。理論上這給你一個1比2的比率,但是假設你的開發者在單元測試中可能將它拉長到1到3.當然,我現在正在運行1到4,這還不夠(我會盡快糾正它該業務允許我)。

但是你也想考慮你的軟件開發過程有多成熟,你的規範是什麼樣的。除了擁有合適數量的測試人員之外,您還需要給他們正確的信息進行測試 - 如果他們沒有這些測試人員,那麼他們就無法完成工作,這可能是浪費金錢。

另一種選擇 - 這聽起來像產品已經開發了一段時間。除了常規測試人員的核心功能之外,您還可以使用短期承包商大量進行初始主要測試。如果您只是將測試資源引入您,並不想讓他們開始大量積壓工作。