2011-04-03 28 views
1

我正在做一個項目,我在做集成/軟件測試。集成測試如何進行版本控制?

最初我們和開發工作在同一個分支,但問題在於開發分支非常快速地創建新功能。創建集成代碼變得困難,因爲分支不穩定。我們在這個分支中確實有一個迴歸,它檢查舊功能是否正常工作,但我們發現我們需要一些喘息空間,以便我們可以創建一些初始測試代碼。

我們的想法是創建一個分支(所以對於我們來說是一個開發和一個STAGE),所以我們有穩定的代碼。一旦我們認爲我們的測試代碼是穩定的,我們可以將DEV合併到我們的STAGE中,然後我們看到什麼是中斷。如果一切正常,我們可以將測試代碼添加回DEV,以便我們測試的新功能不會再次中斷。

問題在於錯誤修復。

在我們創建集成測試代碼時,開發團隊將繼續在DEV分支上開發他們的代碼。可能性是我們要在STAGE分支的代碼中找到一個錯誤。這可能導致兩個senerios之一。

  1. 該錯誤是一個有效的錯誤。在這種情況下,他們可以從檢測到錯誤修復的STAGE分支,修復bug並將其合併到DEV中。

  2. 該錯誤已在DEV某處修復。我遇到的問題是,如果在DEV中修復了這個錯誤,那麼我們必須將所有從最後一個合併點所做的更改合併到STAGE中,以修復此錯誤。

看來,這是一個地方整合團隊正在與開發團隊的共同問題,兩支球隊不知道如何解決這個問題。 「

回答

1

」我遇到的問題是,如果在DEV中修復了這個錯誤,那麼我們必須將所有從最後一個合併點開始的修改合併到STAGE中,以修復此錯誤。「

爲什麼?任何體面的源代碼管理系統都應該允許你挑選變化。根據所做的更改,您可能必須進行大量手動合併,但它當然應該是可行的。

另一個可能的解決方案是凍結DEV分支,直到STAGE的修復被提交給它。

+0

理論上,可以找到在DEV中具有修復並將其應用於舞臺的變更集。問題是可能很難找到變更集,並且這些變更集中可能還有其他內容。就凍結DEV而言,這會對我們的時間表產生影響。我們的想法是,我們驗證在開發團隊繼續添加更多功能的同時實現的功能。 – 2011-04-03 16:54:14

+0

在這種情況下,您需要將新bug修復分支與新功能分支分開。您需要強制實施一項政策,即「自動」提交錯誤修復程序,並且除修補程序所需的更改外,沒有其他任何修改程序。其他變化,甚至是小變化,都必須單獨提交。一旦錯誤修復分支被驗證爲穩定後,將錯誤修復集成到新功能分支中將是您的職責。 – James 2011-04-05 12:28:30