我在Team Foundation Server中有3个解决方案。分支到QAS的Prod分支到DEV。
我在DEV分支中完成所有工作,并检查对此分支的任何更改,当我在此处检查时,我将ChangeSet与TFS中的工作项相关联。让我们说我有4个ChangeSet(ChangeSet#101,102,103,104),此时每个都与不同的bug相关联(Bug#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设置,这样我就可以把我想要的部分带来。
答案 0 :(得分:1)
如果不使QA的工作失效,你真的无法做到这一点。通常,发布是全有或全无。每次更改代码时,都会使先前完成的所有测试无效。这可以通过单元和集成测试来提供一些防止回归的保护措施来缓解,但从根本上说,代码发生变化时,意外情况可能会中断。在架构不佳的意大利面条系统中情况更糟,但即使是设计最好的系统也存在风险。
我们假设您每周发布一次。您在该时间范围内修复了4个错误并将所有错误传递给QA。
QA能够验证其中2个错误是否已修复。如果删除未经过验证的其他2个错误修正,会发生什么?
如果QA通常无法在为发布分配的时间内完成对发布的测试,那么您就会遇到需要识别和删除的瓶颈。