3、虚拟化给软件测试带来的好处
通过虚拟化技术,软件测试可以获得很多好处,以下就是一些例子;
3.1)测试实验室(Test Lab)的建立
● 空间
● 时间
● 电力
如图所示的一个例子:168 台式机,被12个服务器主机代替。省空间,省电,方便管理,大大降低了测试实验室建设的成本。
大部分的测试环境对测试机器的性能要求都不是很高(性能测试除外),那么对于这种情况,虚拟机是非常适合的解决方案。虚拟机可以用于测试实验室(Test Lab)的构建,支持自动化测试,也可以为远程的测试和开发人员提供机器服务。
举例来说,一个网站的测试,需要10个手工测试人员进行,那么我们可以创建10个虚拟计算机,那么只需要1-2个主机就行了,并且支持远程工作,那么这些手工测试人员可以在家里进行工作。
3.2)软件快速部署和连续集成
虚拟机的管理是非常方便,这大大促进了快速部署(Fast Deployment)和连续集成(Continual Integration)。举例来说,在连续集成的时候,往往需要大量机器,并且快速恢复到某个系统的初始状态。虚拟化技术的高管理性能够很好满足这些需求,同时成本比物理机器要低很多。
3.3)测试用例失败后的调查
在测试用例失败后,通过保存机器状态,可以方便问题的调查。如果使用物理机器,这些机器就需要被占用,一直到问题调查完毕。而且,调查的状态具有不可恢复性。如果使用虚拟化技术,计算机状态可以被保持到到文件;在需要调查问题时,随时可以把虚拟机文件恢复到虚拟机进行调查;同时机器的状态可以随时保存,随时恢复,这给一些不容易重现的问题提供了有利的调查方法。
3.4)虚拟硬件的使用
虚拟化不仅仅可以模拟软件,也可以模拟硬件,包括网卡,光驱,USB接口等等。特别是USB接口的虚拟化,使得在很多USB设备驱动的测试提供了便利。另外一个例子是虚拟光驱,Vista开发出来后,安装以前的方法要制作DVD光盘来进行最后的验证。按照传统的做法,需要180张DVD光盘,需要花2个星期。而使用虚拟化解决方案,制作ISO 映像,只需要2天时间。
4、虚拟化过程中一些好的实践
4.1 仔细设计网络拓扑结构
对于一些对网络特别要求的实验室,需要仔细设计网络Top结构,特别是IP地址的数量
4.2 选购主机,注意扩展性
主机的选购需要考虑内存的扩展能力,内存大小很容易成为增加虚拟机的一个瓶颈。当机器映像很多的时候,磁盘空间也容易出现紧张。网络速度也是需要考虑。
4.3)仔细考虑一些特殊需求的测试
a) USB/驱动 b) 3D效果 c)能源管理 d)性能测试结果的分析应该考虑到虚拟的使用的范围和局限性。
4.4)自动保持闲置的虚拟机
实验室中有长期不用的虚拟机,可以定时自动保存起来,需要时以后可以再恢复。这样可以提高系统的效率,降低能耗。保存和恢复机器都是需要时间的,其性能和网络的存储位置有很大关系。
总结,虚拟化作为一个重要的技术,不仅仅可以节省成本,而且可以帮助我们保护蓝天,何乐而不为呢?