当前位置: 首页 > 知识库问答 >
问题:

Git Flow应该如何对一个版本和一个新特性进行QA测试?

程沛
2023-03-14

我们正在最新的iOS项目中使用Git Flow,我正在尝试找出一种与QA合作的方法,这样他们就可以测试最新版本,以及测试新功能,而不必担心在哪个分支中修复了哪些错误。

目前,他们一直在测试发布/v1.0.1分支,该分支修复了原始发布/v1.0的几个错误。同时,我一直在为v1.1版本计划一个新功能,但与发布/v1.0.1分支同时从开发分支分离出来,因此其中没有任何错误修复。

今天,QA部门想把我的新功能用于试驾。但是,如果我从我的分支创建它们构建,则它们重新测试和关闭的任何错误修复都不会在那里。因此,我将收到大量关于重新引入的错误的抱怨和恐慌......我想避免!

那么,让他们测试这个的最好方法是什么呢?我可以将< code>release/v1.0.1合并到我的特性分支中,但是之后我应该确保在< code>release/v1.0.1发布之前,我不会合并回< code>develop中……我想在一定程度上,这打破了Git流方法。我可以为QA测试创建一个全新的分支,将我的特性与< code>release/v1.0.1合并,但是我该如何处理他们在这个分支上发现的任何bug呢?一轮问答结束后,我要把它合并到哪里?

最重要的是,我必须考虑内部版本号和版本号,以便它们有意义。目前,版本号是用于发布的版本号,内部版本号随 QA 的每个新版本而递增。但是,如果他们从两个单独的分支接收构建版本,我最终可能会遇到内部版本号冲突,这会导致混淆。

我该如何处理这些问题?

共有1个答案

赵智
2023-03-14

我将在整个答案中引用nvie.com的Git Flow页面的第一个图表的部分内容;为了完成,我在下面添加了它的屏幕截图。

今天,QA部门想测试一下我的新功能。然而,如果我从我的分支为他们创建一个构建,他们已经重新测试并关闭的错误修复都不会在那里。因此,我会收到铺天盖地的抱怨和对重新引入的bug的恐慌...这是我想避免的!

那么,让他们测试这个的最好方法是什么呢?我可以将< code>release/v1.0.1合并到我的特性分支中,但是我应该确保在release/v1.0.1发布之前不会合并回develop中...

洛伊不应将发布分支直接合并到功能分支中。根据 Git 流模型,您应该(持续)

    < li >将< code>release/v.1.0.1合并到< code>develop分支中, < li >将< code>develop合并到您的功能分支中,

以便将版本/v.1.0.1 中的稳定更改引入功能分支。

(不幸的是,上图没有显示将开发持续合并到功能,但这就是您应该做的。)

我可以为QA测试创建一个全新的分支,它将我的功能与version/v1.0.1[…]

这里有些模糊。您是建议将< code>feature合并到< code>release/v1.0.1中,还是将< code>release/v1.0.1合并到< code>feature中?你不应该做前者,因为新特性进入< code>release/v.1.0.1已经太晚了;它们必须在未来版本中发布,即在< code>v1.0.1之后。阅读左边的气泡:

你也不应该做后者;至少,不能直接。如上所述,为了将更改从发布/v1.0.1引入功能,您应该首先将发布/v1.0.1合并到开发,然后将开发合并到功能;这可以/应该在功能准备合并回开发之前多次发生。

如果你严格遵循Git Flow模型,

  1. 您不应该有两个或更多共存的发布分支,并且
  2. QA应该只测试发布(即稳定)分支

因此,如果其他特性应该进入< code>v1.1,你还不能要求QA审查你的新特性;你必须等到其他功能完成。一旦< code>v1.1的所有功能完成并集成到< code>develop中,创建一个< code>release/v1.1分支(从< code>develop的头开始)。然后要求QA开始测试/稳定那个分支。

另一方面,如果你真的不能等到其他功能完成后再要求QA测试你自己的新功能,你应该创建一个中间发布分支(我猜叫v1.0.2),并告诉QA测试lease/v1.0.2。一旦它被稳定到令人满意的程度,将其合并到(和开发)中。

 类似资料:
  • 本文向大家介绍如何对一个页面进行测试相关面试题,主要包含被问及如何对一个页面进行测试时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1、UI测试:页面布局、页面样式检查、控件长度是否够长;显示时,是否会被截断;支持的快捷键,Tab键切换焦点顺序正确性等。 2、功能测试:页面上各类控件的测试范围,测试点。结合控件的实际作用来补充检查点: 比如, 密码框是否*显示, 输入是否做trim处理等。

  • 问题内容: 给出了可变长度特征的列表: 每个样本具有不同数量的功能,并且该功能已经并且很热门。 为了使用sklearn的特征选择实用程序,我必须将转换为2D数组,如下所示: 如何通过sklearn或numpy实现它? 问题答案: 您可以使用scikit中存在的MultiLabelBinarizer专门用于执行此操作。 您的示例代码: 输出: 它也可以与其他feature_selection实用程序

  • rank ▲ ✰ vote url 54 397 83 538 url 如何知道一个对象有一个特定的属性? 有什么方法可以检测一个对象是否有某些属性?比如: >>> a = SomeClass() >>> a.someProperty = value >>> a.property Traceback (most recent call last): File "<stdin>", line 1

  • 当有两个公共方法并且一个方法调用同一个类中的另一个公共方法时,测试方法的方法是什么? 在这种情况下,我应该如何编写单元测试? 一个例子 这个例子并没有显示所涉及的方法的复杂性,而是概念的复杂性。 我应该分别测试加法和乘法吗?如果我只测试乘法,我觉得我们错过了不能提供参数的情况。 假设要分别测试和,我应该能够模拟?这怎么可能? 假设要分别测试乘法和加法,我不应该模拟,我应该让加法按原样执行吗。如果是

  • 我有一个类赋值,我需要将一个目标排序到一个二叉树节点中,给定一个根,我需要将它与根进行比较,如果目标小于根的值,则将目标作为左子,或者如果目标大于根的值,则将目标作为右子。 我必须使用给定的方法头和参数,我的代码是这样编写的: 返回以下错误: java:109:错误:二进制运算符“<”的操作数类型不正确 我还尝试了compareTo方法,通过尝试类似于 返回以下错误: binarySearchTr

  • 问题内容: 我有一个直接依赖RestTemplate的类。我希望我可以离线进行JUnit测试。 如何在单元测试中模拟RestTemplate? 问题答案: 我建议重构您的客户端代码,以 消除 对的直接依赖,并用对的引用替换它,该引用是由实现的。和您应该编码的那个。 然后,您可以在代码中插入存根或模拟对象以进行单元测试,并在将其用于实际时注入。