软件测试思考系列[6]:测试环境和配置管理自动化

不同角色之间的划分往往有助于在角色的冲突中将问题暴露,实现透明,最终改进和保证质量。任何的软件开发团队都离不开两个基本角色:开发与测试。 你可以没有项目经理,可以没有架构师,也可以没有设计师;但是不能没有开发,否则没有人可以帮你实现产品;也不能没有测试,否则没有人可以决定你的产品是 否能够交付。这就好像你往杯子里面倒水必须要用眼睛看着,没有眼睛反馈的信息,你永远不知道何时该停下来,也不知道停在那里;我们不希望水太少,更不希望 水溢出来。眼睛与手的反馈循环就是我们实现倒水这一动作高质量的必要系统,而开发和测试的有效循环就是我们实现高质量软件的必须环节。

  但是开发和测试本身的角色的局限性造成了他们往往没有办法有效地形成循环,比如我们经常会听到这样的抱怨:

  测试:这个软件需要的环境太复杂,没有办法为每种情况都创建测试环境.

  测试:我没有办法保证测试的一致性,因为环境在不停地变化,恢复到原来的状态很麻烦.

  开发:你是怎么测出这个Bug的,我怎么没法重现?测试:我忘记步骤了.

  其实这些问题都和测试人员本身的定位有关系,测试人员的首要目标是发现软件中的问题,要做到这一点他们往往专注于软件的反应而忽视了造成这种响应的原因,如:硬件软件环境,系统配置情况,操作一致性等等;测试用例失败有几种原因:

  功能缺陷BUG;

  测试用例本身写的有问题(ST或者ET脚本问题);

  测试环境有问题;

  而这些正是开发人员修复Bug最需要的内容。但是测试人员不关心,或者没有更多的精力来关心这些内容,造成了非常多的“不可重现”的Bug的出现。

  我们可以通过持续集成以及对代码进行版本管理控制来定位变更和导致功能缺陷的原因,同样的,我们也可以对测试环境的变更进行控制和版本管理。之前提到过持续集成要求对一切进行版本管理,其中也包括测试环境。

  初看上去,测试环境的管理是一个非常复杂的问题,之前是否遇到过下面一类问题?

  “要测一个什么东西,需要什么软件,然后手动安装一遍,结果发现另外一个机器上其实已经有这个软件了。” ——测试环境的复用和共享问题。

   “有一个测试用例失败了,可是之前测试的时候一直通过的,开发人员在开发环境下测试也没有问题,测试人员费了九牛二虎之力,借助开发人员的调试帮助,结 果发现是测试环境中的一个配置参数改变了。 此时,另外一个测试人员冒了一句,我之前测试另外一个问题的时候将这个参数改掉了。” ——测试人员花了大量时间确定环境变更,测试环境的变更控制问题。

  “有一个机器,你也在里面装个东西,我也在里面装个东西,结果这个机 器的环境越来越乱,桌面上乱起八糟,最后谁也不记得机器里面的一些文件有什么用处了,当初是因为什么原因使用的,又不敢删除,怕其他人有用,可是又不知道 会是谁。” 测试环境的管理和记录问题,好一些的会渐渐使用一些文档进行记录并共享,但是还是经常出现问题,毕竟文档也会过期。

  “一个测试MM突然大喊, 谁把我的模板和数据删除啦,给我出来!!! 四周鸦雀无声。我小声的问一句,你上传到svn上了吗,上次不是说过一切都要版本控制吗?” 测试环境和数据的备份和删除,广义上说这个也属于变更。

   “我这里需要再安装针对ubuntu和suse操作系统的测试,并且需要32位和64位都有,而且还要设置一大堆配置。可是现有的5台机器都安装满了, 总不能重装来重装去的吧,每次重装都要了我的老命了...” 测试硬件资源的利用,和环境管理的效率问题。自动配置技术和利用虚拟化技术解决,测试环境数据化,配置化,然后才能版本控制和管理。

  开发人员:“我在自己机器上测试了没问题啊”, 测试人员:“可我在测试环境下面就是有问题啊。” 统一的测试环境问题。

  以上的这些问题,都指向了一个关键点,测试环境的管理,分而细之,又包括几个重要的因素:变更、自动化、数据化、虚拟化、共享。

  虚拟化技术

  虚拟化技术可以帮助将测试环境数据化,自动化,并借此达到重复利用的目的。虚拟化技术有很多,比较优秀的有VMWare和Virtual Box。比如,很多测试环境是寄生在操作系统中的,我们可以将这些操作系统做成操作系统基线,平时不需要测试时可以不开着,要用的时候再开。这些操作系统基线可以进行版本控制,因为文件比较大,用svn之类的管理可能会遇到一些问题,可以针对性设计一些大文件版本控制软件(比如:结合SVN和FTP的优点)。

  配置管理自动化

   先后研究了几种配置管理的工具,Chef, CfEngine, puppet,最后用的比较多的是Chef。Chef比较好的一点是提供OpenSouce Chef Server,可以自己搭建服务器,也是这几个里面最先搭成功的,算是比较容易上手吧。就像一个大厨(Chef)使用刀(Knife)实验各种不同的菜单 (Recipes),制成各种食谱(CookBook)一样,一个配置管理工程师就是用它来制作不同的测试环境。

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-21 02:39:38

软件测试思考系列[6]:测试环境和配置管理自动化的相关文章

借助 Gentle 快速部署代码到测试环境的总结

我想很多开发的同学都经历过这样的开发流程:本地修改代码,把代码推到测试环境,重启测试环境需要的服务,本地看效果,改bug重复1-3,功能稳定后上线 这个过程有什问题呢?     假设你是一个做过运维或者能力很强的人,比如我这种,本地跑测试环境,但是假如一个新人,或者对测试环境中的某些 部分不是很了解的人, 甚至需要和生产环境完全一样的条件下, 本地可能就不好使了. 那么这需要一个测试服务器     首先你每次修改代码, push ,重启环境都需要你登陆测试环境,至少不够自动化.然后退回本地看效果

性能测试知多少---测试环境搭建

在进行性能则试前,需要完成性能测试的搭建工作,一般包括硬件环境.软件环境及网络环境,可以要求配置和开发工程师协助完成,但是作为一个优秀性能测试工程师,这也是你的必备技能之一.   性能测试环境与功能测试环境的区别                                                  那么性能测试环境与功能测试环境有什么不同呢?性能测试对测试环境的干净.独立性要求更高,更为严格.对于一个相对较规范的公司,都会建立其独立的研发环境.测试环境.线网环境(最终运行软件的环境)

ASP.NET比拼PHP的测试环境

ASP.NET与PHP速度对比 PHPChina资讯:刚刚在9月编程语言排行榜上取得历史性突破的PHP在Web开发领域最到的对手可能就是基于微软.NET技术的ASP.NET.近日,微软的Joe Stagner在博客上发表了一系列文章比较了PHP和ASP.NET性能方面的文章,引起了来自双方程序员的大量回应.Joe表示,他会将这样的测试持续下去,并寻求更为合适的方式,以获得对实际项目来说尽可能有参考价值的结论. Joe在博客中称,一般来说,作性能测试的目的是要尝试证明一方比令一方要快.我受雇于微软

如何控制服务器虚拟测试环境

虚拟服务器技术被用在试生产环境,目的是节省资金.时间和人力,然而同样的工具如果未经检查就可能会导致结构复杂,资源浪费并使管理难度加大. 行业分析师和IT专业人士说,虚拟化技术解除了物理服务器测试环境的限制,实现了IT员工间的资源共享,这就使得测试工作更容易进行,但却需要进行严格的控制. Forrester调查公司的高级分析师Carey Schwaber说,"在测试环境中采用虚拟化技术的一个缺陷是影像数量的增多,特别是在通过不同操作系统测试多个结构时.环境 的控制工作必须认真进行,必须有相关政策来

快速一键部署测试环境,降低环境配置风险

环境部署是软件测试很重要的一个环节,但也是比较耗时间的环节,很多企业经常是项目立项后,开始邮件申请服务器资源,再三催促审批通过后,进行手工部署搭建环境,然后解决各种依赖和修改各种配置文件.如何有效减少环境部署流程,提升环境搭建效率,并且保证环境配置质量安全呢?针对这些需求,新型一站式研发效能平台,云效的环境管理系统提供了解决方案. 首先,解决测试服务器资源管理的问题. 云效平台统一对测试服务器资源(包含:测试服务器.帐号)进行时间片管理(按时间进行申请占用的方式).企业在后台申请机器信息,点击I

docker搭建大规模测试环境的实践

内容来源:2017年4月8日,第四范式资深测试开发工程师孙高飞在"饿了么技术沙龙[第四弹]北京研发中心测试专场"进行<docker搭建大规模测试环境的实践>演讲分享.IT大咖说作为独家视频合作方,经主办方和讲者审阅授权发布. 嘉宾分享视频地址:http://t.cn/R9UCnpq 困境 当今互联网行业发展迅速,产品架构逐渐复杂,导致环境搭建困难. 测试环境不一致. 因为搭建环境困难,环境不多,所以一套环境有多人使用,容易造成环境的互相踩踏问题. 随着业务的发展和时间的积累

客户端测试环境的管理

您是否遇到测试Windows软件时,要安装部署新操作系统或一堆兼容性软件的情况?如果有,花费多长时间?20分钟.半个小时甚至更多? 可以在10分钟之内做到吗? 部署一个Windows测试环境之后,如何让其他人可以很轻松地复用呢? 问题的产生 1.客户端测试环境的概念 所谓客户端测试环境,是指部署在Windows操作系统下的应用软件测试环境,主要涉及操作系统和应用软件,测试环境应该能够满足被测客户端软件启动.运行.执行测试用例的基本操作,同时又能满足各种特殊测试用例的执行需求,如安全性测试用例.兼

Windows Server 2008虚拟机ERP测试报告(上)测试环境

x86服务器的强大计算能力终于借助四核的普及而得到确认.虚拟机技术中的高可用方案.实时迁移将给网管调度计算资源提供最便捷的手段.VMware的上市,将2007年定格为http://www.aliyun.com/zixun/aggregation/13883.html">虚拟化技术年. 但是虚拟化技术高额的许可费用以及服务费让中小企业难以企及(VMware培训费高达15000美金),而微软虚拟化技术的日渐成熟无疑是打破这个僵局的利器.对中小企业市场,微软Hyper-V的价格优势和Window

USBWebserver在本机快速建立网站测试环境

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 阿汤在很久以前曾介绍过使用phpnow来架设本机的网站测试环境,一直到现在还是在使用中,因为蛮方便的,不过有一个麻烦的地方是常常在测试完后忘记停用apache和mysql服务,启动和关闭完全都是手动的,而今天再来介绍一套也是可以带着走的快速架站工具USBWebserver,内建了许多网站主机必备的套件,很适合用来架设本机测试网站使用. USB