一种应用测试方法及装置与流程

文档序号:15557694发布日期:2018-09-29 01:30阅读:162来源:国知局

本发明涉及计算机技术领域,尤其涉及一种应用测试方法及装置。



背景技术:

随着智能终端的广泛普及,智能终端上运行的应用程序越来越多,针对智能终端上的应用程序测试的需求也应运而生。

目前,在应用程序开发过程中,通常采用随机测试或遍历测试方法对应用程序的控件进行测试。然而,对于那些拥有大量应用界面以及大量控件的应用程序而言,采用随机测试或遍历测试控件的测试方法很可能对一些不重要的控件重复测试多次,而一些重要的控件很可能会被遗漏,导致测试效率低下。



技术实现要素:

本发明提供了一种应用测试方法及装置,目的在于提高应用程序的测试效率。

为了解决上述技术问题,本发明实施例提供了一种应用测试方法。该方法,包括:

获取当前界面的控件库及已完成测试控件队列,所述控件库中包括所述当前界面的控件标识及各所述控件标识对应的用户操作热度信息;

根据所述已完成测试控件队列,确定所述当前界面是否存在未完成测试控件;

若存在,则根据所述控件库中各所述控件标识对应的用户操作热度信息,在所述未完成测试控件中选取操作热度最高的控件作为目标控件;

对所述目标控件进行测试。

可选地,在所述获取当前界面的控件库的步骤之前,上述方法,还包括:

基于多个用户历史时段内针对所述当前界面的操作数据,确定所述当前界面的各控件的用户操作热度信息;

根据所述当前界面的各控件的用户操作热度信息,建立所述控件库。

可选地,基于多个用户历史时段内针对所述当前界面的操作数据,确定所述当前界面的各控件的用户操作热度信息,包括:

根据所述操作数据,统计得到包括所述各控件的操作次数和/或所述当前界面的热区分布信息的统计结果;

根据所述统计结果,确定所述各控件的用户操作热度信息。

可选地,所述统计结果包括所述各控件的操作次数;

相应的,根据所述统计结果,确定所述各控件的用户操作热度信息,包括:将所述各控件的操作次数作为所述各控件的热度值,所述用户操作热度信息包括所述热度值。

可选地,所述统计结果包括所述各控件的操作次数和所述当前界面的热区分布信息;

相应的,根据所述统计结果,确定所述各控件的用户操作热度信息,包括:

根据所述热区分布信息,将所述当前界面中的控件划分为热区外控件和热区内控件;

根据热区外系数以及各所述热区外控件的操作次数,计算各所述热区外控件的热度值;

根据热区内系数以及各所述热区外控件的操作次数,计算各所述热区内控件的热度值;

所述用户操作热度信息包括所述热度值。

可选地,在所述对所述目标控件进行测试的步骤之前,还包括:

获取所述目标控件的手势库及已测手势队列,所述手势库中包括所述目标控件的手势标识及各所述手势标识对应的操作次数;

根据所述已测手势队列,确定所述目标控件的未测手势;

根据所述手势库中各所述手势标识对应的操作次数,从所述未测手势中选取操作次数最高的手势作为目标手势;

相应的,对所述目标控件进行测试,包括:根据所述目标手势对应的手势信息生成相应的触发事件,以触发所述目标控件进行测试。

可选地,还包括:

当所述目标控件的已测手势队列中包括所述目标控件对应的所有手势时,在所述已完成测试控件队列中加入所述目标控件对应的控件标识。

本发明实施例还提供了一种应用测试装置。该装置,包括:

第一获取模块,用于获取当前界面的控件库及已完成测试控件队列,所述控件库中包括所述当前界面的控件标识及各所述控件标识对应的用户操作热度信息;

第一确定模块,根据所述已完成测试控件队列,确定所述当前界面是否存在未完成测试控件;

第一选取模块,用于若存在,则根据所述控件库中各所述控件标识对应的用户操作热度信息,在所述未完成测试控件中选取操作热度最高的控件作为目标控件;

测试模块,用于对所述目标控件进行测试。

可选地,上述装置,还包括:

第二确定模块,用于基于多个用户历史时段内针对所述当前界面的操作数据,确定所述当前界面的各控件的用户操作热度信息;

建立模块,用于根据所述当前界面的各控件的用户操作热度信息,建立所述控件库。

可选地,所述第二确定模块包括:

统计单元,用于根据所述操作数据,统计得到包括所述各控件的操作次数和/或所述当前界面的热区分布信息的统计结果;

确定单元,用于根据所述统计结果,确定所述各控件的用户操作热度信息。

可选地,所述统计结果包括所述各控件的操作次数;

相应的,所述确定单元具体用于将所述各控件的操作次数作为所述各控件的热度值,所述用户操作热度信息包括所述热度值。

可选地,所述统计结果包括所述各控件的操作次数和所述当前界面的热区分布信息;

相应的,所述确定单元包括:

划分子单元,用于根据所述热区分布信息,将所述当前界面中的控件划分为热区外控件和热区内控件;

计算子单元,用于根据热区外系数以及各所述热区外控件的操作次数,计算各所述热区外控件的热度值;还用于根据热区内系数以及各所述热区外控件的操作次数,计算各所述热区内控件的热度值;所述用户操作热度信息包括所述热度值。

由于用户操作热度高的控件在应用程序上线后被频繁使用的概率较大,因此在应用测试中最好能够将这些用户操作热度高的控件测试到。本发明实施例提供的技术方案中,按照用户操作热度由高到底的顺序来测试当前界面中的各控件,即优先对当前界面中重要控件进行测试,这样可有效降低重要控件被遗漏的概率,提高测试效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的应用测试方法的流程示意图;

图2为本发明又一实施例提供的应用测试方法的流程示意图;

图3为本发明一实施例提供的目标手势确定方法的流程示意图;

图4为本发明一实施例提供的应用测试装置的结构框图;

图5为本发明又一实施例提供的应用测试装置的结构框图。

具体实施方式

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

图1为本发明一实施例提供的应用测试方法的流程示意图。如图1所示,该方法包括:

101、获取当前界面的控件库及已完成测试控件队列,所述控件库中包括所述当前界面的控件标识及各所述控件标识对应的用户操作热度信息。

102、根据已完成测试控件队列,确定所述当前界面是否存在未完成测试控件。

103、若存在,则根据所述控件库中各所述控件标识对应的用户操作热度信息,在所述未完成测试控件中选取操作热度最高的控件作为目标控件。

104、对所述目标控件进行测试。

上述步骤101中,当前界面指的是当前在终端上显示的应用界面。在实际测试过程中,终端通常会随着所触发的控件不断跳转应用界面。该应用可以为游戏应用、社交应用或视频应用等。控件指的是应用界面中的按钮(button)、图片(imageview)、文本框(textview)等,一个界面中可能会包括多个控件,一个控件被触发之后,可能会得到新的界面,在新的界面中又可能会包括多个控件。

其中,控件标识用于唯一标识一控件,其包括但不限于控件名称、控件id号或控件位置信息等。控件的用户操作热度信息可在一定程度上表明用户对该控件的感兴趣程度。

在实际应用中,一个新应用在上线之前,该新应用的发行方会挑选多个具有代表性的测试用户进行试玩,这样根据多个测试用户对该新应用的操作数据,可统计得到该新应用中各控件对应的用户操作热度信息;一个新版本应用在上线之前,可根据该新版本应用对应的旧版本应用的用户操作数据,来统计该新版本应用中各控件对应的用户操作热度信息。通常,用户操作热度越高的控件,其应用在上线之后所承受的操作压力也是越大的,因此,在测试过程中需要进行优先进行测试。

需要说明的是,通常一个应用会存在多个界面,因此,可事先建立各个界面标识与各个界面对应的控件库及已完成测试控件队列的对应关系,后续根据界面标识以及对应关系来获取各个界面对应的控件库及已完成测试控件队列。

在上述步骤102中,当前界面的全部控件队列可事先通过代码扫描或根据多个用户的操作数据得到。需要是说明是,通过代码扫描可统计得到当前界面中所有控件;而根据多个用户的操作数据可统计得到当前界面中被用户操作过的控件,那些未被用户操作过的控件就无法统计上。考虑到那些未被用户操作过的控件在新应用或新版本应用上线后被使用概率较低,因此,可忽略。这样根据已完成测试控件队列以及当前界面的全部控件队列即可确定当前界面中是否存在未完成测试控件。

若存在则执行步骤103,即在当前界面的未测试控件中选取操作热度最高的控件作为目标控件。若存在多个并列操作热度最高的控件,可从中随机选取一个控件作为目标控件。

若不存在,则可从当前界面中随机选取一个控件进行测试或者从当前界面随机调整至另一界面进行控件测试。

在上述步骤104中,对目标控件进行测试即是终端生成点击事件、按键事件或滑动事件等用户事件,来模拟用户对应用中控件的点击操作、按键操作或活动操作等,终端基于生成的用户事件,来触发应用中相应的控件,从而通过模拟来测试应用中的控件,并基于测试控件后应用运行信息来判断应用运行状况。

由于用户操作热度高的控件在应用程序上线后被频繁使用的概率较大,因此在应用测试中最好能够将这些用户操作热度高的控件测试到。本发明实施例提供的技术方案中,按照用户操作热度由高到底的顺序来测试当前界面中的各控件,即优先对当前界面中重要控件进行测试,这样可有效降低重要控件被遗漏的概率,提高测试效率。

需要说明的是,由于在测试过程中,通常会随着所触发的控件不断跳转应用界面,某些界面很可能在测试结束之前出现次数小于其界面上控件的数量,若按照现有技术中随机或遍历测试方法进行测试,该界面上的某些重要控件很有可能未被测试上。而按照本发明实施例提供的技术方案进行测试,用户操作热度高的控件会优先进行测试,这样在测试结束时,可在一定程度上确保重要控件被测试到,提高测试效率;并且,结合用户操作习惯进行控件测试,使得测试更具针对性。

图2为本发明又一实施例提供的应用测试方法的流程示意图。该方法包括:

201、基于多个用户历史时段内针对当前界面的操作数据,确定当前界面的各控件的用户操作热度信息。

202、根据当前界面的各控件的用户操作热度信息,建立控件库。

203、获取当前界面的控件库及已完成测试控件队列,控件库中包括当前界面的控件标识及各控件标识对应的用户操作热度信息。

204、根据已完成测试控件队列,确定当前界面是否存在未完成测试控件。

205、若存在,则根据所述控件库中各所述控件标识对应的用户操作热度信息,在所述未完成测试控件中选取操作热度最高的控件作为目标控件。

206、对所述目标控件进行测试。

上述步骤203至步骤206可参见上述实施例中相应内容,在此不再赘述。

在上述步骤201中,历史时段可根据实际情况进行选择,本发明对此不作具体限定。例如:对于新应用而言,在上线之前根据多个测试用户的操作数据统计各控件的用户操作热度信息,由于多个测试用户的操作数据数量通常较少,因此,可将所有的操作数据作为统计依据,即将历史时段设为从多个测试用户的开始体验时间点到当前时刻之间的时间段;对于新版本应用而言,由于旧版本应用对应的操作数据较多,若均作为统计依据,则会增加统计难度和统计时间,因此,可将历史时段设为近一天、近一周或近一月。

在一种可实现的方案中,基于多个用户历史时段内针对所述当前界面的操作数据,确定所述当前界面的各控件的用户操作热度信息,包括:根据所述操作数据,统计得到包括所述各控件的操作次数和/或所述当前界面的热区分布信息的统计结果;根据所述统计结果,确定所述各控件的用户操作热度信息。

其中,热区指的是当前界面中用户操作密集的区域,也即是用户感兴趣的区域。控件的操作次数越高或控件位于热区内均可在一定程度上表明该控件在应用上线后被频繁使用的概率越大。

在具体实施时,根据所述统计结果,确定所述各控件的用户操作热度信息的步骤可采用如下方法中的一种来实现:

方法一、根据各控件的操作次数,来确定各控件的用户操作热度信息,操作次数越高,控件对应的用户操作热度就越高,例如:将所述各控件的操作次数作为所述各控件的热度值,所述用户操作热度信息包括所述热度值。

方法二、根据热区分布信息,来确定各控件的用户操作热度信息,位于热区内控件的用户操作热度大于位于热区外控件的用户操作热度。例如:可事先设定热区外热度值和热区内热度值,将热区外控件的热度值均设为热区外热度值,将热区内控件的热度值均设为热区内热度值,用户操作热度信息包括热度值。

方法三、结合各控件的操作次数和热区分布信息来确定各控件的用户操作热度信息。例如:根据所述热区分布信息,将所述当前界面中的控件划分为热区外控件和热区内控件;根据热区外系数以及各所述热区外控件的操作次数,计算各所述热区外控件的热度值;根据热区内系数以及各所述热区外控件的操作次数,计算各所述热区内控件的热度值;所述用户操作热度信息包括所述热度值。

根据所述热区分布信息,将所述当前界面中的控件划分为热区外控件和热区内控件的步骤,可采用如下方式实现:通过代码扫描或用户操作数据,获取当前界面中各控件对应的位置信息;根据热区分布信息,获取当前界面中各热区中心点的位置信息和各热区轮廓线信息;根据各控件对应的位置信息、各热区中心点的位置信息以及各热区轮廓线信息,即可将当前界面中的控件划分为热区外控件和热区内控件。通常,界面中的控件具有一定的面积大小,因此,控件对应的位置信息可理解为该控件中心点的位置信息。

热区内系数大于热区外系数,具体数值可根据实际情况进行设置,本发明对此不作具体限定。例如:热区内系数为2,热区外系数为1。

在一种可实现的方案中,热度值的计算方法可采用如下方法进行计算:各热区外控件的热度值等于各热区外控件的操作次数与热区外系数的乘积;各热度内控件的热度值等于各热区内控件的操作次数与热区内系数的乘积。

在实际应用中,一个控件很可能对应注册了多个手势,例如:控件a对应注册了点击、滑动以及长按这三个手势,即控件a支持点击、滑动以及长按这三个手势操作。因此,在控件测试时,需要采用控件注册的多个手势对该控件进行测试。可通过代码扫描或用户操作数据来确定当前界面各控件对应注册的全部手势,注:通过代码扫描可得到各控件对应注册的所有手势,而通过用户操作数据得到的是各控件被用户操作过的手势,各控件未被用户操作过的手势会被忽略,由于未被用户操作过的手势在后续应用上线后被使用到的概率较小,因此,可忽略。为了能够采用多个手势对控件进行全面测试,在对所述目标控件进行测试之前,如图3所示,上述方法还包括:

301、获取所述目标控件的手势库及已测手势队列,所述手势库中包括所述目标控件的手势标识及各所述手势标识对应的操作次数。

302、根据所述已测手势队列,确定所述目标控件的未测手势。

303、根据所述手势库中各所述手势标识对应的操作次数,从所述未测手势中选取操作次数最高的手势作为目标手势。

手势标识用于唯一标识控件注册的一手势,手势标识包括但不限于手势名称、手势id号等。目标控件的各手势标识对应的操作次数可根据多个用户历史时段内针对目标控件的操作手势数据统计得到。

已测手势队列中记录有该目标控件已测过的手势标识,因此,根据已测手势队列即可确定目标控件注册的多个手势中哪些手势未被测试。并从当前未测手势中选取操作次数最高的手势作为目标手势。若存在多个并列操作次数最高的手势,则从中随机选取一个手势作为目标手势。根据目标手势对应的手势信息生成相应的触发事件(即用户事件),以触发所述目标控件进行测试。例如:目标控件的目标手势为点击手势,则模拟点击操作来测试该目标控件。在目标控件的目标手势测试完成之后,更新已测手势队列,例如:在已测手势队列中加入目标手势对应的手势标识。

进一步的,上述方法还包括:当所述目标控件的已测手势队列中包括所述目标控件对应的所有手势时,在所述已完成测试控件队列中加入所述目标控件对应的控件标识。也即是,目标控件所注册的所有手势均测试后,则可表明该目标控件测试完成,因此,更新已完成测试控件队列。

图4为本发明一实施例提供的应用测试装置的结构框图。如图4所示,该装置包括:第一获取模块401、第一确定模块402、第一选取模块403以及测试模块404。其中,第一获取模块401,用于获取当前界面的控件库及已完成测试控件队列,所述控件库中包括所述当前界面的控件标识及各所述控件标识对应的用户操作热度信息;第一确定模块402,根据所述已完成测试控件队列,确定所述当前界面是否存在未完成测试控件;第一选取模块403,用于若存在,则根据所述控件库中各所述控件标识对应的用户操作热度信息,在所述未完成测试控件中选取操作热度最高的控件作为目标控件;测试模块404,用于对所述目标控件进行测试。

由于用户操作热度高的控件在应用程序上线后被频繁使用的概率较大,因此在应用测试中最好能够将这些用户操作热度高的控件测试到。本发明实施例提供的技术方案中,按照用户操作热度由高到底的顺序来测试当前界面中的各控件,即优先对当前界面中重要控件进行测试,这样可有效降低重要控件被遗漏的概率,提高测试效率。

可选地,如图5所示,该装置还包括:第二确定模块501和建立模块502。其中,第二确定模块501,用于基于多个用户历史时段内针对所述当前界面的操作数据,确定所述当前界面的各控件的用户操作热度信息;建立模块502,用于根据所述当前界面的各控件的用户操作热度信息,建立所述控件库。

可选地,所述第二确定模块501包括:统计单元601和确定单元602。其中,统计单元601,用于根据所述操作数据,统计得到包括所述各控件的操作次数和/或所述当前界面的热区分布信息的统计结果;确定单元602,用于根据所述统计结果,确定所述各控件的用户操作热度信息。

可选地,所述统计结果包括所述各控件的操作次数;相应的,所述确定单元602具体用于将所述各控件的操作次数作为所述各控件的热度值,所述用户操作热度信息包括所述热度值。

可选地,所述统计结果包括所述各控件的操作次数和所述当前界面的热区分布信息;相应的,所述确定单元602包括:划分子单元701和计算子单元702。其中,划分子单元701,用于根据所述热区分布信息,将所述当前界面中的控件划分为热区外控件和热区内控件;计算子单元702,用于根据热区外系数以及各所述热区外控件的操作次数,计算各所述热区外控件的热度值;还用于根据热区内系数以及各所述热区外控件的操作次数,计算各所述热区内控件的热度值;所述用户操作热度信息包括所述热度值。

如图5所示,上述装置还包括:第二获取模块801、第三确定模块802及第二选取模块803。其中,第二获取模块801,用于获取所述目标控件的手势库及已测手势队列,所述手势库中包括所述目标控件的手势标识及各所述手势标识对应的操作次数;第三确定模块802,用于根据所述已测手势队列,确定所述目标控件的未测手势;第二选取模块803,用于根据所述手势库中各所述手势标识对应的操作次数,从所述未测手势中选取操作次数最高的手势作为目标手势;所述测试模块404具体用于根据所述目标手势对应的手势信息生成相应的触发事件,以触发所述目标控件进行测试。

如图5所示,该装置还包括:更新模块901,更新模块901用于当所述目标控件的已测手势队列中包括所述目标控件对应的所有手势时,在所述已完成测试控件队列中加入所述目标控件对应的控件标识。

需要说明的是,本实施例提供的应用测试装置可实现上述各应用测试方法实施例提供的技术方案,具体的实现原理可参见上述各实施例中的相应内容,此处不再赘述。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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