分阶段有什么意义?

分阶段有什么意义?

我以为我已经解决了这个问题,但读完之后持续交付(很棒的书)我有点困惑。他们谈到了拥有以下服务器:

  • 发展
  • 各种形式的自动化测试
  • 用户验收测试 (UAT) - 即与客户坐下来向他们演示,并让他们进行探索性测试。内部测试人员也可以使用此设置进行探索性测试。
  • 分期
  • 生产。

我一直认为 staging 提供 UAT 功能,但他们似乎将 staging 作为一个单独的级别。那么在那种方案中,staging 服务器将提供什么功能?

答案1

准备阶段是指将整个产品系统安装到位,但尚未实际使用。当它们投入使用时,即为“生产”。您应该将所有内容都安装到位,以便使用,然后进行测试,然后切换。

UAT 通常使用与生产中使用的硬件/软件/配置有很大不同的“测试”环境。

例如,在我工作的地方,我们让客户在我们服务器上运行的 VM 环境中测试所有内容。当他们的系统上线时,它将在他们的硬件、他们的设施上运行,可能与他们现有的系统集成;它与我们的服务器或测试环境完全无关(除了代码和一些配置是从那里复制的……)

答案2

我在一家大型互联网公司的发布管理团队工作。我们基本上使用您上面概述的流程,并且我们是特意选择该流程的。在我们的方法中,暂存是生产中最终测试级别的分支机制。

显然,您希望在投入生产之前进行所有测试,但在拥有大量用户的大型复杂环境中,这是一个很难实现的目标。特别是,在 QA 中几乎不可能充分加载测试软件。功能测试比负载测试更容易实现自动化。当有成千上万的用户访问您的服务器时,事情会以奇怪且难以预测的方式失败。

因此,我们的行动如下:

  • 发展
    • 包括持续集成和自动化测试
  • 发布测试
    • 我的小组分析了发布版本本身
    • 查看安装日志
    • 测试回滚
  • 质量保证
    • 用户验收测试

这就是我们在准备阶段和生产阶段之间进行分支的节点。我们使用列车模型进行发布,每隔几周就会有新的列车启动。偶数列车会前往准备阶段服务器(用于生产)。奇数列车则不会。

在偶数列车之间,开发人员可以将各个更改推送到暂存服务器(这些更改当然已经经过 QA 测试)。这使他们能够验证其软件在实际生产环境中的表现是否符合预期。这通常只用于被认为风险较高的组件,我们不会将每个小部分都推到暂存阶段。

然后,每个人都明白,当下一趟列车开动时,它将清除临时服务器上的内容,并将其设置回列车基线。开发人员要么确保他们的更改已进入列车,要么决定它们尚未准备好供一般使用,在这种情况下,这些更改只会在临时服务器上被删除。

总而言之,简短的回答(至少对我们来说)是不可能在 QA 中完全测试复杂的系统。暂存提供了一种进行有限生产测试的安全方法。

顺便提一下,这是我的演示文稿我只是介绍了我们的发布流程是如何进行的。

答案3

暂存最简单的解释是测试您的部署过程并使用真实数据源进行测试。一些系统将暂存与其测试环境相结合,但对于大型系统,部署过程可能非常复杂,或者一旦您连接到实时/生产数据源,就可能需要额外的测试步骤。在这些情况下,暂存环境允许您测试您的部署过程并使用实时数据检查最后一刻的错误,然后一旦验证一切正常,您就可以快速将暂存环境切换到生产环境。

例如,Windows Azure 需要 5-25 分钟才能部署新版本,但你可以部署到临时环境,执行测试,然后立即切换生产环境和暂存环境

答案4

我刚刚看到这篇关于暂存环境意思是

暂存是您验证系统已知和未知之处的地方。

这篇文章值得一读。

相关内容