论文部分内容阅读
随着云计算概念的推广和流行,越来越多的企业开始研发自己的云计算产品,来提供更为高效、灵活和经济的企业级或是用户级服务。不管是私有云还是公共云服务,其底层实现往往与虚拟化相关,而VMWare推出的虚拟化管理方案vSphere是许多企业进行云平台建设的主要选择。测试基于vSphere的云计算相关的软件产品,无论是功能性测试还是系统级测试,都不可避免地涉及大量与虚拟化资源分配,重组,回收,销毁等操作用例。这些用例具有测试消耗时间长,硬件质量对测试结果影响大,用例失败导致的连锁效应明显等特征。此类测试用例,以一个具有一定规模的软件产品为例,每日构建的冒烟测试可能要涉及几百个,一个测试的迭代周期往往要覆盖到上千个,而产品上线前的系统级测试可能需要执行近万个。一旦发生因测试失败造成大量后续用例无法执行的情况,测试人员就必须人工干预相关测试环境,重新执行测试用例。这种情况在很长的测试周期中,成为一个明显的问题。本文针对上述情况,提出了一种新的自动化测试框架方案,旨在减少基于vSphere的云计算软件测试的时间,最小化一个测试用例失败对于后续测试用例以及整个测试质量的影响,能让每日测试能够一次性完成,从而使隐藏在那些容易被跳过的测试用例中的软件缺陷能够及时的被发现。本文从广泛应用的自动化测试框架TestNG出发,找出其应对上述测试时扩展性和伸缩性的弱点,设计出一种可以自由用例组织的、层次化的、可回退的系统级测试框架。应用这个自动化测试框架,软件测试可以自由地定义测试用例层次,使用原子用例构建大用例并能最小化失败用例对测试环境的影响。当一个用例失败时,资源可回退到上一个健康的状态,跳过相应用例,继续执行。本文提出的自动化测试框架,有效减少了重复配置测试前置环境的时间,减少了单个测试用例失败对整个测试质量影响的程度,并能够以较低的维护代价,对整个测试的结构进行调整。这个框架适用于很多场景,例如以虚拟化为基础的涉及资源操作的软件测试场景,对于网络资源,磁盘资源依赖性强的软件(数据库等存储服务)测试场景,前置资源的配置和整理时间远远大于测试用例本身执行时间的场景。