Git分支策略与测试/质量保证过程相结合
我们的开发团队一直在使用GitFlow分支策略,这非常棒!
最近我们招募了几个测试人员来提高我们的软件质量。 这个想法是每个功能都应该由测试人员测试/ QA。
过去,开发人员在单独的功能分支上处理功能,并在完成后将它们合并回develop
分支。 开发人员将在该feature
分支上自行测试他的工作。 现在与测试人员,我们开始问这个问题
测试人员应该在哪个分支上测试新功能?
显然,有两种选择:
develop
分支上 在开发分支上测试
最初,我们相信这是一条肯定的路,因为:
develop
分支中进行测试。 develop
)。 他无需向开发人员询问哪个分支是哪个功能(功能分支是由相关开发人员完全自由管理的个人分支) 最大的问题是:
develop
分支受到错误污染。
当测试人员发现错误或冲突时,他会将其报告给开发人员,后者会在开发分支上解决问题(功能分支在合并后会被放弃),并且之后可能会需要更多修复程序。 多个子序列提交或合并(如果重新develop
分支以重新develop
分支以修复缺陷)使得从develop
分支回滚特征非常困难(如果可能的话)。 在develop
分支上有不同的时间合并和固定的多种功能。 当我们想通过develop
分支中的一些功能创建一个版本时,这会造成很大的问题
在功能分支上测试
所以我们再次考虑,并决定我们应该测试功能分支上的功能。 在我们测试之前,我们将develop
分支的变化合并到功能分支(赶上develop
分支)。 这很好:
develop
分支; 但是,有一些缺点
develop
分支。 这意味着当两个功能都被合并到开发分支时,您将不得不再次对develop
分支进行测试。 而且你必须记住在未来测试这个。 以上是我们的故事。 由于资源有限,我想避免在任何地方进行测试。 我们仍在寻找更好的方式来应对这一问题。 我很想听听其他团队如何处理这种情况。
我们这样做的方式如下:
在我们合并最新的开发分支代码后,我们测试了功能分支。 主要原因是我们不希望在功能被接受之前“污染”开发分支代码。 如果某个功能在测试后不被接受,但是我们希望发布已经合并在开发中的其他功能,那将是地狱。 Develop是一个发布的分支,因此最好处于可发布状态。 长版本是我们在很多阶段进行测试。 更多分析:
你对这种方法有什么看法?
测试之前,我们将开发分支的更改合并到功能分支
不,不,特别是如果'我们'是质量保证测试员。 合并将涉及解决潜在的冲突,最好由开发人员(他们知道他们的代码)完成,而不是由QA测试人员(应该尽快进行测试)完成。
让开发商做他/她的底垫feature
之上分支devel
,并推送这个feature
分支 (已被开发验证为编制和最近的顶部工作devel
分支状态)。
这允许:
develop
之间进行合并,但只有在GitHub / GitLab检测不到冲突时。 每次测试人员检测到错误时,他/她都会将其报告给开发人员并删除当前功能部门。
开发人员可以:
feature
分支。 总体思路:确保合并/整合部分由开发人员完成,并将测试留给QA。
最好的方法是持续集成,其中总体思路是尽可能经常地将特征分支合并到开发者分支中。 这减少了合并痛苦的开销。
尽可能依靠自动化测试,并通过Jenkins的单元测试自动启动构建。 让开发人员将所有更改合并到主分支并为所有代码提供单元测试。
测试人员/ QA可以参与代码评审,检查单元测试并编写自动化集成测试,以便在功能完成时添加到回归套件中。
欲了解更多信息,请查看此链接。
链接地址: http://www.djcxy.com/p/48939.html上一篇: Git branching strategy integated with testing/QA process