一种自动匹配版本的应用程序测试方法及系统及移动终端与流程

文档序号:11829408阅读:194来源:国知局
一种自动匹配版本的应用程序测试方法及系统及移动终端与流程

本发明涉及移动终端技术领域,尤其涉及一种自动匹配版本的应用程序测试方法及系统及移动终端。



背景技术:

随着智能移动终端业务领域的不断扩展,开始出现越来越多的适用于不同移动终端类型的应用程序。每个移动终端的开发商都想要通过提升产品的易用程度,从而提升自身占有的市场份额,因此就必须要考虑各种各样的应用程序在不同类型的移动终端中的表现,以期获得更好的用户体验。

现有技术中,对于应用程序的测试通常由人工完成,即采用手动测试的方式完成。手动测试的测试过程比较繁琐,难以搞笑完成大量应用程序的重复性测试,因此极度浪费人力资源,测试效率较低。



技术实现要素:

根据现有技术中存在的问题,现提供一种自动匹配版本的应用程序测试方法及系统及移动终端的技术方案,旨在实现从匹配应用程序版本至安装应用程序并进行遍历测试的整个过程的全自动化操作。

上述技术方案具体包括:

一种自动匹配版本的应用程序测试方法,适用于移动终端;其中,所述移动终端与一应用服务端远程连接,并从所述应用服务端下载至少一个预设的应用程序的最新版本的安装包以准备测试;

所述应用程序测试方法具体包括:

步骤S1,根据从所述应用服务端下载的所述安装包,在所述移动终端中安装最新版本的所述应用程序,并将安装完成的所述应用程序作为本次测试的测试对象;

步骤S2,根据相应的所述安装包中解析得到相应的入口地址,并根据所 述入口地址启动所述应用程序;

步骤S3,依照预设的遍历方式对被启动的所述应用程序进行遍历测试,以获得相应的测试结果并输出;

步骤S4,在所述遍历测试结束后卸载作为所述测试对象的所述应用程序。

优选的,该应用程序测试方法,其中,步骤S1具体包括:

步骤S11,解析从所述应用服务端中下载的所述安装包并获取相关安装信息;

步骤S12,根据所述相关安装信息,判断所述移动终端中是否安装有对应于被下载的所述安装包的所述应用程序,并在对应于所述安装包的所述应用程序存在于所述移动终端中时转向步骤S13;

步骤S13,根据所述相关安装信息判断所述移动终端中安装的所述安装包是否为最新版本,并在所述移动终端中已安装的所述应用程序不为最新版本时转向步骤S14;

步骤S14,根据所述安装包中的所述相关安装信息将相应的所述应用程序替换成最新版本。

优选的,该应用程序测试方法,其中,所述步骤S12中,若所述移动终端中未安装对应所述安装包的所述应用程序,则直接转向下述步骤:

步骤S15,根据所述安装包中的所述相关安装信息安装相应的所述应用程序。

优选的,该应用程序测试方法,其中,所述步骤S13中,若所述移动终端中已安装的所述应用程序已经为最新版本,则直接转至所述步骤S2。

优选的,该应用程序测试方法,其中,所述相关安装信息包括:

所述应用程序的版本号,和/或所述应用程序的名称,和/或所述应用程序的所述入口地址,和/或所述应用程序安装需要的最低系统配置;

所述步骤S2中,根据从所述安装包中解析得到的相关安装信息中包括的所述入口地址,启动相应的所述应用程序。

优选的,该应用程序测试方法,其中,预设的所述遍历方式包括顺序遍历;

所述顺序遍历表示以从上到下、从左至右的顺序遍历操作所述应用程序 的操作界面中包括的所有控件。

优选的,该应用程序测试方法,其中,预设的所述遍历方式包括随机遍历;

所述随机遍历表示按照随机顺序遍历操作所述应用程序的操作界面中包括的所有控件。

优选的,该应用程序测试方法,其中,预设有多个关键字信息;

所述步骤S3具体包括:

步骤S31,获取作为测试对象的所述应用程序的当前操作界面中包括的所有控件的相关属性并保存;

步骤S32,将所述当前操作界面中包括的所有所述控件的所述相关属性与预设的所述关键字信息进行匹配,以判断所述当前操作界面的界面类型,并输出相应的判断结果;

步骤S33,根据所述判断结果,选择于所述当前操作界面中对所有所述控件的操作方式,并以预设的所述遍历方式遍历操作所述当前操作界面中包括的所有所述控件;

步骤S34,分别将对每个所述控件进行操作后形成的界面保存为对应的结果界面,保存对应所述应用程序的所有操作界面中包括的所有所述控件的所述结果界面,并将所有所述结果界面作为所述测试结果输出。

优选的,该应用程序测试方法,其中,所述步骤S3中,监控并获取所述移动终端于测试所述应用程序的过程中产生的实时测试信息,并根据所述实时测试信息处理形成相应的结果视图以向使用者显示。

优选的,该应用程序测试方法,其中,所述实时测试信息包括:

所述移动终端于测试所述应用程序的过程中产生的处理器相关信息,和/或内存相关信息,和/或运行状态相关信息。

优选的,该应用程序测试方法,其中,所述结果视图为反映所述移动终端进行测试过程中于每个时间点上产生的所述实时测试信息的折线图。

优选的,该应用程序测试方法,其中,于所述应用服务端按照下载量从大到小对相应的所述应用程序的所述安装包进行排名;

所述步骤S1中,所述移动终端从所述应用服务端下载排名为前N名的所述应用程序的所述安装包;

N表示本次需要测试的所述应用程序的数量。

一种自动匹配版本的应用程序测试系统,适用于移动终端;其中,所述移动终端与一应用服务端远程连接,并从所述应用服务端下载至少一个预设的应用程序的最新版本的安装包以准备测试;

所述应用程序测试系统包括:

安装单元,用于根据从所述应用服务端下载的所述安装包,在所述移动终端中安装最新版本的所述应用程序,并将安装完成的所述应用程序作为本次测试的测试对象;

启动单元,连接所述安装单元,用于根据相应的所述安装包中解析得到相应的入口地址,并根据所述入口地址启动所述应用程序;

测试单元,连接所述启动单元,用于依照预设的遍历方式对被启动的所述应用程序进行遍历测试,以获得相应的测试结果并输出;

卸载单元,连接所述测试单元,用于在所述遍历测试结束后卸载作为所述测试对象的所述应用程序。

优选的,该应用程序测试系统,其中,所述安装单元中包括:

解析模块,用于解析从所述应用服务端中下载的所述安装包并获取相关安装信息;

第一判断模块,连接所述解析模块,用于根据所述相关安装信息,判断所述移动终端中是否安装有对应于被下载的所述安装包的所述应用程序,并输出相应的第一判断结果;

第二判断模块,分别连接所述解析模块和所述第一判断模块,用于根据所述相关安装信息和所述第一判断结果,在对应于所述安装包的所述应用程序存在于所述移动终端中时判断所述移动终端中安装的所述安装包是否为最新版本,并输出相应的第二判断结果;

安装模块,分别连接所述解析模块、所述第一判断模块和所述第二判断模块,用于根据所述第一判断结果或者所述第二判断结果:

于所述移动终端中未安装对应所述安装包的所述应用程序时,根据所述安装包中的所述相关安装信息安装相应的所述应用程序;或者

于所述移动终端中安装的所述应用程序不是最新版本时,根据所述安装包中的所述相关安装信息将相应的所述应用程序替换成最新版本。

优选的,该应用程序测试系统,其中,所述相关安装信息包括:

所述应用程序的版本号,和/或所述应用程序的名称,和/或所述应用程序的所述入口地址,和/或所述应用程序安装需要的最低系统配置。

优选的,该应用程序测试系统,其中,预设的所述遍历方式包括顺序遍历;

所述顺序遍历表示以从上到下、从左至右的顺序遍历操作所述应用程序的操作界面中包括的所有控件。

优选的,该应用程序测试系统,其中,预设的所述遍历方式包括随机遍历;

所述随机遍历表示按照随机顺序遍历操作所述应用程序的操作界面中包括的所有控件。

优选的,该应用程序测试系统,其中,所述测试单元中包括:

属性获取模块,用于获取作为测试对象的所述应用程序的当前操作界面中包括的所有控件的相关属性并保存;

类型判断模块,其中预设有多个关键字信息,所述类型判断模块连接所述属性获取模块,用于将所述当前操作界面中包括的所有所述控件的所述相关属性与预设的所述关键字信息进行匹配,以判断所述当前操作界面的界面类型,并输出相应的判断结果;

测试模块,连接所述类型判断模块,用于根据所述判断结果,选择于所述当前操作界面中对所有所述控件的操作方式,并以预设的所述遍历方式遍历操作所述当前操作界面中包括的所有所述控件;

结果输出模块,连接所述测试模块,用于分别将对每个所述控件进行操作后形成的界面保存为对应的结果界面,保存对应所述应用程序的所有操作界面中包括的所有所述控件的所述结果界面,并将所有所述结果界面作为所述测试结果输出。

优选的,该应用程序测试系统,其中,还包括:

监控单元,连接所述测试单元,用于监控对所述应用程序进行测试的过程中产生的相应的实时测试信息,将所述实时测试信息处理形成相应的结果视图并向使用者显示。

优选的,该应用程序测试系统,其中,所述实时测试信息包括:

所述移动终端于测试所述应用程序的过程中产生的处理器相关信息,和/或内存相关信息,和/或运行状态相关信息。

优选的,该应用程序测试系统,其中,所述结果视图为反映所述移动终端进行测试过程中于每个时间点上产生的所述实时测试信息的折线图。

优选的,该应用程序测试系统,其中,于所述应用服务端按照下载量从大到小对相应的所述应用程序的所述安装包进行排名;

所述移动终端从所述应用服务端下载排名为前N名的所述应用程序的所述安装包;

N表示本次需要测试的所述应用程序的数量。

一种移动终端,其中,包括上述的应用程序测试系统。

一种移动终端,其中,采用上述的应用程序测试方法。

上述技术方案的有益效果是:

1)提供一种测试方法,以实现全自动进行包括版本匹配、安装、测试以及卸载等操作的目的,节省人工测试的成本,简化测试过程,缩短测试时间;

2)提供一种应用程序测试系统,以支持实现应用程序测试方法,实现节省人工成本、简化厕所过程、缩短测试时间的发明目的。

附图说明

图1是本发明的较佳的实施例中,一种应用程序测试方法的流程示意图;

图2-4是本发明的较佳的实施例中,于图1的基础上,应用程序测试方法中相应步骤的具体流程示意图。

图5是本发明的较佳的实施例中,一种应用程序测试系统的总体结构示意图;

图6-7是本发明的较佳的实施例中,于图1的基础上,应用程序测试系统中相应部分的具体结构示意图;

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作 出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。

现有技术中,对于移动终端中的应用程序进行测试的方式主要分为手工测试和自动化测试:

1)手工测试,即人工对应用程序的操作界面中的各个控件进行点击测试。这类测试方式的缺点在于人力成本非常高,测试的持续时间较长,测试步骤繁琐,测试结果不够客观,无法应对大量应用程序的重复性测试;

2)自动化测试。现有技术中的自动化测试,通常只是在本地对某些单一的应用进行测试,其应用程序库和相应的应用信息需要人工更新,并且可测试的数量和种类也比较有限。

本发明的较佳的实施例中,基于上文中所述的应用程序测试系统,现提供一种自动匹配版本的应用程序测试方法。本发明的较佳的实施例中,上述应用程序测试方法中,提供一移动终端,该移动终端与一应用服务端远程连接,并从应用服务端下载至少一个预设的应用程序的最新版本的安装包以准备测试。

本发明的较佳的实施例中,上述应用程序测试方法的步骤具体如图1所示,包括:

步骤S1,根据从应用服务端下载的安装包,在移动终端中安装最新版本的应用程序,并将安装完成的应用程序作为本次测试的测试对象;

本发明的较佳的实施例中,如图2所示,上述步骤S1具体包括:

步骤S11,解析从应用服务端中下载的安装包并获取相关安装信息;

本发明的较佳的实施例中,所谓相关安装信息,包括应用程序的版本号,和/或应用程序的名称,和/或应用程序的入口地址,和/或应用程序安装需要的最低系统配置。

本发明的其他实施例中,上述相关安装信息,还可以包括其他与安装应用程序相关的信息。

步骤S12,根据相关安装信息,判断移动终端中是否安装有对应于 被下载的安装包的应用程序,并在对应于安装包的应用程序存在于移动终端中时转向步骤S13;

步骤S13,根据相关安装信息判断移动终端中安装的安装包是否为最新版本,并在移动终端中已安装的应用程序不为最新版本时转向步骤S14;

本发明的较佳的实施例中,若对应于安装包的应用程序已经为最新版本,则直接转至步骤S2,开始对相应的应用程序进行测试(在图3中示出)。

步骤S14,根据安装包中的相关安装信息将相应的应用程序替换成最新版本。

本发明的较佳的实施例中,如图3所示,若对应于安装包的应用程序未存在于移动终端中时,即该应用程序事先并未安装在移动终端中时,直接跳转至步骤S15。

步骤S15,根据安装包中的相关安装信息安装相应的应用程序。

步骤S2,根据相应的安装包中解析得到相应的入口地址,并根据入口地址启动应用程序;

本发明的较佳的实施例中,上述步骤S2中,以安卓系统为例,可以通过解析安装包获得相应的主activity,从而获得上述入口地址。本发明的较佳的实施例中,通过上述入口地址,可以启动相应的应用程序,以作为测试对象。

步骤S3,依照预设的遍历方式对被启动的应用程序进行遍历测试,以获得相应的测试结果并输出;

本发明的较佳的实施例中,如图4所示,上述步骤S3进一步包括:

步骤S31,获取作为测试对象的应用程序的当前操作界面中包括的所有控件的相关属性并保存;

本发明的较佳的实施例中,获取的相关属性以文本方式被记录。具体地,本发明的较佳的实施例中,以文本中一行表示同一个控件的所有相关属性,在同一行中以空格间隔不同的相关属性。

步骤S32,将当前操作界面中包括的所有控件的相关属性与预设的关键字信息进行匹配,以判断当前操作界面的界面类型,并输出相应的判断结果;

步骤S33,根据判断结果,选择于当前操作界面中对所有控件的操 作方式,并以预设的遍历方式遍历操作当前操作界面中包括的所有控件;

步骤S34,分别将对每个控件进行操作后形成的界面保存为对应的结果界面,保存对应应用程序的所有操作界面中包括的所有控件的结果界面,并将所有结果界面作为测试结果输出。

本发明的较佳的实施例中,在对当前的应用程序进行测试的过程中,对测试过程进行监控。具体地,本发明的较佳的实施例中,监控并获取移动终端于测试应用程序的过程中产生的实时测试信息,并根据实时测试信息处理形成相应的结果视图以向使用者显示。

本发明的较佳的实施例中,如上文中所述,所谓实时测试信息,包括移动终端于测试应用程序的过程中产生的处理器相关信息,和/或内存相关信息,和/或运行状态相关信息。

本发明的较佳的实施例中,将结果视图以折线图的方式显示,即反映移动终端进行测试过程中于每个时间点上产生的实时测试信息的折线图。

步骤S4,在遍历测试结束后卸载作为测试对象的应用程序。

本发明的较佳的实施例中,当一个应用程序被测试完毕,则该应用程序被卸载,随后转至下一个安装包,以重新开始安装-测试-卸载的过程。

本发明的较佳的实施例中,直到下载的所有应用程序均被测试完毕后(即不存在尚未被安装并测试的应用程序的安装包时),表示本次测试结果。本发明的较佳的实施例中,基于上文中所述的应用程序测试方法,提供一种自动匹配版本的应用程序测试系统,其具体结构如图4所示。本发明的较佳的实施例中,移动终端A与一应用服务端B远程连接,并从应用服务端B下载至少一个预设的应用程序的最新版本的安装包以准备测试。

本发明的较佳的实施例中,上述应用程序测试系统设置于上述移动终端A中,而上述应用服务端可以为任意保存有应用程序的安装包及其相关安装信息的服务端,例如应用商城等。因此,下文中所述的应用程序测试系统中包括的内容均设置于移动终端A内,图5中不另行标注出“应用程序测试系统”的字样。

本发明的较佳的实施例中,如图5所示,上述应用程序测试系统中包括:

安装单元1。本发明的较佳的实施例中,安装单元1用于根据从应用服务端下载的安装包,在移动终端中安装最新版本的应用程序,并将安装完成 的应用程序作为本次测试的测试对象。

本发明的较佳的实施例中,如图6所示,上述安装单元1进一步包括:

解析模块11。本发明的较佳的实施例中,解析模块11用于解析从应用服务端中下载的安装包并获取相关安装信息。

本发明的一个较佳的实施例中,所谓相关安装信息,包括:

应用程序的版本号,和/或应用程序的名称,和/或应用程序的入口地址,和/或应用程序安装需要的最低系统配置。

本发明的其他实施例中,上述相关安装信息还可以包括其他能够反映所安装的应用程序的属性的信息,在此不做限定。

本发明的较佳的实施例中,上述解析模块11还用于提供和维护应用程序的测试源,以及自动下载指定的应用平台的多个相应的应用程序的安装包。

本发明的较佳的实施例中,上述安装单元1中还包括:

第一判断模块12,连接解析模块11。本发明的较佳的实施例中,第一判断模块12用于根据相关安装信息,判断移动终端中是否安装有对应于被下载的安装包的应用程序,并输出相应的第一判断结果。具体地,本发明的较佳的实施例中,移动终端A从应用服务端B中下载的应用程序的安装包,其对应的应用程序可能在移动终端A中已有安装,因此,在对下载的安装包进行操作之前,首先判断移动终端A中是否已经安装有相应的应用程序,并输出相应的第一判断结果。本发明的较佳的实施例中,根据不同的第一判断结果,移动终端A将进行不同的处理,该不同的处理在下文中会详述。

第二判断模块13,分别连接解析模块11和第一判断模块12。本发明的较佳的实施例中,上述第二判断模块13用于根据相关安装信息和第一判断结果,在对应于安装包的应用程序存在于移动终端中时判断移动终端中安装的安装包是否为最新版本,并输出相应的第二判断结果。具体地,本发明的较佳的实施例中,如上文中所述,上述相关安装信息中包括应用程序的版本号,该包括在应用服务端B中的版本号为该应用程序的最新版本号。则本发明的较佳的实施例中,当上述第一判断结果为移动终端A中安装有相应的应用程序时,上述第二判断模块13根据上述相关安装信息中的应用程序的版本号,判断已安装的该应用程序是否为最新版本,并输出相应的第二判断结果。本发明的较佳的实施例中,根据不同的第二判断结果,移动终端A将进行不同 的处理,该不同的处理在下文中会详述。

安装模块14,分别连接解析模块11、第一判断模块12和第二判断模块13。本发明的较佳的实施例中,安装模块14用于根据第一判断结果或者第二判断结果:

于移动终端A中未安装对应安装包的应用程序时,根据安装包中的相关安装信息安装相应的应用程序;或者

于移动终端A中安装的应用程序不是最新版本时,根据安装包中的相关安装信息将相应的应用程序替换成最新版本。

综上所述,本发明的较佳的实施例中,安装单元1首先下载相应的多个安装包,并根据安装包进行逐一判断:

安装单元1首先判断第一个安装包对应的应用程序是否已安装于移动终端A中:

1)若相应的应用程序已经安装,则安装单元1根据安装包中解析得到的相关安装信息,判断该应用程序是否已为最新版本:

(i)若已安装的相应的应用程序并非最新版本,则根据安装包对该应用程序进行版本更新操作;

(ii)若已安装的相应的应用程序已经是最新版本,则无需做任何操作,直接将该应用程序作为测试对象并开始测试。

2)若相应的应用程序尚未安装,则安装单元1直接根据安装包在移动终端A中安装该应用程序,并将其作为测试对象。

本发明的较佳的实施例中,若当前安装的应用程序安装失败,则直接转向安装下一个应用程序,并将安装成功的应用程序作为测试对象开始测试。

本发明的较佳的实施例中,于应用服务端B中按照下载量从大到小对相应的应用程序的安装包进行排名。

移动终端A从应用服务端B下载排名为前N名的应用程序的安装包。例如,在应用服务端B中,按照应用程序的下载量排名,对其安装包进行相应的排列,即给出TOP N(前N名)的应用程序相应的安装包以供移动终端下载。本发明的较佳的实施例中,上述N可以为使用者自行预设的应用程序的安装包的下载数量。

本发明的其他实施例中,还可以按照其他排列顺序下载相应的多个应用 程序的安装包,例如根据使用评价排名等。

本发明的较佳的实施例中,仍然如图5所示,上述应用程序测试系统中还包括:

启动单元2,连接上述安装单元1。本发明的较佳的实施例中,启动单元2用于根据相应的安装包中解析得到相应的入口地址,并根据入口地址启动应用程序。

具体地,本发明的较佳的实施例中,以安卓系统为例,一个应用程序的入口地址,由该应用程序安装包中解析得到的相关安装信息中包括的主activity得到。若一个应用程序安装成功,则可以通过该入口地址启动相应的应用程序,以进行测试。

本发明的较佳的实施例中,仍然如图5所示,上述应用程序测试系统中还包括:

测试单元3,连接启动单元2。本发明的较佳的实施例中,测试单元3用于依照预设的遍历方式对被启动的应用程序进行遍历测试,以获得相应的测试结果并输出。

本发明的较佳的实施例中,如图7所示,上述测试单元3进一步包括:

属性获取模块31。本发明的较佳的实施例中,属性获取模块31用于获取作为测试对象的应用程序的当前操作界面中包括的所有控件的相关属性并保存。

具体地,本发明的较佳的实施例中,上述属性获取模块31获取应用程序当前操作界面上的控件属性的方式可以有多种,以下提供两种获取方式:

1)本发明的一个较佳的实施例中,以安卓系统(Andriod)为例,采用安卓系统中的控件获取工具hierarchyviewer获取当前操作界面中的控件属性。

2)本发明的另一个较佳的实施例中,同样以安卓系统为例,采用安卓系统中的另一个控件获取工具uiautomatorviewer获取当前操作界面中的控件属性。本发明的其他实施例中,还可以采用其他控件获取工具实现当前操作界面的控件的相关属性的获取。

本发明的其他实施例中,上述控件获取工具不限于应用在安卓系统中的工具,也可应用于其他例如ios系统或者windows phone系统等。

本发明的较佳的实施例中,测试人员事先选择好相应的获取方式后(即事先选择相应的控件获取工具后),会提供一个相应的控件获取接口,以供上述控件获取工具获取控件的相关属性。例如,若以hierarchyviewer工具获取控件时,利用ViewServer(视图服务)的方式,以socket(套接字)通信的方式获取控件的相关属性,并提供相应的API接口;又例如,若以uiautomatorviewer工具获取控件时,可以通过xml文件的方式获取控件的相关属性,并提供相应的API接口。

本发明的一个较佳的实施例中,如上文中所述,获取的控件的相关属性以文本形式被记录。具体地,本发明的较佳的实施例中,相关于同一个操作界面中的控件的相关属性,被记录于同一个文本中。本发明的较佳的实施例中,在文本形式的文件中,以文本中的一行表示一个控件的相关属性。在同一行中,以空格间隔同一控件中不同的属性。

本发明的较佳的实施例中,以文本形式记录控件的相关属性的方式并不限于上文中所述的方式,还可以包括其他方式,例如采用分隔符区分同一控件中不同的属性等。

本发明的其他实施例中,还可以采用其他形式记录控件的相关属性。

本发明的较佳的实施例中,上述控件的相关属性以链表的形式被保存。换言之,操作界面与控件、控件与相关属性之间被相互关联。例如,将操作界面与该操作界面中相应的所有控件以相互关联的链表形式保存,以及将控件与该控件下的所有相关属性以相互关联的链表形式保存。本发明的较佳的实施例中,上述“以链表形式保存”的描述与“以文本形式保存”的描述并不冲突,以链表形式保存的描述是为了说明操作界面与控件、控件与其相关属性之间的关联关系。

综上所述,本发明技术方案中,上述属性获取模块31中,采用相应的控件获取工具(即选择相应的控件获取方法),通过提供的API接口,获取当前操作界面上的控件的相关属性,并将获取到的内容以相应形式存储(例如上文中所述的以文本形式保存,并以链表形式关联保存等)。

本发明的较佳的实施例中,仍然如图7所示,上述测试单元3中还包括:

类型判断模块32,其中预设有多个关键字信息。本发明的较佳的实施例中,类型判断模块32连接属性获取模块31,用于将当前操作界面中包括的 所有控件的相关属性与预设的关键字信息进行匹配,以判断当前操作界面的界面类型,并输出相应的判断结果。

具体地,本发明的较佳的实施例中,所谓控件的相关属性,是指用于表示控件属性的信息。例如控件对应的操作类型(例如点击、滑动以及输入等),和/或控件对应的操作内容的类型(例如登录控件、信息控件以及通话控件等),和/或控件实时的操作状态(例如未被操作过或者已被操作过),和/或控件位于当前操作界面上的序列标号等等。

则本发明的较佳的实施例中,对于当前操作界面类型的判断,通常会用到控件相关属性中的操作内容的类型。例如,判断是否为登录界面,则需要对该操作界面中的所有空间进行判断,以判断其中是否包括登录控件,和/或包括用户身份验证信息的输入文本框控件。换言之,本发明的较佳的实施例中,当对当前操作界面中的所有控件根据相关属性进行判断后才能得知相应的当前操作界面为何种类型的界面。

具体地,本发明的较佳的实施例中,预设多个关键字信息。所谓关键字信息,实际用于对控件相关属性进行匹配,从而支持判断当前操作界面的类型。

本发明的一个较佳的实施例中,对于判断一个界面是否为登录界面而言,由于对于不同的应用程序而言,有关登录的关键字描述可能并不相同,例如相应的登录控件可能为“登录”,或者“log in”,或者“进入”,或者其他通用可用于表示登录含义的关键字,则相应地可以将这些信息均预设为关键字信息。在实际对当前操作界面进行匹配判断时,若该界面中的相应的控件的属性符合上述关键字信息的匹配时,则可以判断该控件为登录类型的控件。

同样在上述实施例中,还可以根据预设的关键字信息判断某个控件是否为供测试人员输入身份验证信息的输入文本框。则在一个包括两个控件的操作界面中,若该两个控件分别被判断为输入文本框和登录点击控件,则该操作界面就可以被判断为是登录界面。

本发明的其他实施例中,可以采用预设的关键字信息判断所有操作界面的类型,从而根据判断出的类型对其中包括的控件执行相应的操作。例如对于登录界面中的输入文本框,执行文本输入操作;对于登录界面中的登录点击控件,在上述文本输入操作完毕后执行点击操作等等。

本发明的较佳的实施例中,若根据匹配无法确定当前操作界面的类型,即在预设的关键字信息中找不到与当前操作界面中控件的相关属性匹配的信息的,则上报判断失败的消息,以供测试人员处理。测试人员可以通过添加相应的关键字信息的方式对该失败消息进行处理,以完善整个关键字字库。

本发明的较佳的实施例中,仍然如图7所示,上述测试单元3中还包括:

测试模块33,连接类型判断模块32。本发明的较佳的实施例中,测试模块33用于根据判断结果,选择于当前操作界面中对所有控件的操作方式,并以预设的遍历方式遍历操作当前操作界面中包括的所有控件。

本发明的一个较佳的实施例中,可以将预设的遍历方式设定为顺序遍历方式。所谓顺序遍历,是指在一个预设的操作界面上,按照一定的执行顺序对控件进行相应操作。本发明的一个较佳的实施例中,对于一个预设的操作界面,采用从上至下、从左至右的遍历方式对其中包括的所有控件执行相应操作。

本发明的另一个较佳的实施例中,可以将预设的遍历方式设定为随机遍历方式。所谓随机遍历,是指在一个预设的操作界面中,随机选择其中包括的一个尚未经过操作的控件并执行相应操作,从而遍历完成该操作界面中包括的所有控件的操作。本发明的一个较佳的实施例中,对于一个预设的操作界面,采用上述随机遍历的方式对其中包括的所有控件执行相应操作。

本发明的其他实施例中,上述预设的遍历方式可以根据实际情况进行设定,并非限定在上述两种列举的遍历方式中。

具体地,本发明的较佳的实施例中,于上述测试模块31中,首先形成一保存有应用程序的操作界面的存储队列,存储队列采用先进后出(First In Last Out,FILO)的存储方式保存操作界面。

具体地,本发明的较佳的实施例中,上述FILO的顺序实际为选择当前操作界面的顺序。例如,当前操作界面为界面A,且该界面A出现时已被列入存储队列中,当对界面A中的某个控件进行操作后,跳转至相应的界面B,则将该界面B保存于存储队列中。则此时界面B比界面A后进入队列,因此此时的当前操作界面为界面B。当界面B被从存储队列中去除时,相应的位于存储队列最末尾的即为界面A,此时的当前操作界面即为界面A。

又例如,当前操作界面为界面A,且该界面A已被列入存储队列中。当 对界面A中的某个控件进行操作后,跳转至相应的界面B,但该界面B也已经保存于存储队列中,且该界面B保存的位置较界面A更靠前,即界面B于存储队列中的存储位置较界面A靠前。因此,当该界面B被从存储队列中去除时,将当前操作界面设定为存储队列中最靠后的界面A。

因此,本发明的较佳的实施例中,首先对当前操作界面中的第一个控件执行相应的操作,相应的操作由该控件的相关属性判断决定,例如对控件进行点击、滑动或者拖动等。在对控件执行相应操作后,判断是否跳转至某个界面,并在跳转至另一个操作界面时首先判断该操作界面是否包括在上述存储队列中,即该操作界面是否曾经出现过,并将尚未出现过的全新的操作界面保存入上述存储队列中。本发明的较佳的实施例中,由于对操作界面中的所有控件进行遍历操作(遍历方式在下文中会详述),因此对于每个操作界面中的每个控件的相关属性中均包括操作状态的属性。当判断某个操作界面中的所有控件均被操作完毕后,则将该操作界面从存储队列中去除,并将当前操作界面跳转至存储队列中最后一个的界面(通常为被去除的操作界面的上一个界面)。

以一个预设的应用程序的登录界面判断并操作为例:

现有技术中,无法对一些具有特殊功能的操作界面进行测试,其中就包括登录界面。现有技术中,在对登录界面进行测试时,通常无法测试出其功能,而会导致测试陷入死循环,影响测试的流畅度。

而在本发明技术方案中,在对当前操作界面进行判断时,若根据其中包括的控件的相关属性判断出该当前操作界面为登录界面时(例如其中包括登录点击控件,以及身份信息输入文本框等),对其中相应的控件执行相应的操作。例如对于输入文本框,将预设的身份验证信息输入到文本框中,而对于登录点击控件,在上述身份验证信息输入完毕后,点击该登录点击控件,以完成整个登录界面的控件测试过程。因此,应用本发明技术方案中的应用程序测试方法,可以有效避免因测试一些具有特殊功能的界面时导致的测试陷入死循环的问题,对这些界面同样可以完成测试。

本发明的较佳的实施例中,对遍历方式的选择在测试开始前即由测试人员做出。换言之,在对一个应用程序进行测试之前,首先预先选择相应的遍历方式。本发明的较佳的实施例中,选择遍历方式的过程可以与选择控件获 取方式的过程一起在测试开始前预先做出。

本发明的较佳的实施例中,遍历操作控件的规则包括:

1)对同一个操作界面,选择一个遍历方式遍历操作其中所包括的所有控件;

2)对操作一个预设的控件而跳转至的一个新的操作界面,判断其是否包括在上述存储队列中:

若该操作界面未包括在上述存储队列中,则将该操作界面加入到存储队列中暂存;

若该操作界面已包括在上述存储队列中,则继续判断该操作界面中包括的所有控件是否均被操作完毕:

若该操作界面中包括的所有控件均被操作完毕,则将该操作界面从存储队列中去除,随后将存储队列中最后的一个操作界面设定为当前操作界面;

若该操作界面中包括尚未被操作完毕的控件,则根据相应选择的遍历方式,选择一个控件进行操作。

本发明的较佳的实施例中,若对某个控件进行操作后,若跳转至的界面为另一个应用程序的界面(即非正在测试的应用程序的界面),则重新将保存于存储队列中的最后一个操作界面作为当前操作界面,以继续进行控件的遍历操作。上述过程设定为了防止因为跳转至新的应用程序导致的死循环或者石碑程序的出现,保证应用程序测试运行的流畅度。本发明的较佳的实施例中,可以判断操作界面的标记,从而判断其是否为被测试的应用程序的操作界面。

本发明的较佳的实施例中,仍然如图7所示,上述测试单元3中还包括

结果输出模块34,连接测试模块33。本发明的较佳的实施例中,结果输出模块34用于分别将对每个控件进行操作后形成的界面保存为对应的结果界面,保存对应应用程序的所有操作界面中包括的所有控件的结果界面,并将所有结果界面作为测试结果输出。

具体地,本发明的较佳的实施例中,对当前操作界面中的所有控件进行相应操作,遍历操作应用程序的所有操作界面中的所有控件,以得到并保存对应于每个被操作的控件的结果界面。

本发明的较佳的实施例中,所谓结果界面,即一个控件被操作之后形成 的界面,可以为控件被操作后跳转至的一个新的操作界面,也可以为控件被操作后不引起跳转而显示的原界面等。

本发明的较佳的实施例中,最终对应用程序的所有操作界面中包括的所有控件均遍历操作完毕,则输出被保存的所有结果界面。

综上所述,本发明的技术方案中,首先根据预先选择的控件获取方式获取被测试的应用程序的当前操作界面的控件的相关属性,随后根据当前操作界面中包括的所有控件的相关属性,匹配预设的关键字信息,以判断当前操作界面的类型,并根据判断结果决定对其中包括的控件执行何种操作。

相应地,预先选择一个遍历操作的方式,以对当前操作界面中包括的控件执行相应的操作。本发明技术方案中,形成一个用于保存应用程序的操作界面的FILO存储队列。存储队列的存储原则是:采用先进后出的存储方式,将从未出现过的操作界面按序保存于存储队列中,并将其中包括的所有控件均被操作完毕的操作界面从存储队列中去除。对于测试过程而言,若当前操作界面被去除,则相应跳转至存储队列中保存的最后一个操作界面,并将该操作界面作为当前操作界面,以继续执行对其中包括的控件的遍历操作。

本发明技术方案中,当应用程序的所有操作界面的所有控件均被操作完毕后(即存储队列被清空时),输出被保存的所有结果界面。

本发明的较佳的实施例中,仍然如图5所示,上述应用程序测试系统中还包括:

卸载单元4,连接测试单元3。本发明的较佳的实施例中,用于在遍历测试结束后卸载作为测试对象的应用程序。

本发明的较佳的实施例中,当卸载当前完成测试的应用程序后,移动终端A中的安装单元1继续寻找是否有下一个待安装的应用程序的安装包,并根据下一个安装包安装应用程序以进行测试。移动终端A在本次下载的所有安装包均完成测试后(即不存在下一个尚未经过测试的应用程序)结束本次测试过程。

本发明的较佳的实施例中,仍然如图5所示,上述应用程序测试系统中还包括:

监控单元5,连接测试单元3。本发明的较佳的实施例中,监控单元5用于监控对应用程序进行测试的过程中产生的相应的实时测试信息,将实时 测试信息处理形成相应的结果视图并向使用者显示。

本发明的一个较佳的实施例中,实时测试信息包括:移动终端A于测试应用程序的过程中产生的处理器相关信息,和/或内存相关信息,和/或运行状态相关信息。

本发明的其他实施例中,上述实施测试信息还可以包括其他于移动终端A对应用程序进行测试操作的过程中产生的能够反映测试过程的实时信息。

本发明的较佳的实施例中,结果视图为反映移动终端A进行测试过程中于每个时间点上产生的实时测试信息的折线图。

综上所述,本发明的技术方案中,移动终端A首先根据应用服务端B中的应用程序的排名(依照预设的规则进行顺序排列),下载TOP N个应用程序的安装包。随后判断安装包对应的应用程序是否已经安装,以及对应的应用程序是否是最新版本,并且根据判断结果安装最新版本的应用程序以作为测试对象。

随后,移动终端A对被作为测试对象的应用程序以预设的遍历方式进行测试,即启动该应用程序,并遍历应用程序的所有操作界面上的所有控件进行操作,以得到操作每个控件对应的结果界面,输出所有结果界面,作为最终的测试结果。

本发明技术方案中,当完成一个应用程序的测试后,卸载该应用程序,并转而根据下一个安装包安装相应的应用程序,并将被成功安装的应用程序作为测试对象进行测试。

本发明技术方案中,当所有应用程序均测试完毕(即不存在尚未经过测试的应用程序的安装包)时,本次测试结束。

本发明的较佳的实施例中,还提供一种移动终端,其中采用上文中所述的应用程序测试方法。

本发明的较佳的实施例中,还提供一种移动终端,其中包括上文中所述的应用程序测试系统。

以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书 及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

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