软件开发过程中的环境简介

软件开发生命周期的六个阶段(问题的定义及规划、需求分析、软件设计、程序编码、软件测试和运行维护)中需要用到不同的环境。我们对其环境分类为 Development, Testing, Staging, and Production environments,如下图:

软件开发过程中的环境简介_第1张图片

  • 开发环境(Development):程序员专门用于开发的服务器,配置较随意,为了开发调试方便,一般打开全部错误报告和测试工具,是最基础的环境。开发环境的分支,一般是feature(功能)分支,每位开发工程师在自己的dev分支上工作,提测前或者开发到一定程度,工程师Leader合并代码,进入联合调试。没有客户真实数据。

  • 测试环境(Testing):一般是克隆一份生产环境的配置,当一个程序在测试环境工作不正常时,肯定不能把它发布到生产服务器上的,是开发环境到生产环境的过度环境。测试环境的分支一般是develop分支,部署到公司私有的服务器或者局域网服务器上,主要用于测试人员测试是否存在bug,一般会不让用户和其他人看到,并且测试环境会尽量与生产环境相似,然后在此环境进行测试。Bug修复后,需要发版更新测试环境来回归Bug。没有客户真实数据。

  • 预发布环境(Staging|UAT):测试环境到生产环境的过渡。测试环境可能会受到一些限制,一些流程或者数据没有测试到,就可以在预发布环境进行验证,从而保证产品上线质量。有经过脱敏客户数据。

  • 生产环境(Production):是指正式提供对外服务的,一般会关掉错误报告,打开错误日志,是重要的环境。部署分支一般为master分支。由特定运维工程师来维护,一般人没有权限去修改。全部的生产数据,真正客户使用的环境。

预发布环境和生产环境区别:
1)预发环境中新功能为最新代码,其他功能代码和生产环境一致。
2)预发环境和生产环境的访问域名不同。

Test环境与Stage环境区别: 尽管通常在开发过程中进行测试,但在过渡环境中进行用户接受测试的需求却至关重要。 Stage环境是客户生产环境的完全相同副本,通常还包含出于安全目的而经过清理的真实生产数据。 它以与生产服务器相同的方式托管,并且涉及相同的设置和更新操作。 因此,在 Stage环境中进行测试提供了最可靠的方法来检查代码质量并确保生产服务器成功。即使对持续的代码质量保证至关重要,测试环境也几乎无法达到客户系统仿真的真实程度。 因此,通常的最佳做法是在将应用程序代码移入生产环境之前,在过渡环境中对其进行完整的测试。


附录:

软件开发的生命周期
阶段 主要工作
问题的定义及规划 此阶段是软件开发方与需求方共同讨论,要确定软件的开发目标及其可行性
需求分析 在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析
软件设计 此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等
程序编码 此阶段是将软件设计的结果转换成计算机可运行的程序代码
软件测试 在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正
运行维护 软件维护是软件生命周期中持续时间最长的阶段

你可能感兴趣的:(软件开发知识,软件工程)