使用VS 2010提高软件测试自动化的水平(3) - 自动布置/还原测试环境

      目前,我想我们绝大部分开发团队都是通过人力来布置或者说搭建测试环境的,假设我们要测一个用ASP.NET开发的SNS网站,在准备好相关的硬件之后,我们肯定要找一个测试人员,或者开发人员,有条件的单位可能会找一个专门的IT人员,总之是找一个(我们就叫他小王吧)来安装操作系统、为操作系统打必要的Service Pack、在线或离线升级一些Hotfix,然后安装数据库系统、为数据库系统打必要的Service Pack,继而安装.NET Framework、配置IIS,最后拷贝、安装、配置新Build出炉的SNS网站;过一段时间,快的话可能也就一、两天,当网站更新的Build出来之后,小王同志通常还得再格式化测试机器,重新安装配置操作系统、数据库系统、其它必要的软件和类库以及SNS网站最新的Build,显然,这一过程将往复不已直至项目结束。

 

     据统计,布置/还原测试环境的工作量通常会占到测试人员总工作量的30%左右,甚至有可能更高。为了有效地减少这部分工作量,VS 2010提供了一种叫作"Lab Management"的功能,这是一种基于计算机虚拟技术的功能,它不仅可以大幅减少在搭/拆测试环境过程中的人力投入,甚至还可以实现从Build代码、到布置测试环境、到部署系统、到运行测试整个过程的自动化流水作业,或者叫一条龙式的管理。

 

     使用过Hper-V的朋友对虚机快照(VM snapshot)这个概念(参考图1)应该不会感到陌生,我们可以通过虚机的快照功能把整个虚机还原到以前任何一刻的状态(checkpoint),这与很多应用软件譬如Word中的Undo功能具有异曲同工之妙。

 

Hyper-V中处于不同“时态”的虚机快照
[图1:Hyper-V中处于不同“时态”的虚机快照]

 

     VS 2010中的Lab Management功能也正是基于虚机的这一特性实现了虚拟测试环境的快速布置与还原,而且它走得更远。我们知道,很多时候,一个测试环境可能不只包含一台计算机,而是包含多台计算机,譬如一个典型的三层架构的Web应用的测试环境就可能是架设在一台Web服务器和一台数据库服务器之上的,如果你是利用虚拟环境中进行测试,那么这个虚拟环境就应该包含一个Web虚机和一个数据库虚机(参考图2)。

 

由一个Web服务器虚机和一个数据库服务器虚机组成的三层应用的测试环境
[图2:由一个Web服务器虚机和一个数据库服务器虚机组成的三层应用的测试环境]

 

     如果我们需要测更复杂的场景,譬如涉及负载平衡或数据库镜像的情况,那么一个虚拟测试环境就可能要包含七、八个虚机了,Lab Manager神奇的地方是它可以一次“拍下”这七、八个虚机的快照,并在需要时将他们同时还原(参考图3),这无疑将大大节省布置这种复杂测试环境的时间,也让开发团队在主观上更乐于在安装配置测试环境时尽可能地贴近实际的生产环境,或者说“战地环境”。

 

 

使用环境快照自动还原整个测试环境
[图3:使用环境快照自动还原整个测试环境]

 

     在前文我曾提到,如果测试人员小张在她的Bug报告中附一个其所测系统的环境快照的链接(参考图4),那么开发人员小李就可以通过这个链接直接进入小张的测试环境,而且是直接跳回小张发现那个Bug的时刻,然后在一个完全复原的“历史场景”中进行Debug。这种科幻式的效果就是通过VS 2010中"Lab Management"这一功能变成现实的。

 

通过环境快照链接直接跳入处于某一“历史时刻”的测试环境
[图4:通过环境快照链接直接跳入处于某一“历史时刻”的测试环境]

 

 

posted on 2010-03-31 18:13  君子不器乎  阅读(1820)  评论(1编辑  收藏  举报

导航