软件测试日常问题-为什么要有预发布环境?
首先,我们要弄清楚软件的发布流程,功能发布是直接通过代码打包的形式发布还是通过获取git分支代码的方式发布,如果是通过打包的形式发布,那可以不用预发布环境,因为测试和线上用的都是同一个代码包;如果用的是直接发布git仓库的代码,那么就必须要增加预发布环境了;
先了解不通代码分支的作用:
Dev:开发分支,开发人员开发和自测的代码分支
Test:测试分支,开发人员开发完转测功能合并代码的分支
release:预发布分支:测试环境测试通过后,开发人员将代码合并的分支,测试通过后,运营会将此分支代码发布到线上环境;
master:上线通过后,把这个迭代功能的代码合并的分支,新开发功能再从master分支上拉代码进行新的开发;
预发布环境的作用:
预发布环境是正式发布前最后一次测试。因为在少数情况下即使预发布通过了,都不能保证正式生产环境可以100%不出问题;
预发布环境的配置,数据库等都是跟线上一样;有些公司的预发布环境数据库是连接线上环境,有些公司预发布环境是单独的数据库;
如果不设预发布环境,如果开发合并代码有问题,会直接将问题发布到线上,增加维护的成本;
开发环境、测试环境、预发布环境、生产环境的区别
一个软件产品从开发到用户使用都涉及哪些环境?
开发环境、测试环境、回归环境、预发布环境、生产环境。
下面说说我个人对这些环境的理解:
1、开发环境
顾名思义,开发同学开发时使用的环境,每位开发同学在自己的dev分支上干活,提测前或者开发到一定程度,各位同学会合并代码,进行联调。
2、测试环境
也就是我们测试同学干活的环境啦,一般会由测试同学自己来部署,然后在此环境进行测试。bug修复后,需要发版更新测试环境来回归bug。
3、回归环境
回归bug的环境,其实就是我们的测试环境,在测试环境上测试、回归验证bug。
4、预发布环境
测试环境到生产环境的过渡。测试环境可能会受到一些限制,一些流程或者数据没有测试到,就可以在预发布环境进行验证,从而保证产品上线质量。
预发布环境和生产环境区别:
1)预发环境中新功能为最新代码,其他功能代码和生产环境一致。
2)预发环境和生产环境的访问域名不同。
注意事项:
1)预发布环境一般会连接生产环境的数据库,测试时要注意,以免产生脏数据,影响生产环境的使用。
5、生产环境
即线上环境,用户使用的环境。由特定人员来维护,一般人没有权限去修改。
另外,还有个灰度发布,发生在预发布环境之后,生产环境之前。
生产环境一般会部署在多台机器上,以防某台机器出现故障,这样其他机器可以继续运行,不影响用户使用。灰度发布会发布到其中的几台机器上,验证新功能是否正常。如果失败,只需回滚这几台机器即可。
预发布一般跟正式环境差不多