我们的DevOps团队提出了一个我(作为QA自动化工程师)不同意的概念。他们建议测试自动化代码还应具有始终与源代码兼容的版本控制-例如,如果应用程序源代码版本为2.10 ..自动化代码版本也应为2.10。
我不同意应该这样对测试自动化代码进行“版本化”。应该根据需要进行更改。我希望收到一些反馈。

评论

对我来说,这是个好主意。我个人更喜欢对所有内容进行标记。

@YuZhang我不认为OP通常会反对版本控制(包括标记)的想法,仅是与同步源代码和测试代码版本的方案不同。

在测试代​​码中使用不同版本或完全没有版本有什么好处?如果您无法列出任何好处,为什么您会不同意呢?

@ beatngu13,谢谢,我重新阅读了,你是对的。

#1 楼

我相信这是一个非常好的做法,在我公司中,我们做的完全一样,我认为这仅仅是出于历史原因(在我们的情况下),但总的来说,您将尝试使用尽可能少的系统,因此在不久的将来,将测试自动化脚本与相同版本的源代码统一起来可能很有意义。

#2 楼

同步源代码和测试代码版本的最大优势是,您可以使用标签(例如,参见Git或SVN)轻松地在VCS中返回时间,从而使您可以快速检出特定源代码和测试版本。

我个人是语义版本控制的忠实拥护者,您可以总结如下:进行不兼容的API更改时,请增加以下版本:


MAJOR版本;以向后兼容的方式添加功能时,
MINOR版本;当您进行向后兼容时,请增加PATCH版本。进行向后兼容的错误修复。

可以使用预发布和构建元数据的附加标签作为MAJOR.MINOR.PATCH格式的扩展。源代码版本控制遵循以下规则,使测试代码版本同步更加有意义:例如,如果您进行了不兼容的API更改,因此增加了版本的源代码,您的测试也可能会中断。然后,您将为新的测试界面创建一个修复程序,并增加测试代码的主要版本。

#3 楼

我认为这是一个绝妙的主意。
随着版本的发展,有必要进行更改和调整,以便自动化的实际代码也将增加版本的数量。
如果透明对客户而言,它看起来好多了,可以下订单。

#4 楼

停止为测试代码使用单独的分支。测试自动化代码是解决方案的一部分,就像“实际”产品代码一样。测试代码将没有自己的版本。根据定义,它将具有与产品代码相同的版本。无需同步2个版本。这就是我们这样做的方式,我们从来没有以其他方式做到过。

#5 楼

随着系统的发展,测试必须以完全相同的方式发展。没有一个测试版本是没有意义的,特别是因为您可能想要测试同一软件的不同版本,例如在添加功能之前/之后或在修复错误之前/之后。
测试和系统在测试是两个不断发展的实体,应对这些演变的最佳方法就是让它们相处。

#6 楼

好的,我看到这里的答案100%支持将版本放入我的测试自动化代码中。我听起来会很愚蠢/愚蠢/愚蠢(是的,一个!),但是我只是创建了分支并将测试自动化代码推送到分支。我从来没有在SourceTree中放置任何版本/标签到代码。谁能和be友好地告诉我如何通过SourceTree做到这一点? (例如,签入一个版本,然后下次签入时使用其他版本)

谢谢!

评论


这不应该是答案。提出一个单独的问题,社区将为您提供帮助。

–beatngu13
18年2月8日在21:22

#7 楼

我认为有两种不同的方案:

您要为现有产品添加新的自动化方法
,在这种情况下,尝试尝试“应用程序代码的当前版本号” '

您拥有一个完全开发的测试套件
,在这种情况下,使版本号与其他人建议的一致会更加有意义。这些是否是不同的代码库。我通常赞成使用相同的仓库(即使使用不同的语言)。有了这个,我看到需要注意正式版本号的次数就更少了,而更多地关注快速发布的工作软件(带有自动化)。