如何管理测试环境

网友投稿 721 2022-11-14

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

如何管理测试环境

变更管理

如何理解变更呢?变更并不是简单的代码发布,还包含配置变更/服务器变更/DDL变更甚至业务活动的开关等变更,理论上所有的变更都会对代码运行结果造成影响。

据统计,线上大部分问题或者说线上故障,都是由于变更导致的,因此变更管理是很重要。

对于变更,常用的手段有变更review/变更check/变更审批。一方面通过不同的角色参与,从不同的角度进行review,查漏补缺;

另一方面通过check和审批的方式落实责任,这样才能提高团队所有成员对于变更风险的认识和质量保障意识。

在变更review和double check时候,需要变更申请人说明变更内容/影响范围/异常情况的解决方案等,这样即使变更出问题,也可以及时修复,将风险控制在合理范围内。

当然,变更的review和审批流程,需要视环境不同而有不同程度的执行力度。

下面是一段我之前工作中和DBA负责人的对话:

DBA负责人:那可真是太好了,我一直想干这个事情,但我去推业务那边一直不搭理我,阻力很大。。。

我:那你看我们合作怎么样,我去和业务研发以及测试协调这个事情,你把底层的技术规范搞定?

DBA负责人:没问题,权限收口,表结构变更统一走工单,降低变更频次,规范数据库和SQL规范,我来搞定;

我:那行,你先准备相关的技术方案和规范,我们先挑一个环境试点,业务方我去沟通,好了我们就开始搞;

DBA负责人:可以,有啥需要我帮忙的尽管说,做这个事情对我们DBA也是个好事情。。。

分享上面这个对话过程,实际上要表达的是:很多时候我们工作中面临的痛点,也是其他人想解决的问题,寻求利益共同体,协作达成一件事,比孤军奋战更轻松,达成的效果也会更好。

权限管理

前几天爆料的某国企机构数据泄露,据说原因是某研发将accesskey上传到了csdn导致。

这里不对这个事件进行评价,而是希望借助这个事件说明权限管理的重要性。

从我个人的工作经验来说,测试环境的权限最好是让测试同学自己维护和管理,特别是发布权限。

原则上,从测试环境开始,后续每个流转环境的发布权限,最好都由测试同学来负责。

这样一方便可以避免未经许可的发布,另一方面测试同学对于发布和变更及时了解评估,也有助于控制风险和出现问题及时周知和补救。下面是几个案例:

服务发布没有限制:通过发布平台设置服务发布时间窗口,和各研发及测试团队协商沟通确认(降低任意发布带来的服务不可用);

任何人任何时间都发布:每个应用或业务域应用合集指定服务owner,服务发布需要在发布平台经过owner二次确认才可以执行发布流程;

信息不同步&沟通成本高:建立专项的服务发布信息同步群,某应用需要发布,自动艾特对应的owner进行通知确认(可设置免打扰,但带来的影响需要owner自己负责);

数据管理

测试数据的重要性不言而喻,每次测试活动开展都需要数据的支撑,这也是我上面提到的数据源隔离和同类型环境共享数据源的原因,看似很矛盾,实际上都是踩了很多坑之后的经验总结。

有类似经历的同学相信都有过下面的工作体验:

多个测试环境的表结构变更,需要提多次DDL工单,DBA同学任务量大;

假设测试过程中测试环境切换,变更就要重新进行,很容易遗漏或者变更有误;

即使有专门的测试数据预埋工具,但多环境多数据源会导致数据准备更耗时,加大复杂度;

不同环境不同数据源,进行自动化回归的时候,测试case和数据可能要进行修改适配,耗时费力;

即使多个项目同时进行,但最终发布线上仅是一套环境和数据源,这样会导致频繁变更带来的线上风险概率;

针对这些现象,我是怎么做的呢?

首先,选择一个环境作为基准环境,所有的DDL变更都先变更到基准环境,然后自动变更到其他环境的数据源上;

其次,stable环境落地,环境发散现象会逐渐收敛,搭建维护变更成本降低后,反而有时间资源做专门的优化工作;

然后,变更权限和入口收敛,通过统一的工单系统进行,降低整体的变更混乱现象,所有变更有迹可循有记录可查;

工具手段

上面聊了测试环境的重要性和常见的一些环境管理方法,其实总结一下,核心思路有下面几点:

所有变更都需要check,重大变更需要审批;

借助工具和平台,将变更权限收口,用统一的流程去规范操作过程;

降低变更频次,明确变更流转的准入准出标准,测试同学做好质量卡点;

其他管理方法

除了上述的一些案例和技术方案之外,还有下面的一些手段,比如:

代码分支命名规范;

服务不可用订阅通知;

服务发布通知功能上线;

环境不可用问题及解决方案培训;

成立虚拟小组,每个域指定负责该域的测试owner;

整合不同业务线的自动化框架和方式,提供统一的技术方案;

测试环境接入日志监控告警,从服务层-DB层,监控告警做到自动化和透明化;

环境和服务不可用时长纳入故障SLA计量维度,定时复盘和分析,并不断落地改进;

上一篇:性能测试如何创造业务价值
下一篇:被忽视的问题:测试环境配置管理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~