2015-10-15 44 views
0

我在Team Foundation Server中有3種解決方案。分支到分支到DEV的QAS的Prod。如何控制TFS中的部署

我在DEV分支中執行所有工作,並檢查對此分支的任何更改,當我檢查此項時,我將ChangeSet與TFS中的工作項相關聯。假設我有4個變更集(變更集#101,102,103,104),此時每個變更集都與一個不同的錯誤(錯誤#1,2,3和4)相關聯。

然後,我將項目的DEV分支部署到內部進行測試。一旦驗證完成後,我將DEV分支合併到QAS中,然後檢查所有這些更改爲ChangeSet#104。

現在,這裏是我遇到問題的地方。在外部測試Bug 1和2已經確認並準備好部署到Prod之後,但bug 3和4沒有。如果我進入Prod分支並從QAS合併回prod,它將獲取QAS中的所有更改並將它們推送到prod分支。但這不是我想要的,因爲它會給我錯誤3和錯誤4的錯誤代碼。我真正想要的是隻抓取來自ChangeSet 101和102的相同更改,但我不能說只需引入這些更改,因爲這些更改是從DEV發佈到QAS,然後這些更改成爲一個ChangeSet。

所以我的問題是如何以某種方式獲得Environment/ChangeSet設置,以便我可以將我想要的部分重新引入。

回答

1

如果不使QA的工作無效,你真的無法做到這一點。一般來說,發佈是全或無。每次更改代碼時,都會使所有之前的測試無效。這可以通過單元測試和集成測試來抵禦迴歸來緩解,但是從根本上來說,隨着代碼的變化,意想不到的事情可能會破壞。糟糕的意大利麪條系統更糟糕,但即使是最佳設計的系統也是一種風險。

假設您每週發佈一次。您在該時間範圍內修復了4個錯誤,並將其全部傳遞給QA。

QA能夠驗證2個錯誤是固定的。如果刪除未驗證的其他兩個錯誤修復會發生什麼情況?

  1. 什麼都沒有。錯誤和代碼改變實際上是完全正交的。呼。
  2. Bugfix 1和Bugfix 3的組合實際上修復了Bug Omega,你甚至不知道它存在。刪除Bugfix 3 引入了一個不同的bug。質量保證不會抓住它,因爲就他們而言,他們測試並且一切正常。

如果QA通常無法在爲發行版分配的時間範圍內完成對發行版的測試,那麼您在某處需要識別並刪除一個瓶頸。