目前公司的流程方面非常的混乱。对于测试和开发的效率影响极大。存在问题是1.上线时间的不好控制。大家需要在晚上用户使用少时发布。会对大家工作造成负担。
2.测试无法模仿真实的用户环境。需要制作测试数据才能接近真实环境
3.有些需求不确定用户的反馈是否需要。或者想要查看用户真正的反馈
因此我们就需要规范发布流程和建立灰度测试的流程。
因为我们的主打产品是c/s架构。因此我们利用客户端做了版本隔离的第一道。我们会评估每次后台本次更新是否有删除的接口或者修改的接口。来判断是否会影响旧客户端用户。同时测试这里会做以下几个工作
1.每个版本客户端发布的代码会保留。用旧版本的代码编译接入本次要更新的测试环境。做一次旧版本覆盖。确定不会影响旧的客户端(这个阶段用自动化回归验证就可以减少很多工时的消耗)
在确定不会影响旧版客户端的情况下后台才会更新到正式环境。
2.在后台更新后。测试会用本期的客户端接入线上环境。这时的客户端就灰度测试包了。这是通过客户端做的隔离。
流程图:
灰度测试的好处有一下几个:
1.我们的灰度包可以邀请一下灰度用户体验和测试。可以更加容易收集到反馈。降低试错成本
2.同时内部测试可以对灰度包进行验证。真实的测试数据可以发现很多测试环境无法发现的问题。