发明内容
本发明实施方式提出一种智能终端软件包测试任务生成方法,从而提高测试效率。
本发明实施方式提出一种智能终端软件包测试任务生成装置,从而提高测试效率。
本发明实施方式提出一种智能终端软件包测试任务生成系统,从而提高测试效率。
本发明实施方式的具体方案如下:
一种智能终端软件包测试任务生成方法,该方法包括:
接收包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表,该测试机型列表中包含至少两种智能终端机型;
从所述组包中获取各个智能终端软件安装包,并从每个智能终端软件安装包的测试机型列表中解析出对应于该智能终端软件安装包的测试机型;
根据对应于智能终端软件安装包的测试机型,确定每个智能终端软件安装包的测试任务。
一种智能终端软件包测试任务生成装置,该装置包括接收单元、测试机型确定单元和测试任务确定单元,其中:
接收单元,用于接收包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表,该测试机型列表中包含至少两种智能终端机型;
测试机型确定单元,用于从所述组包中获取各个智能终端软件安装包,并从每个智能终端软件安装包的测试机型列表中解析出对应于该智能终端软件安装包的测试机型;
测试任务确定单元,用于根据对应于智能终端软件安装包的测试机型,确定每个智能终端软件安装包的测试任务。
一种智能终端软件包测试任务生成系统,包括软件包上传装置、测试任务生成装置和测试智能终端库,其中测试任务生成装置和测试智能终端库位于网络侧:
软件包上传装置,用于向测试任务生成装置上传包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表,该测试机型列表中包含至少两种智能终端机型;
测试任务生成装置,用于从所述组包中获取各个智能终端软件安装包,从每个智能终端软件安装包的测试机型列表中解析出对应于该智能终端软件安装包的测试机型,并根据对应于智能终端软件安装包的测试机型,确定每个智能终端软件安装包的测试任务;
测试智能终端库,用于执行各个智能终端软件安装包的测试任务。
从上述技术方案可以看出,在本发明实施方式中,接收包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表,该测试机型列表中包含至少两种智能终端机型;从所述组包中获取各个智能终端软件安装包,并从每个智能终端软件安装包的测试机型列表中解析出对应于该智能终端软件安装包的测试机型;根据对应于智能终端软件安装包的测试机型,确定每个智能终端软件安装包的测试任务。可见,应用本发明实施方式之后,不再是单独上传程序软件安装包及唯一适配机型信息,而是实现了针对软件安装包的批量上传及根据测试机型列表批量生成测试任务,从而显著降低了测试时间,并提高了测试效率。
而且,还可以将本发明实施方式应用到各种终端中,并且可以跨平台跨终端使用,适用范围非常广泛。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
图1为根据本发明实施方式智能终端软件包测试任务生成方法流程图。
如图1所示,该方法包括:
步骤101:接收包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表,该测试机型列表中包含至少两种智能终端机型。
在这里,可以由位于本地端的智能终端软件开发者将多个(至少两个)智能终端软件安装包组合成整体包(比如,通过各种压缩软件压缩成压缩包),并且将该组包(即整体包)及对应于每个智能终端软件安装包的测试机型列表上传到网络侧,每个智能终端软件安装包的对应测试机型列表中包含至少两种智能终端机型。
比如,组包压缩软件可以利用算法将智能终端软件安装包无损地处理从而使得文件体积变小。本发明实施方式可以采用的组包压缩格式可以包括:rar、zip、7z、kz、CAB、ARJ、LZH、TAR、GZ、ACE、UUE、BZ2、JAR、ISO,以及MPQ等多种方式。
其中,除了上传包含至少两个智能终端软件安装包的组包之外,还需要上传对应于每个智能终端软件安装包的测试机型列表。测试机型列表中包括需要测试相对应智能终端软件安装包的智能终端的型号,而且每个智能终端软件安装包的对应测试机型列表中包含至少两种智能终端机型。
在一个实施方式中,本地端可以通过WEB、HTTP、FTP等多种方式上传智能终端软件安装包的组包及各个智能终端软件安装包的测试机型列表到网络侧。优选地,也可以通过多种混合方式来上传智能终端软件安装包的组包及其测试机型列表。比如,通过FTP方式上传智能终端软件安装包的组包,而通过WEB方式上传各个智能终端软件安装包的测试机型列表,等等。
智能终端软件安装包的具体格式可以有多种,比如可以包括apk文件格式、sis文件格式、sisx文件格式,等等。
以apk文件格式为例进行说明。Apk是AndroidPackage的缩写,即Android安装包(apk)。apk是类似Symbian Sis或Sisx的文件格式。通过将apk文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis一样,把android sdk编译的工程打包成一个安装程序文件,格式为apk。apk文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
在这里,最终安装智能终端软件安装包的智能终端可以包括但是不局限于:功能手机、智能手机、掌上电脑、个人电脑(PC)、平板电脑或个人数字助理(PDA),等等。
以上虽然详细罗列了智能终端的具体实例,本领域人员可以意识到,这些罗列仅是阐述目的,并不用于限定本发明实施方式的保护范围。
智能终端操作系统可以是任意的操作系统,具体可以采用的操作系统包括但是不局限于:安卓(Andorid)、Palm OS、Symbian(塞班)、Windows mobile、Linux、Android(安卓)、iPhone(苹果)OS、Black Berry(黑莓)OS6.0、Windows Phone系列,等等。
优选地,智能终端操作系统具体可以采用安卓操作系统,而且智能终端可以采用到Andorid的各个版本之中,包括但是不局限于:阿童木(Android Beta)、发条机器人(Android1.0)、纸杯蛋糕(Android1.5)、甜甜圈(Android1.6)、松饼(Android2.0/2.1),冻酸奶(Android2.2)、姜饼(Android2.3)、蜂巢(Android3.0)、冰激凌三明治(Android4.0)、果冻豆(Jelly Bean,Android4.1)等版本。
以上详细罗列了Android平台的具体版本,本领域技术人员可以意识到,本发明实施方式并不局限于上述罗列版本,而还可以适用于其他基于Android软件架构的任意版本之中。
步骤102:从所述组包中获取各个智能终端软件安装包,并从每个智能终端软件安装包的测试机型列表中解析出对应于该智能终端软件安装包的测试机型。
在这里,首先从组包中获取各个智能终端软件安装包,再从每个智能终端软件安装包的测试机型列表中解析出对应于该智能终端软件安装包的测试机型。比如,测试机型列表中可以包含有测试机型名称信息或代号信息,基于该测试机型名称信息或代号信息可以确定出具体的测试机型。
步骤103:根据对应于智能终端软件安装包的测试机型,确定每个智能终端软件安装包的测试任务。
比如,假设从组包中获取有3个智能终端软件安装包,分别为安装包1、安装包2和安装包3。安装包1的测试机型列表包含有20种机型,分别为测试机型1、测试机型2、测试机型3、测试机型4……测试机型20;安装包2的测试机型列表包含有10种机型,分别为测试机型1’、测试机型2’、测试机型3’、测试机型4’……测试机型10’;安装包3的测试机型列表包含有15种机型,分别为测试机型1’’、测试机型2’’、测试机型3’’、测试机型4’’……测试机型15’’。
那么,安装包1的测试任务为:在测试机型1、测试机型2、测试机型3、测试机型4……测试机型20上分别执行测试;安装包2的测试任务为:在测试机型1’、测试机型2’、测试机型3’、测试机型4’……测试机型10’上分别执行测试;安装包3的测试任务为:在测试机型1’’、测试机型2’’、测试机型3’’、测试机型4’’……测试机型15’’上分别执行测试。
示范性地,如果有10个智能终端软件安装包,而且测试机型都相同,则一共生成10个任务;如果有10个智能终端软件安装包,而且每个安装包都具有10款测试机型,则一共可以生成100个测试任务。
在一个实施方式中,优选在根据对应于智能终端软件安装包的测试机型确定每个智能终端软件安装包的测试任务之前,解析该智能终端软件安装包,以验证该智能终端软件安装包的文件真实性。
在一个实施方式中,在步骤101中进一步接收各个智能终端软件安装包的名称和/或版本信息;而在步骤102中,可以从所获取的智能终端软件安装包中解析出名称和/或版本信息,并将解析出的名称和/或版本信息与所接收的名称和/或版本信息进行对比校验,从而验证名称和/或版本信息是否正确。
在一个实施方式中,进一步在在测试智能终端库中检索处于空闲状态的测试智能终端;再从对应于智能终端软件安装包的测试机型中确定处于空闲状态的测试智能终端,并基于所确定的测试智能终端确定每个智能终端软件安装包的测试任务。
比如,继续按照上面实例,安装包1的测试机型列表包含有20种机型,分别为测试机型1、测试机型2、测试机型3、测试机型4……测试机型20。通过检索测试智能终端库,发现测试机型1、测试机型2和测试机型3处于忙碌状态,则可以暂时将测试机型1、测试机型2和测试机型3的测试量从安装包1的测试任务中暂停,而是在其他处于空闲状态的测试机型中执行测试任务,等到测试机型1、测试机型2和测试机型3的工作状态恢复为空闲之后,再针对测试机型1、测试机型2和测试机型3执行关于安装包1的测试任务。
再比如,继续按照上面实例,安装包2的测试机型列表包含有10种机型,分别为测试机型1’、测试机型2’、测试机型3’、测试机型4’……测试机型10’。通过检索测试智能终端库,发现测试机型1’、测试机型2’和测试机型3’处于忙碌状态,则可以暂时将测试机型1’、测试机型2’和测试机型3’的测试量从安装包2的测试任务中暂停,而是在其他处于空闲状态的测试机型中执行测试任务,等到测试机型1’、测试机型2’和测试机型3’的工作状态恢复为空闲之后,再针对测试机型1’、测试机型2’和测试机型3’执行关于安装包1的测试任务。
进一步,在确定了各个智能终端软件安装包的测试任务之后,可以并行执行各个智能终端软件安装包的测试任务。
具体地,对于每个智能终端软件安装包的测试任务,首先将智能终端软件安装包安装到测试任务中的测试智能终端上,再在测试智能终端上启动该智能终端软件,并遍历该智能终端软件以执行测试。具体遍历工作可以包括:测试该智能终端软件的各个功能控件,展示该智能终端软件的显示界面,等等。
在一个实施方式中,在步骤101中进一步上传智能终端软件安装包的测试优先级。然后,可以按照所上传的智能终端软件安装包的测试优先级顺序,执行各个智能终端软件安装包的测试任务。
基于上述详细分析,本发明实施方式还提出了一种智能终端软件包测试任务生成装置。
图2为根据本发明实施方式智能终端软件包测试任务生成装置结构图。
如图2所示,该装置包括接收单元201、测试机型确定单元202和测试任务确定单元203,其中:
接收单元201,用于接收包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表,该测试机型列表中包含至少两种智能终端机型;
测试机型确定单元202,用于从所述组包中获取各个智能终端软件安装包,并从每个智能终端软件安装包的测试机型列表中解析出对应于该智能终端软件安装包的测试机型;
测试任务确定单元203,用于根据对应于智能终端软件安装包的测试机型,确定每个智能终端软件安装包的测试任务。
在一个实施方式中,该装置进一步包括校验单元204,其中:
接收单元201,进一步用于接收智能终端软件安装包的名称和/或版本信息;
校验单元204,用于从智能终端软件安装包中解析出名称和/或版本信息,并将解析出的名称和/或版本信息与所接收的名称和/或版本信息进行对比校验。
在一个实施方式中,该装置进一步包括文件判断单元205;
文件判断单元205,用于在测试任务确定单元202根据对应于智能终端软件安装包的测试机型,确定每个智能终端软件安装包的测试任务之前,解析该智能终端软件安装包,以验证该智能终端软件安装包的文件真实性。
在一个实施方式中,测试任务确定单元202,用于在测试智能终端库中检索处于空闲状态的测试智能终端;从对应于智能终端软件安装包的测试机型中确定处于空闲状态的测试智能终端,并基于所确定的测试智能终端确定每个智能终端软件安装包的测试任务。
在一个实施方式中,该装置进一步包括测试任务执行单元206;
测试任务执行单元206,用于将各个智能终端软件安装包并行安装到对应于该智能终端软件安装的测试智能终端上;并在测试智能终端上启动该智能终端软件,并遍历该智能终端软件以执行测试。
在一个实施方式中,接收单元201,进一步用于接收智能终端软件安装包的测试优先级;
测试任务执行单元206,进一步用于按照所接收的智能终端软件安装包的测试优先级顺序,执行各个智能终端软件安装包的测试任务。
基于上述详细分析,本发明实施方式还提出了一种智能终端软件包测试任务生成系统。
图3为根据本发明实施方式的智能终端软件包测试任务生成系统结构图。
如图3所示,该系统包括软件包上传装置301、测试任务生成装置302和测试智能终端库303,其中测试任务生成装置302和测试智能终端库303位于网络侧:
软件包上传装置301,用于向测试任务生成装置302上传包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表,该测试机型列表中包含至少两种智能终端机型;
测试任务生成装置302,用于从所述组包中获取各个智能终端软件安装包,从每个智能终端软件安装包的测试机型列表中解析出对应于该智能终端软件安装包的测试机型,并根据对应于智能终端软件安装包的测试机型,确定每个智能终端软件安装包的测试任务;
测试智能终端库303,用于执行各个智能终端软件安装包的测试任务。
在一个实施方式中,软件包上传装置301,进一步用于上传各个智能终端软件安装包的名称和/或版本信息;
测试任务生成装置302,用于从所获取的智能终端软件安装包中解析出名称和/或版本信息,并将解析出的名称和/或版本信息与所上传的名称和/或版本信息进行对比校验。
在一个实施方式中,测试任务生成装置302,用于在测试智能终端库中检索处于空闲状态的测试智能终端;从对应于智能终端软件安装包的测试机型中确定处于空闲状态的测试智能终端,并基于所确定的测试智能终端确定每个智能终端软件安装包的测试任务。
基于图3所示系统结构,图4为根据本发明实施方式的智能终端软件包测试任务生成过程示意图。
由图4可见,该智能终端软件包测试任务生成过程包括:
步骤401:在本地端,首先向网络侧上传包含多个软件安装包(比如APK)的压缩包,以及各个软件安装包所对应的测试机型列表。
步骤402:网络侧获取该压缩包后,首先解压缩得到分别的软件安装包,再分析该软件安装包的文件真假,优选进一步核实文件名、版本信息、使用系统等是否正确,并查看测试智能终端库中测试机型的状态。如果文件为真,则执行步骤403及其后续步骤,如果文件不为真,则执行步骤406并结束本流程。
步骤403:分配该软件安装包的存储空间,并确定软件安装包的存放地址。
步骤404:根据对应于智能终端软件安装包的测试机型,确定每个智能终端软件安装包的测试任务。其中:如果测试机型空闲,则基于测试机型列表生成测试任务并进一步后续执行该测试任务,如果测试机型不空闲,则基于测试机型列表生成测试任务并等待测试机型空闲后再执行该测试任务。
步骤405:存放测试任务。
步骤406:向本地端反馈端软件安装包的文件不是真的安装文件。
实际上,可以通过多种形式来具体实施本发明实施方式所提出的智能终端软件包测试任务生成方法和装置。比如,可以遵循一定规范的应用程序接口,将智能终端软件包测试任务生成方法编写为安装到移动设备中的插件程序,也可以将其封装为应用程序以供用户自行下载使用。当编写为插件程序时,可以将其实施为ocx、dll、cab等多种插件形式。也可以通过Flash插件、RealPlayer插件、MMS插件、MIDI五线谱插件、ActiveX插件等具体技术来实施本发明实施方式所提出的智能终端软件包测试任务生成方法。
可以通过指令或指令集存储的储存方式将本发明实施方式所提出的智能终端软件包测试任务生成方法存储在各种存储介质上。这些存储介质包括但是不局限于:软盘、光盘、DVD、硬盘、闪存、U盘、CF卡、SD卡、MMC卡、SM卡、记忆棒(Memory Stick)、xD卡等。
另外,还可以将本发明实施方式所提出的智能终端软件包测试任务生成方法应用到基于闪存(Nand flash)的存储介质中,比如U盘、CF卡、SD卡、SDHC卡、MMC卡、SM卡、记忆棒、xD卡等。
综上所述,在本发明实施方式中,接收包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表,该测试机型列表中包含至少两种智能终端机型;从所述组包中获取各个智能终端软件安装包,并从每个智能终端软件安装包的测试机型列表中解析出对应于该智能终端软件安装包的测试机型;根据对应于智能终端软件安装包的测试机型,确定每个智能终端软件安装包的测试任务。可见,应用本发明实施方式之后,不再是单独上传程序软件安装包及唯一适配机型信息,而是实现了针对软件安装包的批量上传及根据测试机型列表批量生成测试任务,从而显著降低了测试时间,并提高了测试效率。
而且,还可以将本发明实施方式应用到各种终端中,并且可以跨平台跨终端使用,适用范围非常广泛以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。