自动布置/还原测试环境
目前,我想我们绝大部分开发团队都是通过人力来布置或者说搭建测试环境的,假设我们要测一个用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功能具有异曲同工之妙。
[图1:Hyper-V中处于不同“时态”的虚机快照]
VS 2010中的Lab Management功能也正是基于虚机的这一特性实现了虚拟测试环境的快速布置与还原,而且它走得更远。我们知道,很多时候,一个测试环境可能不只包含一台计算机,而是包含多台计算机,譬如一个典型的三层架构的Web应用的测试环境就可能是架设在一台Web服务器和一台数据库服务器之上的,如果你是利用虚拟环境中进行测试,那么这个虚拟环境就应该包含一个Web虚机和一个数据库虚机(参考图2)。
[图2:由一个Web服务器虚机和一个数据库服务器虚机组成的三层应用的测试环境]