应用测试方法、装置、终端及存储介质与流程

文档序号:17441940发布日期:2019-04-17 04:52阅读:161来源:国知局
应用测试方法、装置、终端及存储介质与流程

本公开涉及应用测试领域,尤其涉及一种应用测试方法、装置、终端及存储介质。



背景技术:

应用在开发出来后,为了防止在应用的使用过程中,出现一些异常场景引起的崩溃等问题,往往需要对应用进行稳定性测试。

相关技术使用monkey来对应用进行稳定性测试,monkey是一款通过命令行来对应用进行测试的工具,monkey一般是直接执行命令,模拟用户对应用进行持续的随机操作,看是否会出现崩溃等问题。

上述技术在测试过程中,monkey是对应用进行随机操作,这种仅针对操作进行稳定性测试的方式,没有考虑其他因素对应用运行的稳定性带来的影响,测试覆盖不全面,测试结果的可靠性差。



技术实现要素:

本公开提供一种应用测试方法、装置、终端及存储介质,能够克服测试结果的可靠性差的问题。

根据本公开实施例的第一方面,提供一种应用测试方法,包括:

运行待测试的应用;

在所述应用的运行过程中,使用测试工具对所述应用进行测试;

在所述应用的测试过程中,控制所述终端的系统语言进行切换,根据切换后的系统语言,将所述应用的界面的语言切换为相同的语言。

在一种可能实现方式中,所述控制所述终端的系统语言进行切换,包括:

每隔预设时间间隔,控制所述终端的系统语言进行切换;或,

当所述应用的界面切换次数达到预设次数时,控制所述终端的系统语言进行切换;或,

当所述应用的界面切换至目标界面时,控制所述终端的系统语言进行切换。

在一种可能实现方式中,所述控制所述终端的系统语言进行切换,包括:

在显示所述应用的同一界面的过程中,控制所述终端的系统语言进行多次切换。

在一种可能实现方式中,所述控制所述终端的系统语言进行切换,包括:

从多种语言中,随机选择一种与当前的系统语言不同的语言,将所述终端的系统语言切换为随机选择的语言;或,

根据所述多种语言的预设切换顺序,控制所述终端的系统语言按照所述预设切换顺序进行切换。

在一种可能实现方式中,所述运行待测试的应用之前,所述方法还包括:

使用目标编程语言中的标准库下载所述应用的语言包,所述语言包包含多种语言;

通过二进制的方式,使用下载的语言包替换所述应用的代码中的语言包;

将所述应用的代码打包,得到所述应用的安装包;

将所述应用的安装包安装到所述终端上。

在一种可能实现方式中,所述方法还包括:

将所述测试工具对所述应用的测试结果存储到数据库中;

每隔预设时间间隔,读取所述数据库,得到目标时间段内的测试结果,所述目标时间段为上一次读取数据库的时间与本次读取数据库的时间之间的时间段;

将所述目标时间段内的测试结果发送给目标用户。

在一种可能实现方式中,所述测试结果中包含缺陷类型和所述应用的包名;

所述将所述目标时间段内的测试结果发送给目标用户,包括:

根据所述目标时间段内的测试结果所包含的缺陷类型,确定缺陷优先级,所述缺陷优先级用于指示缺陷处理的优先次序;

根据所述目标时间段内的测试结果所包含的包名,确定对应的目标用户;

将所述目标时间段内的测试结果所包含的缺陷类型以及对应的缺陷优先级发送给所述目标用户。

在一种可能实现方式中,所述确定目标用户之后,所述方法还包括:

将所述终端的设备信息、所述目标用户的用户信息、所述目标时间段内的测试结果所包含的缺陷类型以及对应的缺陷优先级提交到缺陷管理平台上。

根据本公开实施例的第二方面,提供一种应用测试装置,包括:

运行模块,被配置为执行运行待测试的应用;

测试模块,被配置为在所述应用的运行过程中,执行使用测试工具对所述应用进行测试;

切换模块,被配置为在所述应用的测试过程中,执行控制所述终端的系统语言进行切换,根据切换后的系统语言,将所述应用的界面的语言切换为相同的语言。

在一种可能实现方式中,所述切换模块被配置为:

每隔预设时间间隔,控制所述终端的系统语言进行切换;或,

当所述应用的界面切换次数达到预设次数时,控制所述终端的系统语言进行切换;或,

当所述应用的界面切换至目标界面时,控制所述终端的系统语言进行切换。

在一种可能实现方式中,所述切换模块被配置为在显示所述应用的同一界面的过程中,控制所述终端的系统语言进行多次切换。

在一种可能实现方式中,所述切换模块被配置为:

从多种语言中,随机选择一种与当前的系统语言不同的语言,将所述终端的系统语言切换为随机选择的语言;或,

根据所述多种语言的预设切换顺序,控制所述终端的系统语言按照所述预设切换顺序进行切换。

在一种可能实现方式中,所述装置还包括:

下载模块,被配置为执行使用目标编程语言中的标准库下载所述应用的语言包,所述语言包包含多种语言;

替换模块,被配置为执行通过二进制的方式,使用下载的语言包替换所述应用的代码中的语言包;

打包模块,被配置为执行将所述应用的代码打包,得到所述应用的安装包;

安装模块,被配置为执行将所述应用的安装包安装到所述终端上。

在一种可能实现方式中,所述装置还包括:

存储模块,被配置为执行将所述测试工具对所述应用的测试结果存储到数据库中;

读取模块,被配置为执行每隔预设时间间隔,读取所述数据库,得到目标时间段内的测试结果,所述目标时间段为上一次读取数据库的时间与本次读取数据库的时间之间的时间段;

发送模块,被配置为执行将所述目标时间段内的测试结果发送给目标用户。

在一种可能实现方式中,所述测试结果中包含缺陷类型和所述应用的包名,所述发送模块被配置为执行:

根据所述目标时间段内的测试结果所包含的缺陷类型,确定缺陷优先级,所述缺陷优先级用于指示缺陷处理的优先次序;

根据所述目标时间段内的测试结果所包含的包名,确定对应的目标用户;

将所述目标时间段内的测试结果所包含的缺陷类型以及对应的缺陷优先级发送给所述目标用户。

在一种可能实现方式中,所述装置还包括:

提交模块,被配置为执行将所述终端的设备信息、所述目标用户的用户信息、所述目标时间段内的测试结果所包含的缺陷类型以及对应的缺陷优先级提交到缺陷管理平台上。

根据本公开实施例的第三方面,提供了一种终端,包括:

一个或多个处理器;

用于存储所述一个或多个处理器可执行指令的一个或多个存储器;

其中,所述一个或多个处理器被配置为:

运行待测试的应用;

在所述应用的运行过程中,使用测试工具对所述应用进行测试;

在所述应用的测试过程中,控制所述终端的系统语言进行切换,根据切换后的系统语言,将所述应用的界面的语言切换为相同的语言。

根据本公开实施例的第四方面,提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端的处理器执行时,使得终端能够执行下述应用测试方法:

运行待测试的应用;

在所述应用的运行过程中,使用测试工具对所述应用进行测试;

在所述应用的测试过程中,控制所述终端的系统语言进行切换,根据切换后的系统语言,将所述应用的界面的语言切换为相同的语言。

根据本公开实施例的第五方面,提供一种应用程序产品,当所述应用程序产品中的指令由终端的处理器执行时,使得终端能够执行下述应用测试方法:

运行待测试的应用;

在所述应用的运行过程中,使用测试工具对所述应用进行测试;

在所述应用的测试过程中,控制所述终端的系统语言进行切换,根据切换后的系统语言,将所述应用的界面的语言切换为相同的语言。

本公开的实施例提供的技术方案可以包括以下有益效果:

通过使用测试工具自动对应用进行稳定性测试,在测试过程中,控制系统语言进行切换,并同步将该应用的界面的语言切换为相同的语言,这样可以测试出在发生语言切换时,应用是否能够稳定运行,从而实现针对语言切换的稳定性测试,测试覆盖更全面,提高了测试结果的可靠性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是根据一示例性实施例示出的一种应用测试方法的流程图。

图2是根据一示例性实施例示出的一种应用测试方法的流程图。

图3是根据一示例性实施例示出的一种拉翻译的流程图。

图4是根据一示例性实施例示出的一种稳定性测试和结果同步的流程图。

图5是根据一示例性实施例示出的一种应用测试装置的框图。

图6是根据一示例性实施例示出的一种应用测试装置的框图。

图7是根据一示例性实施例示出的一种应用测试装置的框图。

图8是根据一示例性实施例示出的一种应用测试装置的框图。

图9是根据一示例性实施例示出的一种终端900的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种应用测试方法的流程图,如图1所示,应用测试方法用于终端中,包括以下步骤:

在步骤s11中,运行待测试的应用;

在步骤s12中,在该应用的运行过程中,使用测试工具对该应用进行测试;

在步骤s13中,在该应用的测试过程中,控制该终端的系统语言进行切换,根据切换后的系统语言,将该应用的界面的语言切换为相同的语言。

本公开实施例提供的方法,通过使用测试工具自动对应用进行稳定性测试,在测试过程中,控制系统语言进行切换,并同步将该应用的界面的语言切换为相同的语言,这样可以测试出在发生语言切换时,应用是否能够稳定运行,从而实现针对语言切换的稳定性测试,测试覆盖更全面,提高了测试结果的可靠性。

在一种可能实现方式中,该控制该终端的系统语言进行切换,包括:

每隔预设时间间隔,控制该终端的系统语言进行切换;或,

当该应用的界面切换次数达到预设次数时,控制该终端的系统语言进行切换;或,

当该应用的界面切换至目标界面时,控制该终端的系统语言进行切换。

在一种可能实现方式中,该控制该终端的系统语言进行切换,包括:

在显示该应用的同一界面的过程中,控制该终端的系统语言进行多次切换。

在一种可能实现方式中,该控制该终端的系统语言进行切换,包括:

从多种语言中,随机选择一种与当前的系统语言不同的语言,将该终端的系统语言切换为随机选择的语言;或,

根据该多种语言的预设切换顺序,控制该终端的系统语言按照该预设切换顺序进行切换。

在一种可能实现方式中,该运行待测试的应用之前,该方法还包括:

使用目标编程语言中的标准库下载该应用的语言包,该语言包包含多种语言;

通过二进制的方式,使用下载的语言包替换该应用的代码中的语言包;

将该应用的代码打包,得到该应用的安装包;

将该应用的安装包安装到该终端上。

在一种可能实现方式中,该方法还包括:

将该测试工具对该应用的测试结果存储到数据库中;

每隔预设时间间隔,读取该数据库,得到目标时间段内的测试结果,该目标时间段为上一次读取数据库的时间与本次读取数据库的时间之间的时间段;

将该目标时间段内的测试结果发送给目标用户。

在一种可能实现方式中,该测试结果中包含缺陷类型和该应用的包名;

该将该目标时间段内的测试结果发送给目标用户,包括:

根据该目标时间段内的测试结果所包含的缺陷类型,确定缺陷优先级,该缺陷优先级用于指示缺陷处理的优先次序;

根据该目标时间段内的测试结果所包含的包名,确定对应的目标用户;

将该目标时间段内的测试结果所包含的缺陷类型以及对应的缺陷优先级发送给该目标用户。

在一种可能实现方式中,该确定目标用户之后,该方法还包括:

将该终端的设备信息、该目标用户的用户信息、该目标时间段内的测试结果所包含的缺陷类型以及对应的缺陷优先级提交到缺陷管理平台上。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

图2是根据一示例性实施例示出的一种应用测试方法的流程图,如图2所示,应用测试方法用于终端中,包括以下步骤:

在步骤s21中,获取应用的安装包后,将该应用的安装包安装到终端上。

在一种可能实现方式中,获取应用的安装包的过程可以包括下述步骤a至步骤d:

步骤a、使用目标编程语言中的标准库下载该应用的语言包,该语言包包含多种语言。

其中,目标编程语言可以为python语言,标准库可以为urllib2库,urllib2库具有网页抓取的功能,可以把网页地址中指定的网络资源从网络流中读取出来,保存到本地。因此,终端可以利用python语言的urllib2库,从网页上下载该应用最新的语言包。例如,翻译人员可以针对不同的国家,将该应用的文案翻译为不同国家的语言,然后在该网页上录入最新翻译的文案。相关技术需要测试人员手动点击该网页上的下载按钮,才能下载到包含最新翻译文案的语言包,而本公开利用python语言的urllib2库即可自动下载语言包,节省了时间。

步骤b、通过二进制的方式,使用下载的语言包替换该应用的代码中的语言包。

终端在下载到应用的最新语言包后,可以采用二进制流方式,将最新语言包写入应用的代码中,替换掉代码中原有的语言包。相关技术中进行语言包的替换需要测试人员更改语言包的名字后,再替换掉代码中的语言包,而本公开通过二进制的方式,可以自动进行代码中语言包的替换,节省了时间。

需要说明的是,步骤a和步骤b可以通过执行第一脚本来实现。该第一脚本的功能包括下载语言包以及使用该语言包替换应用的代码中的语言包。

进一步地,终端可以将该应用的代码提交到源代码主干分支上,基于主干分支进行后续的应用安装和测试过程。参见图3,提供了一种拉翻译的流程图,其中,拉翻译是指从网页上下载包含最新翻译文案的语言包。如图3所示,步骤a中自动下载语言包和步骤b中进行语言包的替换可以是拉翻译的过程,当然,该拉翻译的过程还可以包括自动提交代码到主干分支上。相比于相关技术中用户需要手动下载语言包,更改语言包的名字后进行语言包的替换这种手动拉翻译过程,本公开可以进行自动拉翻译过程,节省了拉翻译的时间。

步骤c、将该应用的代码打包,得到该应用的安装包。

终端通过步骤a和步骤b更新代码中的语言包后,可以对更新后的代码进行打包,得到应用的安装包。进而,终端可以从主干分支上获取该应用的代码进行打包。例如,终端可以将第一脚本集成到持续集成工具(jenkins)上,使得第一脚本可以自动执行,并且执行后可以将应用的代码自动提交到主干分支上,然后jenkins从主干分支上拉代码进行打包,得到应用的安装包。

步骤d、将该应用的安装包安装到该终端上。

具体地,终端可以使用adb(安卓调试桥)命令进行安装包的安装。

需要说明的是,该步骤s21为可选步骤,例如,该步骤s21可以仅在应用文案的翻译有更新时执行,这样可以得到最新的应用,基于最新的应用进行测试,可以保证测试结果的可靠性。

在步骤s22中,运行待测试的应用,在该应用的运行过程中,使用测试工具对该应用进行测试。

本公开实施例中,终端在完成安装包的安装后,可以运行测试工具,以使用该测试工具对应用进行测试。在测试之前,终端可以先运行该应用,具体地,终端可以将该应用的包名提供给测试工具,如使用“-p”这个参数加上该应用的包名,以指定该应用为待测试的应用,此时测试工具可以在终端上启动该应用并进行测试操作。

其中,该测试工具可以是monkey(猴子)工具,monkey工具的原理是通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对应用的压力测试,monkey测试的效果就相当于用户的手指在应用的界面上胡乱操作,看是否会发生崩溃等问题。

在步骤s23中,在该应用的测试过程中,控制该终端的系统语言进行切换,根据切换后的系统语言,将该应用的界面的语言切换为相同的语言。

本公开实施例中,为了实现针对语言切换的稳定性测试,终端可以在测试过程中进行语言切换,例如,终端可以使用adb命令,控制该终端的系统语言自动进行切换。具体地,终端在将当前的系统语言切换为另一种语言后,可以将应用的界面的语言也切换为该另一种语言,保持应用界面的语言与系统语言一致。

在一种可能实现方式中,终端控制该终端的系统语言进行切换可以包括:每隔预设时间间隔,控制该终端的系统语言进行切换;或,当该应用的界面切换次数达到预设次数时,控制该终端的系统语言进行切换;或,当该应用的界面切换至目标界面时,控制该终端的系统语言进行切换。

终端可以每隔一段时间,控制系统语言进行切换,如每隔5分钟进行一次语言切换。考虑到使用测试工具对应用进行测试的过程中,应用可能会发生界面切换,终端也可以每切换几个界面后,控制系统语言进行切换,如每切换3个界面进行一次语言切换。另外,考虑到应用的某个界面可能容易出现问题,终端可以在切换至该界面时,控制系统语言进行切换。通过在测试过程中对系统语言进行切换,可以测试在更换系统语言时,应用是否能够稳定运行,从而实现针对语言切换的稳定性测试。

在一种可能实现方式中,终端控制该终端的系统语言进行切换可以包括:在显示该应用的同一界面的过程中,控制该终端的系统语言进行多次切换。

对于该应用的任一界面,终端在显示该界面的过程中,可以控制系统语言进行多次切换,每次切换系统语言后,终端可以同步将应用界面上的语言进行切换,这样可以覆盖到应用支持的多种语言,从而准确地测试出在切换语言时该界面是否能稳定运行。

在一种可能实现方式中,终端控制该终端的系统语言进行切换可以包括:从多种语言中,随机选择一种与当前的系统语言不同的语言,将该终端的系统语言切换为随机选择的语言;或,根据该多种语言的预设切换顺序,控制该终端的系统语言按照该预设切换顺序进行切换。

终端的系统语言可以有多种语言,每次切换系统语言时,终端可以将系统语言切换为其中任一种语言。当然,终端也可以预先设置有该多种语言的切换顺序,每次切换系统语言时,可以按照该切换顺序进行切换,如该多种语言的切换顺序依次为语言1、语言2和语言3,如果第一次从语言1切换为语言2,则下一次可以从语言2切换为语言3,再下一次可以从语言3切换为语言1。终端在进行语言切换时,可以随机切换为不同的语言,也可以按照顺序依次进行切换,语言切换的灵活性较大。

需要说明的是,步骤s22和步骤s23可以通过执行第二脚本来实现。该第二脚本的功能包括触发该测试工具的运行以及在该测试工具的运行过程中进行语言切换,该第二脚本也可以集成到持续集成工具上。

在步骤s24中,将该测试工具对应用的测试结果存储到数据库中。

本公开实施例中,终端在运行测试工具的过程中,可以定时读取测试工具的结果文件,将该结果文件中记录的测试结果存储到数据库中。该数据库中可以仅存储有该应用的测试结果,也可以存储有多个应用进行测试的测试结果。

在一种可能实现方式中,该测试结果中可以包含缺陷类型和该应用的包名,其中,缺陷(bug)类型可以包括crash(崩溃)类型和anr(应用无响应)类型。其中,crash类型是指操作应用时发生界面崩溃,anr类型是指操作应用时一时没有响应,等一会后可能就正常响应了。

在步骤s25中,每隔预设时间间隔,读取该数据库,得到目标时间段内的测试结果,该目标时间段为上一次读取数据库的时间与本次读取数据库的时间之间的时间段。

本公开实施例中,终端可以每隔一段时间,读取数据库中最新产生的数据,也即是最新的测试结果。例如,终端可以使用编号(id)标记数据库中的数据,终端可以根据上一次读取时数据库中最后一条数据的id与本次读取时数据库中最后一条数据的id之差,得到目标时间段内数据库中新增的数据量,然后使用数据库查询语句,来查询目标时间段内数据库中新增的数据,例如,该查询语句可以是“orderbyiddesclimitn”,其中,n为正整数,表示目标时间段内数据库中新增的数据。

例如,上一次读取数据库时有10条数据,则最后一条数据的id为10,测试工具的运行过程中,终端会将测试结果存储到数据库中,这样数据库中的数据会增多,比如本次读取数据库时有15条数据,则最后一条数据的id为15,这样要查询的数据即是15-10=5条,用“orderbyiddesclimit5”即可查出数据库中最新的5条数据。

在一种可能实现方式中,该步骤s25可以通过执行第三脚本来实现,例如,终端可以每隔预设时间间隔执行第三脚本,该第三脚本的功能包括读取数据库中最新产生的数据,也即是,上一次执行第三脚本的时间至本次执行第三脚本的时间之间的时间段内产生的数据。该第三脚本也可以集成到持续集成工具上。针对第一脚本、第二脚本和第二脚本均集成在持续集成工具上,可以预先约定三个脚本的执行顺序,如先执行第一个脚本,执行完后打包,再执行第二个脚本和第三个脚本。

在步骤s26中,根据该目标时间段内的测试结果所包含的缺陷类型,确定缺陷优先级,该缺陷优先级用于指示缺陷处理的优先次序。

其中,缺陷优先级越高表明缺陷比较严重,越需要优先处理。

本公开实施例中,终端在获取到测试工具在目标时间段内对应用的测试结果后,可以获取测试结果中包含的缺陷类型,进一步地,终端还可以根据缺陷类型与缺陷优先级的对应关系,确定测试结果中的缺陷类型所对应的缺陷优先级。不同的缺陷类型可以对应不同的缺陷优先级,例如,crash类型的优先级为p0级别,anr类型的优先级为p1级别,p0级别可以高于p1级别。

在步骤s27中,根据该目标时间段内的测试结果所包含的包名,确定目标用户。

本公开实施例中,终端在获取到目标时间段内的测试结果后,可以获取测试结果中包含的包名,从而得知被测试的应用,进而终端可以根据该应用以及应用与用户之间的对应关系,确定该应用对应的目标用户(责任人),进而终端还可以获取该目标用户的信息,该信息可以包括目标用户的邮箱地址、账号信息(如即时通信应用的账号信息)等。

在步骤s28中,将该目标时间段内的测试结果所包含的缺陷类型以及对应的缺陷优先级发送给该目标用户。

本公开实施例中,终端在确定目标用户后,可以将包含缺陷类型和缺陷优先级等的测试结果发送给目标用户,如根据目标用户的邮箱地址,将上述信息发送至目标用户的邮箱,或根据目标用户的账号信息,将上述信息发送给目标用户的账号所登录设备。

需要说明的是,上述步骤s26至步骤s28是将该目标时间段内的测试结果发送给目标用户的一种可能实现方式。通过将缺陷结果及时同步给对应的责任人,并注明优先级,使得责任人可以根据优先级,对该应用测试过程中出现的缺陷及时进行处理。

可选地,终端确定目标用户之后,还可以将应用测试过程中出现的缺陷信息提交到缺陷管理平台上,具体地,终端可以将该终端的设备信息、该目标用户的用户信息、该目标时间段内的测试结果所包含的缺陷类型以及对应的缺陷优先级提交到缺陷管理平台上,便于技术人员进行查看和管理。其中,该缺陷管理平台可以是jira平台,该jira平台用于进行缺陷跟踪和管理。例如,终端可以利用目标编程语言(python)调用jira平台提供的接口,将上述信息自动提交到jira平台。

参见图4,提供了一种稳定性测试和结果同步的流程图,如图4所示,以测试工具为monkey进行说明,终端在运行monkey的过程中可以每隔一段时间,用adb命令自动切换系统语言,将结果存储到数据库中,定时读取数据库中的数据,便于确定bug(缺陷)类型、bug优先级以及分配bug的责任人。根据读取的数据判断bug类型是否为crash类型,如果bug类型是crash类型,则bug优先级为p0级别,如果bug类型是anr类型,则bug优先级为p1级别。以三种应用app1、app2和app3为例,如果包名为“com.app1”,则bug的责任人为用户a,如果包名为“com.app2”,则bug的责任人为用户b,如果包名不是上述两种,也即是,包名为“com.app3”,则bug的责任人为用户c。进一步地,终端还可以利用python调用jira平台的接口,将bug自动提交到jira平台。

需要说明的是,上述步骤s24至步骤s28为可选步骤,通过将测试工具的测试结果进行存储,定时读取数据库中最新产生的数据,根据缺陷类型划分缺陷优先级,通过包名确定缺陷的责任人,并将出现问题的设备信息提交到缺陷管理平台,将缺陷信息同步给对应的责任人,这样不仅可以对应用的缺陷进行统一管理,还可以及时提醒责任人对缺陷进行处理。

本公开实施例提供的方法,通过使用测试工具自动对应用进行稳定性测试,在测试过程中,控制系统语言进行切换,并同步将该应用的界面的语言切换为相同的语言,这样可以测试出在发生语言切换时,应用是否能够稳定运行,从而实现针对语言切换的稳定性测试,测试覆盖更全面,提高了测试结果的可靠性。

图5是根据一示例性实施例示出的一种应用测试装置的框图。参照图5,该装置包括运行模块501,测试模块502和切换模块503。

运行模块501被配置为执行运行待测试的应用;

测试模块502被配置为在该应用的运行过程中,执行使用测试工具对该应用进行测试;

切换模块503被配置为在该应用的测试过程中,执行控制该终端的系统语言进行切换,根据切换后的系统语言,将该应用的界面的语言切换为相同的语言。

在一种可能实现方式中,该切换模块503被配置为:

每隔预设时间间隔,控制该终端的系统语言进行切换;或,

当该应用的界面切换次数达到预设次数时,控制该终端的系统语言进行切换;或,

当该应用的界面切换至目标界面时,控制该终端的系统语言进行切换。

在一种可能实现方式中,该切换模块503被配置为在显示该应用的同一界面的过程中,控制该终端的系统语言进行多次切换。

在一种可能实现方式中,该切换模块503被配置为:

从多种语言中,随机选择一种与当前的系统语言不同的语言,将该终端的系统语言切换为随机选择的语言;或,

根据该多种语言的预设切换顺序,控制该终端的系统语言按照该预设切换顺序进行切换。

在一种可能实现方式中,参见图6,该装置还包括:

下载模块504,被配置为执行使用目标编程语言中的标准库下载该应用的语言包,该语言包包含多种语言;

替换模块505,被配置为执行通过二进制的方式,使用下载的语言包替换该应用的代码中的语言包;

打包模块506,被配置为执行将该应用的代码打包,得到该应用的安装包;

安装模块507,被配置为执行将该应用的安装包安装到该终端上。

在一种可能实现方式中,参见图7,该装置还包括:

存储模块508,被配置为执行将该测试工具对该应用的测试结果存储到数据库中;

读取模块509,被配置为执行每隔预设时间间隔,读取该数据库,得到目标时间段内的测试结果,该目标时间段为上一次读取数据库的时间与本次读取数据库的时间之间的时间段;

发送模块510,被配置为执行将该目标时间段内的测试结果发送给目标用户。

在一种可能实现方式中,该测试结果中包含缺陷类型和该应用的包名;

该发送模块510被配置为执行:

根据该目标时间段内的测试结果所包含的缺陷类型,确定缺陷优先级,该缺陷优先级用于指示缺陷处理的优先次序;

根据该目标时间段内的测试结果所包含的包名,确定对应的目标用户;

将该目标时间段内的测试结果所包含的缺陷类型以及对应的缺陷优先级发送给该目标用户。

在一种可能实现方式中,参见图8,该装置还包括:

提交模块511,被配置为执行将该终端的设备信息、该目标用户的用户信息、该目标时间段内的测试结果所包含的缺陷类型以及对应的缺陷优先级提交到缺陷管理平台上。

本公开实施例中,通过使用测试工具自动对应用进行稳定性测试,在测试过程中,控制系统语言进行切换,并同步将该应用的界面的语言切换为相同的语言,这样可以测试出在发生语言切换时,应用是否能够稳定运行,从而实现针对语言切换的稳定性测试,测试覆盖更全面,提高了测试结果的可靠性。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图9是根据一示例性实施例示出的一种终端900的框图。该终端900可以是:智能手机、平板电脑、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端900包括有:处理器901和存储器902。

处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器901所执行以实现本申请中方法实施例提供的应用测试方法。

在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、显示屏905、摄像头906、音频电路907、定位组件908和电源909中的至少一种。

外围设备接口903可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路904用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏905用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置终端900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在终端900的不同表面或呈折叠设计;在再一些实施例中,显示屏905可以是柔性显示屏,设置在终端900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。

定位组件908用于定位终端900的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件908可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。

电源909用于为终端900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915以及接近传感器916。

加速度传感器911可以检测以终端900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器911采集的重力加速度信号,控制显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器912可以检测终端900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户对终端900的3d动作。处理器901根据陀螺仪传感器912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器913可以设置在终端900的侧边框和/或显示屏905的下层。当压力传感器913设置在终端900的侧边框时,可以检测用户对终端900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在显示屏905的下层时,由处理器901根据用户对显示屏905的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器914采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器914可以被设置终端900的正面、背面或侧面。当终端900上设置有物理按键或厂商logo时,指纹传感器914可以与物理按键或厂商logo集成在一起。

光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制显示屏905的显示亮度。具体地,当环境光强度较高时,调高显示屏905的显示亮度;当环境光强度较低时,调低显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器915采集的环境光强度,动态调整摄像头组件906的拍摄参数。

接近传感器916,也称距离传感器,通常设置在终端900的前面板。接近传感器916用于采集用户与终端900的正面之间的距离。在一个实施例中,当接近传感器916检测到用户与终端900的正面之间的距离逐渐变小时,由处理器901控制显示屏905从亮屏状态切换为息屏状态;当接近传感器916检测到用户与终端900的正面之间的距离逐渐变大时,由处理器901控制显示屏905从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图9中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

在示例性实施例中,还提供了一种非临时性计算机可读存储介质,当该存储介质中的指令由终端的处理器执行时,使得终端能够执行下述应用测试方法:

运行待测试的应用;

在该应用的运行过程中,使用测试工具对该应用进行测试;

在该应用的测试过程中,控制该终端的系统语言进行切换,根据切换后的系统语言,将该应用的界面的语言切换为相同的语言。

例如,该非临时性计算机可读存储介质可以是rom(read-onlymemory,只读内存)、ram(randomaccessmemory,随机存取存储器)、cd-rom(compactdiscread-onlymemory,只读光盘)、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供了一种应用程序产品,当该应用程序产品中的指令由终端的处理器执行时,使得终端能够执行下述应用测试方法:

运行待测试的应用;

在该应用的运行过程中,使用测试工具对该应用进行测试;

在该应用的测试过程中,控制该终端的系统语言进行切换,根据切换后的系统语言,将该应用的界面的语言切换为相同的语言。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

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