软件测试环境要不要和软件开发环境隔离?
开发环境要不要和测试环境隔离?要就是说,是不是要各用一套数据库等基础设施?
能隔离当然最好,开发人员和测试人员不会互相干扰。但隔离是有代价的,它意味着你要多引一个数据库,如果你的系统是分布式的,你还要多维护一套MQ、RPC中间件等。
依我看,需不需要隔离要看系统是否满足下面的三个条件:
1、两个环境的系统总是要接触到同一份数据
2、数据被一个系统接触后,业务状态会改变;导致这份数据对另一个系统不再可用
3、很难禁止两个系统在同一时刻接触到同一份数据
解释:
条件1.如果两个环境共享数据库,但开发环境只处理北方数据,测试环境只处理南方的,那不用隔离
条件2.即使两个环境都会处理北方数据,但如果这种处理是只读的,也就是开发环境用了,测试环境可以再用,那也无所谓
条件3.即使数据被一个环境处理后,另一个不能用;但如果对数据的接触是人为触发的,也就是说开发环境被人触发数据改动时,不会干扰测试环境的测试,那也无所谓。
具体的场景:
1、纯读的网站不必隔离,它不满足条件2
2、有写、但所有操作都由用户触发的网站也不必隔离,因为它不满足条件3
3、以全局数据为目标的自启应用需要隔离,比如Quartz,Cron,MQ消费者等,因为它们不满足条件1。以MQ应用为例,如果外部发来的某个数据被测试环境消费过了,开发环境就无法再消费了,这时你应该为开发和测试环境各配一个MQ
4、对自启应用,如果实在不想隔离,就要在代码里做一些env-specific的东西,使得不同环境不会访问到相同的数据,比如开发环境只能访问数据库里flag=Dev的记录。不过,这种作法对程序和数据的侵入都很大,不值得提倡。但这种做法可以应用到其他环境的隔离上,比如预发环境和正式环境,它们必须使用相同的数据库。
====================================分割线================================
最新内容请见作者的GitHub页:http://qaseven.github.io/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
性能测试的重要意义
性能测试的重要意义 随着社会的发展,科技的进步,信息技术的飞速发展,计算机的普及,软件产品已经应用到社会的各个行业领域,加上网络的发展,信息的共享性等,人们对计算机及网络的依赖性越来越大。软件产品的使用者对高质量、高效率的工作方式的要求越来越高,因此对于工作和生活中息息相关的IT系统服务,他们也要求提供更快、更高效的服务品质。 网络的发展,让人们对网络的依赖越来越大,对外界新事物的好奇心等也越来越强烈,成千上万的用户在庞大的网络系统中游转。网络时代的到来,也给提供服务的系统带来严重的系统负荷,这就是系统网络发展中最明显的特征:"高并发"、"数据集中"。 数据越来越集中于后台系统服务器中,众多系统同时为成千上万的网络用户提供服务,如银行、电信、社交网站等公司的软件系统随处可见,影响着我们生活的方方面面。随着各个企业的业务发展、用户访问量的增加,其服务系统承载的负荷也会随着增加,系统性能的好坏将严重影响企业的利益,因此对于IT服务系统的性能测试与优化也越来越受业界的重视。 目前典型的企业信息服务系统的架构大致如图1.1所示。 图1.1 典型的企业信息服务系统的架构 一般是由客户端、网络、防...
- 下一篇
电信网络历史沿革:从模拟通信走向软件定义网络
今天,中国电信在京召开“十年重构 翼启转型----《中国电信CTNet2025网络架构白皮书》发布会”,全面启动网络智能化重构。 网络智能化重构是中国电信实施转型新战略的四大核心举措之一。CTNet2025网络架构白皮书的发布,标志着中国电信正式进入转型新战略的实施阶段。中国电信在《白皮书》中指出,从整个电信网络的历史沿革看,可以划分为四个大的阶段:模拟通信、数字通信、互联网通信、软件定义网络。 从电信网诞生到1970年代,电信网基本都处于模拟通信时代,这一阶段的主要技术特征是基于模拟电路的专用通信系统,代表性技术有载波通信(包括明线载波、电缆载波、模拟微波通信等)和模拟蜂窝移动通信。 1980年代全球开始进入数字通信时代,这一阶段的主要技术特征是语音和数据的数字化,基础是PCM、TDM和分组通信,代表性技术是PDH传输、SDH传输、X.25分组通信、ATM通信、程控数字交换和数字蜂窝移动通信等。 1990 年代全球陆续进入互联网通信时代,这一阶段的主要技术特征是全IP化,最典型的表述是IP over Everything和Everything over IP,IP 成为互联网通信的基...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7