一种软件测试系统及方法

文档序号:6638146阅读:225来源:国知局
一种软件测试系统及方法
【专利摘要】本发明公开了一种软件测试系统及方法,所述系统包括一台或多台阵列服务器,用于存储对应于不同测试环境的虚拟镜像文件,所述测试环境包括操作系统及对应的应用程序;一台或多台测试服务器;中心服务器,用于接收并存储待测试软件及待测试的测试环境信息,并根据所述测试环境信息将存储于阵列服务器中的对应的虚拟镜像文件加载并运行于一台或多台测试服务器中;通讯模块,用于随虚拟镜像文件加载并运行于对应的测试服务器中,与中心服务器通讯,从中心服务器下载待测试软件,并在测试服务器中运行该待测试软件。本发明在整个测试过程中无需测试人员参与,免除了很多人工操作,同时测试机与测试环境无需一一对应,实现比较灵活。
【专利说明】一种软件测试系统及方法

【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其涉及一种软件测试系统及方法。

【背景技术】
[0002]现有的软件测试系统,出于兼容性的考虑,需要准备相当多的测试环境来进行测试,而每种测试环境都需要独立的安装并运行于一台计算机中,以对应进行测试,并需要手工记录各种测试结果,工作量很大。
[0003]特别是对于一些操作系统的补丁程序,例如,当微软发布某些补丁时,对于安全产品的开发团队来说,为了保障这些补丁可以正常的安全的运行于用户计算机中,就需要开发团队快速测试这些当期发布的补丁在各种操作系统(例如XP sp2,xp sp3, vista,win732的各种版本,win764的各种版本,2000, 2003server, 2008server等)或各种应用程序环境(安装有office 32或子版本,office 64, adobe各版本,flash各版本等)下是否可以正常安装补丁,确保安装过程中或安装重启后不出现蓝屏等问题。
[0004]通常情况下,测试人员会针对上述各环境遍历测试这些新补丁安装情况,若出现安装异常(如蓝屏)需记录,并提交给漏洞库组修改补丁条件以屏蔽该环境的补丁安装。
[0005]由此可见,现有的软件测试需要大量的测试人员才能完成,而且需要测试机与环境一一对应,只能测完一个再测另一个,测试效率比较低。


【发明内容】

[0006]本发明所要解决的技术问题在于提供一种软件测试系统及方法,以改善软件测试过程中的工作效率。
[0007]为解决上述技术问题,本发明提供一种软件测试系统,包括:
[0008]一台或多台阵列服务器,用于存储对应于不同测试环境的虚拟镜像文件,所述测试环境包括操作系统及对应的应用程序;
[0009]一台或多台测试服务器,用于执行测试;
[0010]中心服务器,用于接收并存储待测试软件及待测试的测试环境信息,并根据所述测试环境信息将存储于阵列服务器中的对应的虚拟镜像文件加载并运行于一台或多台测试服务器中;
[0011]通讯模块,用于随虚拟镜像文件加载并运行于对应的测试服务器中,与中心服务器通讯,从中心服务器下载待测试软件,并在测试服务器中运行该待测试软件。
[0012]本发明另提供一种软件测试方法,包括:
[0013]提供一台或多台阵列服务器,以存储对应于不同测试环境的虚拟镜像文件,所述测试环境包括操作系统及对应的应用程序;
[0014]提供一台或多台测试服务器,以执行测试;
[0015]提供至少一台中心服务器,以接收并存储待测试软件及待测试的测试环境信息,并根据所述测试环境信息将存储于阵列服务器中的对应的虚拟镜像文件加载并运行于一台或多台测试服务器中;
[0016]提供一通讯模块,随虚拟镜像文件加载并运行于对应的测试服务器中,与中心服务器通讯,从中心服务器下载待测试软件,并在测试服务器中运行该待测试软件。
[0017]本发明在整个测试过程中无需测试人员参与,免除了很多人工操作,同时测试机与测试环境无需一一对应,实现比较灵活,同时,测试时由中心服务器自动判断测试服务器的负载性能,从而可实现并行测试。

【专利附图】

【附图说明】
[0018]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1为根据本发明的实施例所示的软件测试系统示意图。
[0020]图2为根据本发明实施例所述的软件测试方法流程图。

【具体实施方式】
[0021]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022]本发明实施例首先需要搭建一云计算测试环境,如图1所示,为根据本发明的实施例所示的软件测试系统示意图,包括多台阵列服务器101,多台测试服务器102,中心服务器103及通讯模块104,通过云端中心服务器103的统一控制,可实现无人值守的测试任务自动化执行,极大的提闻了测试效率,其中:
[0023]所述阵列服务器101,用于存储对应于不同测试环境的虚拟镜像文件,所述测试环境包括操作系统及对应的应用程序;
[0024]所述测试服务器102,用于执行测试;
[0025]所述中心服务器103,用于接收并存储待测试软件及待测试的测试环境信息,并根据测试环境信息将存储于阵列服务器中的对应的虚拟镜像文件加载并运行于一台或多台测试服务器中;
[0026]所述通讯模块104,用于随虚拟镜像文件一同加载并运行于对应的测试服务器中,与中心服务器通讯,从中心服务器下载待测试软件,并在测试服务器中运行该待测试软件。
[0027]利用本发明实施例的测试系统,可以在云中自定义添加多台测试服务器,在测试过程中也可随时添加新的测试服务器,无论是是一台还是多台,也无论是是空闲或任务繁忙,都可以很好的执行测试任务。
[0028]各种操作系统及应用程序的虚拟镜像均可以保存在云中阵列服务器中,无需和测试服务器对应。
[0029]所述通讯模块104可以存储于任何位置,但优选存储于所述阵列服务器101中,且所述不同的操作系统可分别对应有相匹配的通讯模块,随虚拟镜像文件一同加载并运行于对应的测试服务器中。实际上,通讯模块104可以整合于对应的操作系统中,与操作系统同时存储,同时加载并运行于对应的测试服务器中。
[0030]所述通讯模块104,可以在待测试软件执行完毕后关闭该待测试软件,重启对应的测试服务器中运行的操作系统,同时向中心服务器发送第一次通知,并在重启成功后向中心服务器发送第二次通知;
[0031]所述中心服务器103,如果在收到所述第一次通知后的预定时间间隔内未收到第二次通知,则记录对应的测试服务器中运行的测试环境信息。
[0032]其中,所述第一次通知的作用是通知中心服务器当次测试执行完毕,表示在整个测试过程中没有发生什么意外而造成测试终止的情况,这主要是因为在打某些不兼容补丁时,有可能在补丁程序执行过程中就出现了蓝屏等意外情况,因此有必要发送第一次通知以确认在执行过程中未发生意外终止的情况。但第一次通知并不意味着测试成功,还需要进行一次重启过程,重启成功后发送第二次通知,以表明系统在进行测试后可正常重启,这主要是因为打某些不兼容补丁时有可能在重启过程中造成系统报错从而造成进入不了系统的情况。
[0033]此外,所述预定时间间隔可以是在测试时提交的测试信息的配置中进行设置,该值可由过去测试经验计算得出,例如上几次测试过程中所记录的测试完毕到整个重启过程完毕的时间。一开始时可设置为最慢的测试服务器打补丁完成后到重启完毕所用的时间,也可以通过事先手动做一次测试来评估此间隔时间。
[0034]所述通讯模块104,可以在所述待测试软件运行过程中始终与中心服务器保持心跳连接;
[0035]所述中心服务器103,如果侦测到与所述通讯模块的心跳连接中断,则记录对应的测试服务器中运行的测试环境信息。
[0036]所述中心服务器103在记录对应的测试服务器中运行的测试环境信息后,进一步用于执行对应测试环境的增量备份或镜像还原。
[0037]所述中心服务器103根据测试服务器的负载状态,将对应的虚拟镜像文件加载并运行于一台或多台选定的测试服务器中。
[0038]所述中心服务器103可进一步用于为不同测试环境分配不同的权值,并将权值高的测试环境对应的虚拟镜像文件优先加载并运行于测试服务器中。
[0039]权值分配可根据不同应用环境在现实中被用户使用的多少来配置,例如对于xpsp3,win7 32spl,win7 64spl等现实中用户所使用最多的系统即可分配较高的权值。
[0040]所述中心服务器103还可进一步用于将当前权值最高的测试环境对应的虚拟镜像文件对应加载至当前负载状态最轻的测试服务器中运行。
[0041]如图2所示,为根据本发明实施例所述的软件测试方法流程图,首先提供一台或多台阵列服务器,以存储对应于不同测试环境的虚拟镜像文件,所述测试环境包括操作系统及对应的应用程序(步骤201);提供一台或多台测试服务器,以执行测试(步骤202);提供至少一台中心服务器,以接收并存储待测试软件及待测试的测试环境信息,并根据测试环境信息将存储于阵列服务器中的对应的虚拟镜像文件加载并运行于一台或多台测试服务器中(步骤203);提供一通讯模块,随虚拟镜像文件一同加载并运行于对应的测试服务器中,与中心服务器通讯,从中心服务器下载待测试软件,并在测试服务器中运行该待测试软件(步骤204)。
[0042]其中,所述通讯模块在待测试软件执行完毕后关闭该待测试软件,重启对应的测试服务器中运行的操作系统,同时向中心服务器发送第一次通知,并在重启成功后向中心服务器发送第二次通知;
[0043]所述中心服务器如果在收到所述第一次通知后的预定时间间隔内未收到第二次通知,则记录对应的测试服务器中运行的测试环境信息。
[0044]此外,所述通讯模块在所述待测试软件运行过程中始终与中心服务器保持心跳连接;
[0045]所述中心服务器如果侦测到与所述通讯模块的心跳连接中断,则记录对应的测试服务器中运行的测试环境信息。
[0046]所述通讯模块可以存储于所述阵列服务器中,且所述不同的操作系统分别对应有相匹配的通讯模块,随虚拟镜像文件一同加载并运行于对应的测试服务器中。
[0047]所述中心服务器在记录对应的测试服务器中运行的测试环境信息后,也就是说侦测到心跳连接中断或没收到第二次通知后,可进一步执行对应测试环境的增量备份或镜像还原,以恢复测试环境。
[0048]所述中心服务器可根据测试服务器的负载状态,将对应的虚拟镜像文件加载并运行于一台或多台选定的测试服务器中。
[0049]此外,还可以为不同测试环境分配不同的权值,所述中心服务器将权值高的测试环境对应的虚拟镜像文件优先加载并运行于测试服务器中。
[0050]还可以将当前权值最高的测试环境对应的虚拟镜像文件对应加载至当前负载状态最轻的测试服务器中运行。
[0051]例如,利用本发明对系统补丁程序进行测试时,测试者可以在测试前通过中心服务器的web页面提交本次测试的新的漏洞库、此次需要打补丁的清单、需要测试的环境信息,中心服务器接收到提交的测试信息后,可首先判断测试服务器的负载状态,其负载均衡算法可以是:
[0052]计算各测试服务器的CPU或内存大小并分配不同的权值,并根据当前各测试服务器η分钟CPU使用率,内存使用率,硬盘I/O吞吐量及当前协议连接数(TCP连接数或SOCKET连接数等能区分网络繁忙程度的指标)等指标转换计算获得一数值a,并与平均使用率阀值b比较,当大于b时则认为是可分配任务的测试服务器,然后再跟据各服务器权值,由高到低分配。
[0053]同样,对包含不同操作系统OS的各测试环境的虚拟镜像也分配不同权值,权值高的优先去执行测试。
[0054]这样,中心服务器就可以选择高权重的测试服务器优先加载高权值的镜像开始执行打补丁测试。
[0055]然后,由于镜像文件中包含有通讯模块,当操作系统启动后,通讯模块的通信程序也同时启动运行,从中心服务器下载最新的漏洞修复程序,下载后会根据修复策略进行漏洞修复,修复过程中,通讯模块与中心服务器始终保持心跳连接,该连接用于判断修复过程中系统是否正常,一旦心跳连接中断则说明该漏洞修复程序的执行导致系统异常,应将该测试服务器中运行的测试环境信息进行记录。
[0056]如果漏洞修复过程正常,在修复完毕后将漏洞修复程序退出,由通讯模块控制操作系统重启,同时发送通知I给中心服务器,重启成功后,通讯模块再发送通知2给中心服务器。如果中心服务器在收到通知I后的一定时间内仍未收到通知2,则可以认为系统可能出现蓝屏,应将该测试服务器中运行的测试环境信息进行记录。
[0057]如此,中心服务器就可以及时的将记录的统计修复结果保存下来,提供给测试人员查询。如果根据记录发现出现测试异常,还可以自动执行镜像文件的追加备份或还原,以恢复测试环境。
[0058]应用本发明的实施例,通过云计算,运用中心服务器与测试服务器之间的自通信检测修复确认无异常机制,可实现无人值守的自动化快速测试方案。
[0059]以上实施例仅以漏洞补丁程序的测试为例对本发明进行了说明,但本发明的技术方案同样适用于其他类型的软件测试需求,本发明对此不作限制。
[0060]本发明的实施例公开了:
[0061]Al、一种软件测试系统,包括:
[0062]一台或多台阵列服务器,用于存储对应于不同测试环境的虚拟镜像文件,所述测试环境包括操作系统及对应的应用程序;
[0063]一台或多台测试服务器,用于执行测试;
[0064]中心服务器,用于接收并存储待测试软件及待测试的测试环境信息,并根据所述测试环境信息将存储于阵列服务器中的对应的虚拟镜像文件加载并运行于一台或多台测试服务器中;
[0065]通讯模块,用于随虚拟镜像文件加载并运行于对应的测试服务器中,与中心服务器通讯,从中心服务器下载待测试软件,并在测试服务器中运行该待测试软件。
[0066]A2、如权利要求Al所述的系统,其特征在于,所述通讯模块,进一步用于在待测试软件执行完毕后关闭该待测试软件,重启对应的测试服务器中运行的操作系统,同时向中心服务器发送第一次通知,并在重启成功后向中心服务器发送第二次通知;
[0067]所述中心服务器,如果在收到所述第一次通知后的预定时间间隔内未收到第二次通知,则记录对应的测试服务器中运行的测试环境信息。
[0068]A3、如权利要求Al所述的系统,其特征在于,所述通讯模块,进一步用于在所述待测试软件运行过程中与中心服务器保持心跳连接;
[0069]所述中心服务器,如果侦测到与所述通讯模块的心跳连接中断,则记录对应的测试服务器中运行的测试环境信息。
[0070]A4、如权利要求Al所述的系统,其特征在于,所述通讯模块存储于所述阵列服务器中,且所述不同的操作系统分别对应有相匹配的通讯模块,随虚拟镜像文件加载并运行于对应的测试服务器中。
[0071]A5、如权利要求A2或A3所述的系统,其特征在于,所述中心服务器在记录对应的测试服务器中运行的测试环境信息后,进一步用于执行对应测试环境的增量备份或镜像还原。
[0072]A6、如权利要求Al所述的系统,其特征在于,所述中心服务器根据测试服务器的负载状态,将对应的虚拟镜像文件加载并运行于一台或多台选定的测试服务器中;所述中心服务器判断测试服务器负载状态的指标包括CPU使用率,内存使用率,硬盘吞吐量,和/或当前协议连接数。
[0073]A7、如权利要求Al所述的系统,其特征在于,所述中心服务器进一步用于为不同测试环境分配不同的权值,并将权值高的测试环境对应的虚拟镜像文件优先加载并运行于测试服务器中。
[0074]AS、如权利要求A7所述的系统,其特征在于,所述中心服务器进一步用于将当前权值最高的测试环境对应的虚拟镜像文件对应加载至当前负载状态最轻的测试服务器中运行。
[0075]B9、一种软件测试方法,包括:
[0076]提供一台或多台阵列服务器,以存储对应于不同测试环境的虚拟镜像文件,所述测试环境包括操作系统及对应的应用程序;
[0077]提供一台或多台测试服务器,以执行测试;
[0078]提供至少一台中心服务器,以接收并存储待测试软件及待测试的测试环境信息,并根据所述测试环境信息将存储于阵列服务器中的对应的虚拟镜像文件加载并运行于一台或多台测试服务器中;
[0079]提供一通讯模块,随虚拟镜像文件加载并运行于对应的测试服务器中,与中心服务器通讯,从中心服务器下载待测试软件,并在测试服务器中运行该待测试软件。
[0080]B10、如权利要求B9所述的方法,其特征在于,所述通讯模块在待测试软件执行完毕后关闭该待测试软件,重启对应的测试服务器中运行的操作系统,同时向中心服务器发送第一次通知,并在重启成功后向中心服务器发送第二次通知;
[0081]所述中心服务器如果在收到所述第一次通知后的预定时间间隔内未收到第二次通知,则记录对应的测试服务器中运行的测试环境信息。
[0082]B11、如权利要求B9所述的方法,其特征在于,所述通讯模块在所述待测试软件运行过程中与中心服务器保持心跳连接;
[0083]所述中心服务器如果侦测到与所述通讯模块的心跳连接中断,则记录对应的测试服务器中运行的测试环境信息。
[0084]B12、如权利要求B9所述的方法,其特征在于,所述通讯模块存储于所述阵列服务器中,且所述不同的操作系统分别对应有相匹配的通讯模块,随虚拟镜像文件加载并运行于对应的测试服务器中。
[0085]B13、如权利要求BlO或Bll所述的方法,其特征在于,所述中心服务器在记录对应的测试服务器中运行的测试环境信息后,进一步执行对应测试环境的增量备份或镜像还原。
[0086]B14、如权利要求B9所述的方法,其特征在于,所述中心服务器根据测试服务器的负载状态,将对应的虚拟镜像文件加载并运行于一台或多台选定的测试服务器中;所述中心服务器判断测试服务器负载状态的指标包括CPU使用率,内存使用率,硬盘吞吐量,和/或当前协议连接数。
[0087]B15、如权利要求B9所述的方法,其特征在于,进一步包括:为不同测试环境分配不同的权值,所述中心服务器将权值高的测试环境对应的虚拟镜像文件优先加载并运行于测试服务器中。
[0088]B16、如权利要求B15所述的方法,其特征在于,进一步包括:将当前权值最高的测试环境对应的虚拟镜像文件对应加载至当前负载状态最轻的测试服务器中运行。
[0089]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0090]本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0091]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0092]以上对本申请所提供的一种防止登录信息被盗的方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
【权利要求】
1.一种软件测试系统,包括: 一台或多台阵列服务器,用于存储对应于不同测试环境的虚拟镜像文件,所述测试环境包括操作系统及对应的应用程序; 一台或多台测试服务器,用于执行测试; 中心服务器,用于接收并存储待测试软件及待测试的测试环境信息,并根据所述测试环境信息将存储于阵列服务器中的对应的虚拟镜像文件加载并运行于一台或多台测试服务器中; 通讯模块,用于随虚拟镜像文件加载并运行于对应的测试服务器中,与中心服务器通讯,从中心服务器下载待测试软件,并在测试服务器中运行该待测试软件。
2.如权利要求1所述的系统,其特征在于,所述通讯模块,进一步用于在待测试软件执行完毕后关闭该待测试软件,重启对应的测试服务器中运行的操作系统,同时向中心服务器发送第一次通知,并在重启成功后向中心服务器发送第二次通知; 所述中心服务器,如果在收到所述第一次通知后的预定时间间隔内未收到第二次通知,则记录对应的测试服务器中运行的测试环境信息。
3.如权利要求1所述的系统,其特征在于,所述通讯模块,进一步用于在所述待测试软件运行过程中与中心服务器保持心跳连接; 所述中心服务器,如果侦测到与所述通讯模块的心跳连接中断,则记录对应的测试服务器中运行的测试环境信息。
4.如权利要求1所述的系统,其特征在于,所述通讯模块存储于所述阵列服务器中,且所述不同的操作系统分别对应有相匹配的通讯模块,随虚拟镜像文件加载并运行于对应的测试服务器中。
5.如权利要求2或3所述的系统,其特征在于,所述中心服务器在记录对应的测试服务器中运行的测试环境信息后,进一步用于执行对应测试环境的增量备份或镜像还原。
6.如权利要求1所述的系统,其特征在于,所述中心服务器根据测试服务器的负载状态,将对应的虚拟镜像文件加载并运行于一台或多台选定的测试服务器中;所述中心服务器判断测试服务器负载状态的指标包括CPU使用率,内存使用率,硬盘吞吐量,和/或当前协议连接数。
7.如权利要求1所述的系统,其特征在于,所述中心服务器进一步用于为不同测试环境分配不同的权值,并将权值高的测试环境对应的虚拟镜像文件优先加载并运行于测试服务器中。
8.如权利要求7所述的系统,其特征在于,所述中心服务器进一步用于将当前权值最高的测试环境对应的虚拟镜像文件对应加载至当前负载状态最轻的测试服务器中运行。
9.一种软件测试方法,包括: 提供一台或多台阵列服务器,以存储对应于不同测试环境的虚拟镜像文件,所述测试环境包括操作系统及对应的应用程序; 提供一台或多台测试服务器,以执行测试; 提供至少一台中心服务器,以接收并存储待测试软件及待测试的测试环境信息,并根据所述测试环境信息将存储于阵列服务器中的对应的虚拟镜像文件加载并运行于一台或多台测试服务器中; 提供一通讯模块,随虚拟镜像文件加载并运行于对应的测试服务器中,与中心服务器通讯,从中心服务器下载待测试软件,并在测试服务器中运行该待测试软件。
10.如权利要求9所述的方法,其特征在于,所述通讯模块在待测试软件执行完毕后关闭该待测试软件,重启对应的测试服务器中运行的操作系统,同时向中心服务器发送第一次通知,并在重启成功后向中心服务器发送第二次通知; 所述中心服务器如果在收到所述第一次通知后的预定时间间隔内未收到第二次通知,则记录对应的测试服务器中运行的测试环境信息。
【文档编号】G06F11/36GK104360952SQ201410757945
【公开日】2015年2月18日 申请日期:2012年3月2日 优先权日:2012年3月2日
【发明者】张钊 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1