软件自动升级测试系统及方法与流程

文档序号:12063365阅读:231来源:国知局
软件自动升级测试系统及方法与流程

本发明涉及软件升级测试技术领域,尤其涉及一种计算机软件自动升级测试系统及方法。



背景技术:

软件(Software)是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件可划分为系统软件、应用软件和介于这两者之间的中间件。软件包括在计算机上运行的计算机程序及与这些计算机程序相关的文档,即软件可被认为是程序加文档的集合体。

固件(Firmware)即写入EROM(Erasable Read-Only Memory,可擦写只读存储器)或EEPROM(Electrically Erasable Programmable Read - Only Memory,电可擦可编程只读存储器)中的程序,一般是指设备内部保存的设备“驱动程序”。通过上述的固件,设备中的操作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件。

目前,随着计算机及互联网技术的快速发展,各种电子设备诸如PC(personal computer,即个人计算机,其是由硬件系统和软件系统组成并能独立运行来完成特定功能的电子设备)已经成为人们日常生活的必须品,使得厂家针对电子设备上固件和/或软件的升级(尤其是自动升级)操作越来越慎重。

现今,各个厂家在发布新的升级程序前,一般需要先在DUT(Device Under Text,被测设备)上测试通过,以确保用户在使用时能够通过点击系统管理中的自动升级按钮后,相应的软件能够完成自动升级的操作;而为了确保设备能够成功的自动完成升级操作,就需要在DUT上反复进行多次升级操作的实验,但目前一般是采用手动的方式来进行升级测试操作,就使得进行多次循环的升级测试操作时,由于操作次数过大,会大大增加测试人员的工作量,同时还使得测试周期过长,甚至会使得有些循环的升级测试操作无法实现,进而大大增大了测试成本。另外,一些具有防止刷机功能的设备,由于DUT web升级页面一般不支持导入低版本固件进行降级操作的功能,其会进一步的增大进行循环测试的难度。



技术实现要素:

针对上述问题,本申请提供了一种软件自动升级测试系统,基于一测试平台设备,所述测试系统包括:

第一服务器,存储有升级版本程序;

第二服务器,存储有回退版本程序,所述服务器搭建于所述测试平台上;

DUT设备,分别与所述第一服务器和所述第二服务器通讯连接;

其中,所述第二服务器和所述测试系统的启动链接均设置于所述测试平台设备的启动项中;所述DUT设备下载所述升级版本程序进行升级操作成功后,该DUT设备从所述第二服务器上下载并根据所述回退版本程序将该DUT设备上的软件回退至所述自动升级操作前的版本,以循环进行软件的升级-降级操作。

作为一个选的实施例,上述的软件自动升级测试系统,所述第一服务器为远程服务器,所述第二服务器为http服务器;所述DUT设备以无线通讯的方式与所述第一服务器连接,所述DUT设备以有线通讯的方式与所述第二服务器连接。

作为一个选的实施例,上述的软件自动升级测试系统还包括:

第一计数器,设置于所述测试平台设备上,以计算并输出所述测试系统进行所述升级-降级操作的循环次数;

存储器,存储有预设循环次数;

第一判断器,分别与所述存储器和所述第一计数器连接,以判断所述循环次数是否小于所述预设循环次数;

其中,所述存储器和所述第一判断器均设置于所述测试平台设备上;所述循环次数小于所述预设循环次数时,所述测试系统继续进行所述升级-降级操作,否则,所述测试系统结束测试并返回测试结果。

作为一个选的实施例,上述的软件自动升级测试系统还包括:

第二计数器,分别与所述第一计数器和所述存储器连接;

第二判断器,分别与所述第二计数器和所述存储器连接;

其中,所述第二计数器和所述第二判断器均设置于所述测试平台设备上;所述测试平台设备在所述测试系统在进行测试过程中出现异常情况时,所述第二计数器采用公式N=N+n计算计数值,并存入所述存储器中;所述第二判断器用于判断所述计数值是否小于所述预设循环次数;若所述计数值小于所述预设循环次数,则重新启动所述测试平台设备,否则,所述测试系统结束测试并返回测试结果;N表示计数值,n表示循环次数, N、n均为自然数且初始值均为0。

作为一个选的实施例,上述的软件自动升级测试系统,所述异常情况为所述测试平台设备的内存使用率和/或CPU使用率大于预设百分比。

作为一个选的实施例,上述的软件自动升级测试系统还包括:

第三判断器,设置于所述测试平台设备上,以判断所述DUT设备根据下载的所述升级版本程序进行升级操作是否成功;若成功,所述DUT设备下载并根据所述降级版本程序进行降级操作,否则,所述测试系统结束测试并返回测试结果。

作为一个选的实施例,上述的软件自动升级测试系统,所述第三判断器根据升级后的所述DUT设备是否能够连接因特网来判断所述DUT设备是否升级成功;

其中,所述DUT设备能够连接因特网,则判定所述DUT设备升级成功,否则,则判定所述DUT设备升级失败。

本申请还提供了一种软件自动升级测试方法,可基于一软件自动升级测试系统(如上述任意一项所述的软件自动升降测试系统等),所述方法包括:

升级操作成功后,下载并根据回退版本程序对DUT设备进行降级操作,以使得该DUT设备上的软件回退至所述自动升级操作前的版本;

继续对降级操作后的所述DUT设备进行升级操作。

作为一个优选的实施例,上述的软件自动升级测试方法还包括:

所述DUT设备从一http服务器上下载所述回退版本程序,并以写入固件的方式进行所述降级操作。

作为一个优选的实施例,上述的软件自动升级测试方法,基于一测试平台设备进行所述测试方法,且所述http服务器和所述测试系统的启动链接均设置于所述测试平台设备的启动项中。

作为一个优选的实施例,上述的软件自动升级测试方法,在进行软件自动升级测试之前,先在所述测试平台设备上搭建存储有回退版本程序的http服务器,然后编写所述测试系统启动的自动化脚本,并将所述自动化脚本和所述http服务器启动的链接均设置于所述DUT设备的启动项中。

作为一个优选的实施例,上述的软件自动升级测试方法,所述测试系统自动随所述测试平台设备开启而启动后开始进行测试,所述测试方法还包括:

步骤A:输出循环次数;

步骤B:所述DUT设备从远程服务器上下载升级版本程序,并根据该升级版本程序进行升级操作;

步骤C:判断所述DUT设备是否能够访问因特网;若所述DUT设备能够访问因特网,则继续步骤D;否则,继续步骤E;

步骤D,从所述服务器上下载并根据所述回退版本程序进行降级操作,使所述DUT设备上的软件回退至所述自动升级操作前的版本后,继续步骤A;

步骤E,结束测试操作并返回测试结果。

作为一个优选的实施例,上述的软件自动升级测试方法,在所述测试系统进行测试过程中所述测试平台设备出现异常情况时,所述测试方法还包括:

步骤F,计算并输出计数值;

步骤G,判断所述计数值否小于所述预设循环次数;若所述计数值小于所述预设循环次数,则继续步骤H,否则,继续步骤E;

步骤H,重启测试平台设备,以继续进行步骤A;

其中,采用公式N=N+n计算所述计数值,N表示计数值,n表示循环次数, N、n均为自然数且初始值均为0。

作为一个优选的实施例,上述的软件自动升级测试方法,所述异常情况为所述测试平台设备的内存使用率和/或CPU使用率大于预设百分比。

作为一个优选的实施例,上述的软件自动升级测试方法还包括:

步骤I,于步骤C后继续判断步骤A中输出的所述循环次数是否小于预设循环次数;若所述循环次数小于所述预设循环次数,则继续步骤D,否则,继续步骤E。

本申请所提供的一种软件自动升级测试系统及方法,通过设置与DUT设备通讯连接的服务器,以使得该DUT设备在完成自动升级操作后,能够自动的从服务器中下载回退版本程序,进而可使得该DUT设备可根据该回退版本程序进行降级操作,从而将该DUT设备上的软件回退至自动升级操作前的版本,以便于后续循环进行软件的升级-降级操作,在确保测试准确性的前提下,来减轻测试人员的工作量,并能有效缩短测试周期,降低测试成本。

附图说明

参考所附附图,以更加充分的描述本发明的实施例。然而,所附附图仅用于说明和阐述,并不构成对本发明范围的限制。

图1为本申请实施例中软件自动升级测试系统的结构示意图;

图2为本申请实施例中软件自动升级测试方法的流程框架图。

具体实施方式

本发明将通过实施例的方式结合附图予以阐述。在附图中,各个图中相同或相关结构或功能元素会以相似的标号表示。附图中元件的尺寸和特点仅是作为方便阐述的目的。它们不对本发明的范围有所界定,且并不一定表示实际尺寸和比例关系。

下面结合附图对本申请的技术内容进行举例说明。

实施例一

参见图1所示,本实施例中的一种软件自动升级测试系统,可为基于一测试平台设备(如计算机(如PC等)等)1的基础上进行构建的测试系统,以针对DUT设备4上的软件进行自动升级测试,该测试系统可包括第一服务器2和第二服务器3,该第一服务器2上可存储有用以上述DUT设备进行自动升级操作的升级版本程序,而第二服务器3上则可存储有用以上述DUT设备进行自动降级操作的回退版本程序。

需要说明的是,为了便于测试,可先于上述的测试平台设备1上搭建第二服务器3,并将上述的回退版本程序预存储至该第二服务器3中;为了实现DUT设备的自动测试操作,上述的第一服务器1可为远程服务器(如云端服务器),以使得DUT设备可通过无线通讯的方式进行升级版本程序的下载及运行,而第二服务器3则可为http服务器,以便于DUT设备在升级操作成功后,快速的从第二服务器3上下载回退版本程序进行降级操作,以使得的DUT设备上的软件回退至上述自动升级操作前的版本,进而利于后续循环进行软件的升级-降级操作。

优选的,上述的软件自动升级测试系统还可包括设置于测试平台设备1上的第一计数器11、存储器12和第一判断器13,且该存储器12中可预先存储有DUT设备进行升级-降级操作的预设循环次数X(X具体的数值可依据实际测试需求而设定,且该预设循环次数X要为正整数),第一计数器11用以计算并输出测试系统进行升级-降级操作的循环次数n(n可为自然数,且该n的初始值为0)。

进一步的,上述的第一判断器13则分别与上述的第一计数器11及存储器12连接,以从第一计数器11中获取的循环测试n及从存储器12中调取预设循环次数X来当前的循环次数n是否小于预设循环次数X(即n<X)。其中,若是循环次数n小于预设循环次数X(即n<X)时,测试系统则继续进行上述的升级-降级操作;否则(即n>X或n=X),测试系统则结束测试操作并返回测试结果(如升级-降级操作成功的次数等)。

另外,由于内存(Memory,也被称为内存储器)作为各种处理器诸如计算机等的重要部件,是与CPU(Central Processing Unit,中央处理器)进行沟通的桥梁,用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据,即于计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大,即只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。而在进行上述循环测试时,就会长时间大量占用计算机的内存及CPU,这就会使得计算机的性能降低,甚至无法响应后续自动化测试系统的请求,进而导致自动化测试失败。

所以,本实施例还针对上述的问题进一步的提出了包括其他部件的软件自动升级测试系统,即本实施例中的软件自动升级测试系统还可包括设置于测试平台设备1上的第二计数器14和第二判断器15,该第二计数器14可分别与第一计数器11及存储器12连接,而第二判断器15则可分别与上述的第二计数器14及存储器11连接。

这样,测试平台设备1在测试系统在进行测试过程中出现异常情况(如内存和/或CPU占用过高等情况)时,第二计数器14就可采用公式N=N+n-1来计算计数值N,并将该计数值N存入存储器中备用;同时,第二判断器15则可用于判断上述的计数值N是否小于预设循环次数X;若计数值N小于预设循环次数X(即N<X)时,则测试系统可重新启动测试平台设备1,以释放测试平台设备1的内存和/或CPU;否则(即N>X或N=X时),测试系统则可结束测试并返回测试结果;其中,N、n均可为自然数且初始值均可为0。

优选的,上述的软件自动升级测试系统中,在进行测试操作时所出现的异常情况一般是指测试平台设备1的内存使用率和/或CPU使用率大于预设百分比(如90%等)。

进一步的,本实施例中的软件自动升级测试系统还可包括设置在测试平台设备1上的第三判断器16,该第三判断器16可用以判断DUT设备4根据下载的升级版本程序进行升级操作是否成功。若升级操作成功,则DUT设备14则从第二服务器3中下载降级版本程序,并可根据该降级版本程序对DUT设备14上的软件进行降级操作,以使得该DUT设备14上的软件回退至上述自动升级操作前的版本,进而利于后续循环进行软件的升级-降级操作;否则(即升级操作失败),则测试系统结束测试并返回测试结果。

优选的,上述的软件自动升级测试系统中第三判断器16可根据升级后的DUT设备4是否能够连接因特网(Internet)来判断该DUT设备4是否升级成功,即升级后的DUT设备4能够连接因特网,则判定该DUT设备4升级成功;否则,则判定该DUT设备4升级失败。

需要注意的是,本实施例中的软件自动升级测试系统,可以循环计数的方式进行多次升级-降级操作,并可在测试系统异常时及时的释放测试平台设备的性能,进而满足各种无线自动升级测试的需求,故其可适用于各种诸如Wi-Fi等无线电子产品的循环升级测试。另外,本实施例中的第一判断器13、第二判断器15及第三判断器16可为同一个判断器,也可为相互独立的三个判断器,具体可依据具体的测试需求及条件来来设置;第一计数器11及第二计数器14则可将每次的计数值存储并更新至存储器12中,以便于诸如第一判断器13、第二判断器15等其他设备进行调用。

下面就以具体的操作实例进行说明:

建立测试环境:在测试计算机上搭建http服务器并将回退版本程序放置在该http服务器上后,将http服务器的应用程序创建快捷键放入测试计算机启动项中;同时,编写启动测试系统的自动化脚本,并同时放入至该测试测试计算机启动项中。

开启测试计算机测试系统随机启动,开始进行测试操作;测试系统先输出循环值;然后调用netsh interface set开启无线网卡、关闭有线网卡,以建立DUT设备与远程服务器的连接;继续调用login函数进入DUT WEB页面,继续调用click element函数进入自动升级页面点击自动化升级;升级完成后调用函数验证是否能访问Internet,不能访问则结束测试并返回fail;能够访问则可调用netsh interface set函数来启用计算机的有线网卡并同时禁用计算机无线网卡,以建立DUT设备与http服务的连接;继续调用serial.Serial函数连接DUT串口后,调用t.write函数输入cd /tmp进入串口tmp目录,并继续调用wget函数向http 服务器下载要降级的固件版本程序(即回退版本程序)到DUT设备内存中;调用mtd函数将固件版本程序写入到DUT的固件(firmware)开始降级操作,并在降级操作完成后调用t.close()函数关闭串口,则开始第二次循环(即调用netsh interface set开启无线网卡、关闭有线网卡……)。

其中,在上述的测试过程中若出现异常失败(如由于http服务器长时间运行占用计算机内存和CPU,影响测试计算机性能造成自动化测试失败,需重启计算机释放内存、CPU),则调用open函数打开计数文本,调用read函数读取文本的计数值,计算计数值N=计数值N+(最后一次循环值n-1)(其中,n的初始值为0,最后一次循环值n-1为本次循环中成功次数(即n-1)。),调用write函数将计算完成后的计数值写入计数文本中,调用close函数关闭计数文本;判断计数值是否满足预设循环次数X,满足则结束测试并返回测试结果,不满足则调用shutdown函数重启计算机;重启后计算机启动自启动项开启http服务器和启用测系统继续测试。

实施例二

参见图2所示,本申请还提供了一种软件自动升级测试方法,可基于上述实施例中所描述的软件自动升级测试系统,所述方法可包括:

升级操作成功后,下载并根据回退版本程序对DUT设备进行降级操作,以使得该DUT设备上的软件回退至自动升级操作前的版本;

继续对降级操作后的所述DUT设备进行升级操作。

优选的,本实施中测试方法可基于一测试平台设备进行测试,即DUT设备可从一http服务器上下载所述回退版本程序,并以写入固件的方式进行所述降级操作,而该http服务器和测试系统的启动链接均设置于测试平台设备的启动项中。

优选的,在进行软件自动升级测试之前,可先在测试平台设备上搭建存储有回退版本程序的http服务器,然后编写测试系统启动的自动化脚本,并将自动化脚本和http服务器启动的链接均设置于所述DUT设备的启动项中。

进一步的,上述软件自动升级测试方法中,测试系统自动随测试平台设备开启而启动后开始进行测试后,还可包括:

步骤A:输出循环次数;

步骤B:所述DUT设备从远程服务器上下载升级版本程序,并根据该升级版本程序进行升级操作;

步骤C:判断所述DUT设备是否能够访问因特网;若所述DUT设备能够访问因特网,则继续步骤D;否则,继续步骤E;

步骤D,从所述服务器上下载并根据所述回退版本程序进行降级操作,使所述DUT设备上的软件回退至所述自动升级操作前的版本后,继续步骤A;

步骤E,结束测试操作并返回测试结果,并结束测试操作。

进一步的,在测试系统进行测试过程中测试平台设备出现异常情况时,该测试方法还可包括:

步骤F,计算并输出计数值;

步骤G,判断计数值否小于预设循环次数;若计数值小于预设循环次数,则继续步骤H,否则,继续步骤E;

步骤H,重启测试平台设备,以继续进行步骤A;

其中,采用公式N=N+(n-1)计算计数值,N表示计数值,n表示循环次数, N、n均为自然数且初始值均为0。

优选的,上述的异常情况为测试平台设备的内存使用率和/或CPU使用率大于预设百分比(如90%、95%等)。

进一步的,本实施例的软件自动升级测试方法还可包括:

步骤I,于步骤C后继续判断步骤A中输出的循环次数是否小于预设循环次数;若循环次数小于所述预设循环次数,则继续步骤D,否则,继续步骤E。

下面就以具体的实例进行详细说明:

测试环境:先在测试计算机上搭建http服务器并将回退版本放置在http服务器上,将http服务器的应用程序创建快捷键放入测试计算机启动项中;编写启动系统的自动化脚本,并放入启动项中。

步骤1,输出循环值;

步骤2,调用netsh interface set开启无线网卡、关闭有线网卡;

步骤3,调用login函数进入DUT WEB页面,调用click element函数进入自动升级页面点击自动化升级;

步骤4,升级完成后调用函数验证是否能访问Internet,不能访问则结束测试并返回fail,

步骤5,调用netsh interface set函数启用PC有线网卡、禁用PC无线网卡;

步骤6,调用serial.Serial函数连接DUT串口;调用t.write函数输入cd /tmp进入串口tmp目录,调用wget函数向http 服务器下载要降级的固件版本到DUT内存中;调用mtd函数将固件版本写入到DUT的firmware开始降级,降级完成后调用t.close()函数关闭串口;

步骤7,继续步骤1,以进行第二次循环测试。

其中,在上述的测试过程中若出现异常失败(如由于http服务器长时间运行占用计算机内存和CPU,影响测试计算机性能造成自动化测试失败,需重启计算机释放内存、CPU)时,本实施例的测试方法还可包括:

步骤8,调用open函数打开计数文本(没有则自动创建),调用read函数读取文本的计数值,计算计数值=计数值+(最后一次循环值-1)(其中,最后一次循环值-1为本次循环中成功次数),调用write函数将计算完成后的计数值值写入计数文本中,调用close函数关闭计数文本。

步骤9,判断计数值是否满足设定的测试次数,满足则结束测试并返回测试结果,不满足则调用shutdown函数重启计算机;

步骤10,重启后计算机启动自启动项开启http服务器和启用测系统继续测试。

需要注意的,本申请中实施例一与实施例二是基于相同的构思所进行的发明创造,故其之间的技术特征之间可相互的替换及补充。

本实施例中的一种软件自动升级测试系统及方法,可通过从http服务器上下载回退版本程序以诸如写入固件(firmware)的方式进行降级操作,以使得DUT设备的软件在成功完成自动升级操后,快速的回退至自动升级操作前的版本,以便于后续循环进行软件的多次升级-降级操作测试;同时,通过将http服务器的应用程序快捷键和启用测试系统的自动化脚本设置在测试平台设备的启动项中,以达到测试平台设备开机就能自动的进行循环测试的效果,进而在确保测试准确性的前提下,来大大减轻测试人员的工作量,并能有效缩短测试周期,降低测试成本。

以上结合具体实施例描述了本发明的技术方案,但本领域的技术人员应该理解,上述内容仅是举例说明,本发明的保护范围由权利要求书内容所限定。本领域技术人员在不违背本发明的技术原理和实质内容的前提下,可对实施方案进行多种变更或更改,这些变更和更改均应落入本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1