CN107357725B - 应用测试方法及装置 - Google Patents
应用测试方法及装置 Download PDFInfo
- Publication number
- CN107357725B CN107357725B CN201710530975.9A CN201710530975A CN107357725B CN 107357725 B CN107357725 B CN 107357725B CN 201710530975 A CN201710530975 A CN 201710530975A CN 107357725 B CN107357725 B CN 107357725B
- Authority
- CN
- China
- Prior art keywords
- interface
- control
- test
- contact surface
- tested
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种应用测试方法及装置,属于终端技术领域。该方法包括:确定应用的当前界面中的控件;基于应用在测试过程中所记录的界面特征值与界面中控件标识之间的对应关系,如果当前界面中不存在未测试控件,从至少一个第一界面中确定第二界面,第一界面是指应用中存在未测试控件的界面,界面特征值根据界面中各个控件的控件标识得到;触发当前界面中与第二界面对应的控件,跳转至第二界面;对第二界面中的未测试控件进行测试。本发明可以保证应用测试过程中所要测试的控件总是未测试控件,从而能够遍历到应用中的所有控件,避免控件被遗漏得同时,也减少了重复对同一控件测试多次的情况,提高了测试效率。
Description
技术领域
本发明涉及终端技术领域,特别涉及一种应用测试方法及装置。
背景技术
随着终端技术的发展,终端的内存大大提升,所集成的应用也越来越多。而为了保证应用在实际使用时能够正常运行,往往会在应用上线前对应用进行测试。
现有技术在测试应用时,终端可以生成点击事件、按键事件或手势事件等用户事件,来模拟用户对应用中控件的点击操作、按键操作或手势操作等,终端基于接收到的用户事件,可以随机地触发应用中的控件,从而通过模拟过程测试应用中的控件,并基于测试控件后应用的运行信息来测试应用的运行状况。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
一个应用中通常包括大量控件,采用随机测试控件的测试方式很可能对同一个控件重复操作多次,且一些控件可能会被遗漏,导致测试效率低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种应用测试方法及装置。所述技术方案如下:
第一方面,提供了一种应用测试方法,所述方法包括:
确定应用的当前界面中的控件;
基于所述应用在测试过程中所记录的界面特征值与界面中控件标识之间的对应关系,如果所述当前界面中不存在未测试控件,从至少一个第一界面中确定第二界面,所述第一界面是指所述应用中存在未测试控件的界面,所述界面特征值根据所述界面中各个控件的控件标识得到;
触发所述当前界面中与所述第二界面对应的控件,跳转至所述第二界面;
对所述第二界面中的未测试控件进行测试。
第二方面,提供了一种应用测试装置,所述装置包括:
第一确定模块,用于确定应用的当前界面中的控件;
第二确定模块,用于基于所述应用在测试过程中所记录的界面特征值与界面中控件标识之间的对应关系,如果所述当前界面中不存在未测试控件,从至少一个第一界面中确定第二界面,所述第一界面是指所述应用中存在未测试控件的界面,所述界面特征值根据所述界面中各个控件的控件标识得到;
跳转模块,用于触发所述当前界面中与所述第二界面对应的控件,跳转至所述第二界面;
测试模块,用于对所述第二界面中的未测试控件进行测试。
第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如上述第一方面中的任一种应用测试方法。
第四方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上述第一方面中的任一种应用测试方法。
本发明实施例通过界面特征值来标识界面,可以基于应用测试过程中所记录的界面特征值与界面中控件标识之间的对应关系,确定当前界面中是否存在未测试控件,且在不存在未测试控件的情况下,能够跳转到存在未测试控件的界面中继续测试过程,使得应用测试过程中所要测试的控件总是未测试控件,从而能够遍历到应用中的所有控件,避免控件被遗漏得同时,也减少了重复对同一控件测试多次的情况,提高了测试效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种应用测试的实施环境示意图;
图2是本发明实施例提供的一种应用测试方法的流程图;
图3是本发明实施例提供的一种界面特征值示意图;
图4是本发明实施例提供的一种界面跳转记录的示意图;
图5A是本发明实施例提供的一种应用测试流程图;
图5B是本发明实施例提供的一种应用测试结果图;
图6是本发明实施例提供的一种应用测试装置的框图;
图7是本发明实施例提供的一种应用测试装置的框图;
图8是本发明实施例提供的一种终端结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种应用测试的实施环境示意图,参见图1,该实施环境中可以包括:
至少一个服务器101和至少一个终端102。其中,服务器101用于为终端102提供服务,如社交服务、游戏服务或视频服务等,具体地,服务器101可以通过终端102所安装的应用向终端提供服务。该终端102用于运行服务器101所提供的应用,并对该应用进行测试。在实际应用场景中,本发明实施例对应用测试的时机不做限定。例如,终端102既可以是测试人员持有的测试终端,则该测试终端可以在应用上线前对应用进行测;该终端102也可以是用户持有的终端,则该终端可以根据已有的配置定时对应用进行测试,或者根据服务器101实时下发地测试指令对应用进行测试。当终端102进行应用测试时,可以将应用测试过程中得到的应用运行信息上报至服务器101,使得服务器101可以依据应用运行信息分析应用的运行状况,制定应用的运营策略、改善应用的各种问题等等。
另外,该服务器101还可以配置至少一个数据库,如,测试数据库、用户数据库等等。该测试数据库用于存储应用测试过程中的应用运行信息,该用户数据库用于存储该服务器101所服务的用户的用户名和密码等个人数据。
图2是本发明实施例提供的一种应用测试方法的流程图,参见图2,该方法可以应用于终端,具体包括:
201、确定应用的当前界面中的控件。
其中,该应用可以是指终端所安装的任一应用,例如,游戏应用、社交应用或视频应用等。控件是指构成应用中界面的基本元素,用于用户与应用进行交互,不限于按钮控件、文本框控件、通知栏控件等等。当终端接收到对界面上某一控件的触发事件时,可能跳转至另一界面,例如,该控件为按钮控件时,当终端接收到对按钮控件的点击事件时,可以跳转至按钮控件对应的小窗口界面;该控件为通知栏控件时,当终端接收到对通知栏控件的滑动事件时,可以显示该通知栏控件对应的通知栏界面。
该步骤中,终端可以获取当前界面的应用代码或网页代码,对于当前界面的网页代码,可以基于已配置的控件关键字在网页代码中进行查询,获取到控件关键字位置上的控件标识。对于当前界面的应用代码,终端可以根据已配置的控件输出函数,直接调用该控件输出函数,并根据控件输出函数的输出值获取到控件标识。其中,该控件标识用于唯一标识一个控件,不限于采用控件名称、控件路径或根据控件信息得到的控件哈希值等任一表示形式。在实际的应用场景中,考虑到某些控件可能被其他控件遮挡或者在当前屏幕范围内未显示,而用户可触发的控件一般是在当前界面中可见的控件,因此,为使测试过程更逼真地模拟用户触发控件的场景,终端也可以确定当前界面中的所有控件,基于每个控件的控件位置,筛选掉在当前屏幕中的不可见控件,并将当前界面中的剩余控件确定为当前界面中的控件,通过筛选掉当前屏幕中的不可见控件,可以减少应用测试过程中需要测试的控件数量,进一步提高了测试效率。
当然,为了简化应用测试过程中对同一类控件的重复测试,从而提高测试速度,终端可以筛选掉当前界面中任一控件的相似控件;将当前界面中的剩余控件确定为当前界面中的控件。其中,该控件的相似控件是指与该控件具有相似功能的控件,本发明实施例对相似控件的确定方式不做具体限定。一般地,一个控件与其相似控件之间具备相似的控件标识,因此,终端可以基于各个控件的控件标识,确定当前界面中各个控件与该控件之间的控件标识相似度;将控件标识相似度大于预设阈值的控件确定为该控件的相似控件。
202、获取应用在测试过程中所记录的界面特征值与界面中控件标识之间的对应关系,界面特征值根据该界面中各个控件的控件标识得到。
在实际的应用场景中,测试过程通常会随着所触发的控件不断跳转界面,为了减少对同一个控件重复测试的次数,从而高效地进行测试过程,可以随着测试过程基于界面的界面特征值与界面中控件标识将界面与其中的未测试控件或被测试控件关联起来,作为后续测试过程的参考数据。其中,该界面特征值与界面中控件标识之间的对应关系的形式不限于:界面的界面特征值对应该界面中未测试控件的控件标识,或者未测试控件的控件标识对应该未测试控件所在界面的界面特征值。其中,界面的界面特征值用于唯一标识一个界面,具体地,该界面特征值可以为根据界面中各个控件的控件标识得到的哈希值,该界面的哈希值如-768500201。例如,图3是本发明实施例提供的一种界面特征值示意图,如图3中(a)图所示为当前界面;如图3中(b)图所示,TouchElem表示控件,当前界面中共有四个控件,分别为图3中(a)图中的关闭按钮、信息1选项、信息2选项和信息3选项;scene的值表示控件在应用中的场景名称,element的值表示控件的控件路径,则控件标识可以由控件的场景名称和控件路径构成。
该步骤中,终端可以获取当前界面的界面特征值,根据当前界面的界面特征值,获取到当前界面的界面特征值与当前界面中控件标识之间的对应关系。例如,获取各个控件的控件标识,根据已配置的哈希计算公式,得到各个控件的控件标识对应的哈希值作为该当前界面的界面特征值。
以该测试过程运用python编程语言为例,终端可以根据python编程语言中特定的数据形式:“元祖(场景名称,控件路径)”,基于一个控件的元祖中各个元素得到该控件的哈希值,在计算哈希值时,终端可以采用python编程语言自配置的哈希函数。其中,场景名称和控件路径均为字符串。进而,界面特征值可以也可以基于该哈希函数,并将该界面中各个控件的哈希值作为输入参数计算得到,例如,基于“元祖(界面中各个控件的哈希值)”进行哈希计算,得到该界面的界面特征值。
203、基于应用在测试过程中所记录的界面特征值与界面中控件标识之间的对应关系,判断当前界面中是否存在未测试控件,如果是,对当前界面中的未测试控件进行测试,如果否,执行步骤204。
其中,基于不同形式的界面特征值与界面中控件标识之间的对应关系,终端可以采取不同的判断方式来进行上述未测试控件的判断。本发明实施例采用以下两种判断方式进行说明:
判断方式1、界面特征值与界面中控件标识之间的对应关系的形式为界面的界面特征值对应该界面中未测试控件的控件标识,则终端可以获取该当前界面的界面特征值对应的未测试控件的控件标识,如果获取成功,则确定当前界面中存在未测试控件,可以选择其中的任一未测试控件进行测试,如果获取失败,则确定当前界面中不存在未测试控件,执行步骤204。当然,由于每个界面中通常存在多个控件,因此该对应关系实际可能是一个界面的界面标识对应多个控件的控件标识。
该判断方式1基于当前界面的界面特征值,可以直接查询当前界面中是否存在未测试控件,因此能够进一步提高测试效率。
判断方式2、界面特征值与界面中控件标识之间的对应关系的形式为未测试控件的控件标识对应该未测试控件所在界面的界面特征值,则终端基于当前界面中所确定的每个控件的控件标识,在该对应关系中查询是否存在该控件的控件标识所对应的当前界面的界面特征值,如果是,则确定当前界面中存在未测试控件,如果否,则确定当前界面中不存在未测试控件,执行步骤204。
该判断方式2基于每一条未测试控件的控件标识所对应的该未测试控件所在界面的界面特征值,可以判断出当前界面中每个控件的测试情况,进而确定当前界面的测试情况,进一步能够全面地表达对当前界面的测试情况。
事实上,除了上述举例的两种界面特征值与界面中控件标识之间的对应关系的形式,还可以有其他形式,例如,界面特征值与界面中控件标识之间的对应关系的形式为界面的界面特征值对应该界面中被测试控件的控件标识,则终端基于该种形式的界面特征值与界面中控件标识之间的对应关系,可以根据已确定的当前界面中的控件,如果被测试控件的控件数量与当前界面中的控件数量相同,则确定当前界面中不存在未测试控件,执行步骤204,如果被测试控件的控件数量小于当前界面中的控件数量,则终端可以将当前界面中控件标识与被测试控件的控件标识不同的控件确定为未测试控件,并对该未测试控件进行测试。该判断方式可以直接根据被测试控件的控件数量进行判断,不仅方法简便而且使得判断效率更高。
本发明实施例中,随着测试过程的进行,终端每次对未测试控件进行测试后,均可以更新界面特征值与界面中控件标识之间的对应关系。以界面特征值与界面中控件标识之间的对应关系的形式为界面的界面特征值对应该界面中未测试控件的控件标识为例,其具体更新方式可以参见以下删除过程或添加过程:
删除过程:当对未测试控件进行测试后,终端在界面特征值与界面中控件标识之间的对应关系中删除被测试控件的记录。
该删除过程中,当对未测试控件进行测试后,终端可以根据被测试控件所在界面的界面特征值,基于被测试控件所在界面的界面特征值进行查询,将查询到的该被测试控件的控件标识删除。当然,如果界面特征值与界面中控件标识之间的对应关系的具体形式为界面中未测试控件的控件标识对应该未测试控件所在界面的界面特征值,则终端可以根据被测试控件的控件标识,在界面特征值与界面中控件标识之间的对应关系中查询到该被测试控件,并删除该被测试控件与其所在界面的界面特征值的一条记录。
该删除过程通过对未测试控件进行测试后,删除该被测试控件的记录,可以保证在测试过程中再次跳转至该被测试控件所在界面时,确定该被测试控件已被测试,从而避免对同该被测试控件重复测试,提高了测试效率。
添加过程:当对任一未测试控件进行测试后,如果跳转至未测试界面,终端在界面特征值与界面中控件标识之间的对应关系中添加未测试界面中的各个未测试控件的记录。
该添加过程中,当对任一未测试控件进行测试后,如果终端跳转至另一界面,则终端可以获取跳转后界面的界面特征值,并将跳转后界面的界面特征值在界面特征值与界面中控件标识之间的对应关系进行查询,如果查询到该跳转后界面,则终端确定跳转至被测试界面(是指存在被测试控件的界面);如果未查询到该跳转后界面,则终端确定跳转至未测试界面,并确定该未测试界面中的控件,在界面特征值与界面中控件标识之间的对应关系中添加该未测试控件与其中的各个未测试控件的对应关系,作为记录。
该添加过程通过在跳转至未测试界面时添加各个未测试控件的记录,可以保证在测试过程中再次跳转至该被测试界面时,能够根据该被测试界面已有的记录进行测试,从而避免对同一控件重复测试多次,提高了测试效率。
需要说明的是,如果当前界面中存在未测试控件,终端也可以采用其他测试方式进行测试,也能够提高测试效率。例如,终端基于界面特征值与界面中控件标识之间的对应关系,如果当前界面中的未测试控件数量小于任一第三界面中的未测试控件数量,则跳转至该第三界面,并对该第三界面中的未测试控件进行测试。该举例中,终端可以分析每个界面中未测试控件数量,并跳转至未测试控件数量最多的界面进行测试,从而能够高效地遍历到应用中的各个界面。
204、如果当前界面中不存在未测试控件,从至少一个第一界面中确定第二界面,第一界面是指应用中存在未测试控件的界面。
该步骤中,如果当前界面中不存在未测试控件,为了减少对同一被测试控件重复测试的次数,提高测试效率,终端可以基于界面特征值与界面中控件标识之间的对应关系,确定未测试控件的控件标识,并将该未测试控件所在界面确定为第一界面,进而,终端可以从确定的至少一个第一界面中随机确定一个第二界面。当然,如果未能确定任一个第一界面,说明应用中的控件均被测试,则终端可以确定测试完成。
需要说明的是,该步骤是本发明实施例的可选步骤。事实上,除了上述随机确定的方式以外,终端还可以通过其他确定方式确定第二界面,例如,终端基于界面特征值与当前界面中控件标识之间的对应关系,如果当前界面中不存在未测试控件,确定每个第一界面中的未测试控件的数量;将存在未测试控件数量最多的第一界面确定为第二界面。
该确定方式中,为使测试过程有序进行,高效地遍历到应用中的各个界面,进一步提高测试效率,如果当前界面中不存在未测试控件,终端可以基于每个第一界面的界面特征值,在界面特征值与界面中控件标识之间的对应关系中查询该第一界面中的未测试控件,确定该第一界面中未测试控件的数量,并对所确定的各个第一界面中未测试控件的数量进行排序,将存在未测试控件数量最多的第一界面确定为第二界面。
205、触发当前界面中与第二界面对应的控件,跳转至第二界面。
该步骤中,终端可以根据应用的界面跳转记录,确定当前界面中与第二界面对应的控件,并触发该控件,跳转至第二界面。其中,应用的界面跳转记录可以根据该应用的测试过程得到。该界面跳转记录是指任一界面基于该界面中控件跳转至另一界面的记录,该界面跳转记录的生成过程可以具体为:当对未测试控件进行测试后,如果终端跳转至任一界面,则添加被测试控件所在界面与界面基于该被测试控件的界面跳转记录。
该生成过程中,以界面跳转记录的形式为界面的界面特征值、控件的控件标识与另一界面的界面特征值之间的对应关系为例,如果终端跳转至任一界面,可以获取该界面的界面特征值,并基于被测试控件的控件标识以及该被测试控件所在界面的界面特征值,添加一条被测试控件所在界面的界面特征值、被测试控件的控件标识以及该界面的界面特征值之间的对应关系。
在实际的应用场景中,终端可以将界面跳转记录的总和作为一个界面拓扑关系,则该界面拓扑关系可以表达该应用中各个界面之间的跳转关系。参见图4,本发明实施例提供了一种界面跳转记录的示意图。如图4中(a)图所示为跳转前界面,如图4中(b)图所示为跳转后界面,基于图(4)中(a)图中的关闭按钮,终端进行跳转,如图4中(c)图所示,Edge表示界面跳转记录,第一个Viewplayer表示跳转前界面,其括号中的hash表示该跳转前界面的界面哈希值,其括号中的elem num的值表示跳转前界面中的控件数量;第二个Viewplayer表示跳转后界面,其括号中的hash表示该跳转后界面的界面哈希值,其括号中的elem num的值表示跳转后界面中的控件数量;entry表示跳转前界面跳转至该跳转后界面经过的路径;TouchElem表示跳转前界面跳转至该跳转后界面的所触发的控件,其括号中的element的值表示该控件的控件路径,其括号中的scene的值表示控件在应用中的场景名称。
具体地,在确定当前界面中与第二界面对应的控件时,终端可以根据当前界面的界面特征值,查询以该界面为跳转前界面的界面跳转记录,并确定查询到的界面跳转记录中跳转后界面的界面特征值是否与第二界面的界面特征值相同,如果是,则触发该条界面跳转记录中的控件标识对应的控件,如果否,则根据查询到的任一界面跳转记录中的跳转后界面的界面特征值,继续查询以该跳转后界面作为跳转前界面的界面跳转记录,并确定再次查询到的界面跳转记录中跳转后界面的界面特征值是否与第二界面的界面特征值相同,直至基于某次查询过程确定界面跳转记录中跳转后界面的界面特征值与第二界面的界面特征值相同为止,以按照查询次序,将当前界面跳转至该第二界面需要触发的控件进行记录,得到一条跳转路径,进而,终端可以依次触发该跳转路径中的控件,跳转至该第二界面。
事实上,终端可能得到一条或多条跳转路径,为了提高测试效率,终端基于应用的界面跳转记录,可以确定当前界面跳转至第二界面的至少一条跳转路径,一条跳转路径由当前界面跳转至第二界面需要触发的至少一个控件构成;从至少一条跳转路径中确定目标跳转路径,目标跳转路径是指需要触发的控件数量最少的一条跳转路径,目标跳转路径中包括当前界面中与第二界面对应的控件;触发目标跳转路径中的控件,跳转至第二界面。
其中,假设一条跳转路径是由界面1跳转至界面3,则该条跳转路径的形式可以为界面1特征值、界面1中控件的控件标识、界面2中控件的控件标识以及界面3特征值之间的对应关系。该跳转过程中,终端可以确定每条跳转路径中需要触发的控件数量,并将至少一条跳转路径按照需要触发的控件数量进行排序,将需要触发的控件数量最少的一条跳转路径作为目标跳转路径,并依次触发该目标跳转路径中的控件,跳转至第二界面。
根据记录下来的界面拓扑关系,终端将当前界面跳转至第二界面的最短路径确定为目标跳转路径,并基于该目标跳转路径前往该第二界面,而不会把时间浪费在一个一个控件的测试尝试上,进而提高了测试效率。
206、对第二界面中的未测试控件进行测试。
该步骤中,在跳转至第二界面之后,终端可以根据第二界面的控件测试记录,选择该第二界面中一个未测试控件进行测试。当然,在对该未测试控件进行测试后,终端也可以更新界面特征值与界面中控件标识之间的对应关系,或者,如果基于该被测试控件跳转至另一界面,则终端还可以更新界面跳转记录。而且,在进行对未测试控件的测试后,终端可以继续基于步骤201-206进行应用测试。
在实际的应用场景中,终端还可以实时地记录应用的运行信息,该应用的运行信息不限于应用的响应时延、应用是否崩溃或应用的网络状态等应用信息,从而为分析应用的运行状况做出数据基础。
基于上述应用测试过程,参见图5A,本发明实施例提供了一种应用测试流程图。该流程图中,终端判断应用是否正在运行,如果否,则运行该应用,如果是,则判断应用是否处于前台运行;如果该应用不处于前台运行,则终端可以将该应用切换至前台运行,如对当前前台运行的应用执行返回操作等,如果该应用处于前台运行,终端可以确定应用的当前界面的控件,并筛选掉任一控件的相似控件,基于当前界面中筛选后的控件,获取当前界面的界面特征值,如果是通过触发上一个界面中的控件跳转至当前界面,还可以更新界面跳转关系。进而,终端可以确定当前界面中是否存在未测试控件,如果是,可以对该未测试控件进行测试,并在测试后更新控件测试记录;如果否,可以根据界面特征值与界面中控件标识之间的对应关系确定应用中存在未测试控件最多的界面作为第二界面,并根据界面跳转关系跳转至该界面。
本发明实施例通过界面特征值来标识界面,可以基于应用测试过程中所记录的界面特征值与界面中控件标识之间的对应关系,确定当前界面中是否存在未测试控件,且在不存在未测试控件的情况下,能够跳转到存在未测试控件的界面中继续测试过程,使得应用测试过程中所要测试的控件总是未测试控件,从而能够遍历到应用中的所有控件,避免控件被遗漏得同时,也减少了重复对同一控件测试多次的情况,提高了测试效率。而且,相比需要投入大量人力成本编写回归测试代码的现有技术,本发明实施例通过在测试过程中获取控件测试记录,并根据控件测试记录进行测试,也节省了人力成本。
基于本发明实施例的应用测试过程,发明人分别应用本发明实施例的应用测试方法和现有技术中基于Monkey策略的应用测试方法,对应用1和应用2进行了测试,两个测试过程所设置的控件测试次数为300,具体应用测试结果图如图5所示:如图5B中(a)图所示为基于本发明实施例对应用1的测试结果图,如图5B中(b)图所示为基于Monkey(猴子)策略的应用测试方法对应用1的测试结果图,如图5B中(c)图所示为基于本发明实施例对应用2的测试结果图,如图5B中(d)图所示为基于Monkey策略的应用测试方法对应用2的测试结果图。通过对两个应用的测试结果图可以看出,本发明实施例对应的测试曲线始终呈稳步提升趋势,而Monkey策略对应的测试曲线在一段后续的测试过程中趋于不变,更为直接地,通过测试结果图中的坐标值可以看出,在相同的300次控件测试过程内,无论是测试控件数量还是访问界面数量,本发明实施例的测试数值均大大高于Monkey策略的测试数值,因此本发明实施的测试过程更为高效。
除了如图5B所示的测试结果图,还提供了上述两种应用测试方法对应用1的测试结果表1和对应用2的测试结果表2:
表1
表2
通过上述测试结果可以看出,在同样的300次控件测试过程中,本发明实施例的测试控件数量分别增加了25%和82%,访问界面数量分别增加了39%和45%,提升效果明显。
图6是本发明实施例提供的一种应用测试装置的框图。参见图6,该装置具体包括:
第一确定模块601,用于确定应用的当前界面中的控件;
第二确定模块602,用于基于应用在测试过程中所记录的界面特征值与界面中控件标识之间的对应关系,如果当前界面中不存在未测试控件,从至少一个第一界面中确定第二界面,第一界面是指应用中存在未测试控件的界面,界面特征值根据界面中各个控件的控件标识得到;
跳转模块603,用于触发当前界面中与第二界面对应的控件,跳转至第二界面;
测试模块604,用于对第二界面中的未测试控件进行测试。
本发明实施例通过界面特征值来标识界面,可以基于应用测试过程中所记录的界面特征值与界面中控件标识之间的对应关系,确定当前界面中是否存在未测试控件,且在不存在未测试控件的情况下,能够跳转到存在未测试控件的界面中继续测试过程,使得应用测试过程中所要测试的控件总是未测试控件,从而能够遍历到应用中的所有控件,避免控件被遗漏得同时,也减少了重复对同一控件测试多次的情况,提高了测试效率。
在一种可能实现方式中,第二确定模块602用于:
基于界面特征值与界面中控件标识之间的对应关系,如果当前界面中不存在未测试控件,确定每个第一界面中的未测试控件的数量;
将存在未测试控件数量最多的第一界面确定为第二界面。
在一种可能实现方式中,跳转模块603用于:
基于应用的界面跳转记录,确定当前界面跳转至第二界面的至少一条跳转路径,一条跳转路径由当前界面跳转至第二界面需要触发的至少一个控件构成,界面跳转记录根据应用的测试过程得到;
从至少一条跳转路径中确定目标跳转路径,目标跳转路径是指需要触发的控件数量最少的一条跳转路径,目标跳转路径中包括当前界面中与第二界面对应的控件;
触发目标跳转路径中的控件,跳转至第二界面。
在一种可能实现方式中,第一确定模块601用于:
筛选掉当前界面中任一控件的相似控件;
将当前界面中的剩余控件确定为当前界面中的控件。
在一种可能实现方式中,基于图6的装置组成,参见图7,该装置还包括:
添加模块605,用于当对任一未测试控件进行测试后,如果跳转至未测试界面,在界面特征值与界面中控件标识之间的对应关系中添加未测试界面中的各个未测试控件的记录;和/或,
删除模块606,用于当对未测试控件进行测试后,在界面特征值与界面中控件标识之间的对应关系中删除被测试控件的记录;和/或,
添加模块605,用于当对未测试控件进行测试后,如果跳转至任一界面,添加被测试控件所在界面与界面基于被测试控件的界面跳转记录。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的应用测试装置在测试应用时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用测试装置与应用测试方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图8是本发明实施例提供的一种终端结构示意图,参见图8,该终端800可以用于执行上述各个实施例中的应用测试方法,该终端800包括:
终端800可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(Wireless Fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图8中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯***)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端800的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端800的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图8中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
终端800还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端800移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端800还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端800之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端800的通信。
WiFi属于短距离无线传输技术,终端800通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图8示出了WiFi模块170,但是可以理解的是,其并不属于终端800的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端800的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端800的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端800还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理***与处理器180逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端800还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。所述一个或者一个以上程序包含用于执行以下操作的指令:确定应用的当前界面中的控件;获取当前界面的控件测试记录,当前界面的控件测试记录根据当前界面的测试过程得到;基于当前界面的控件测试记录,对应用中的未测试控件进行测试。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中的应用测试方法。例如,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的可选实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种应用测试方法,其特征在于,所述方法包括:
随着测试过程基于界面的界面特征值与界面中控件标识将界面与其中的未测试控件或被测试控件关联起来;该界面特征值与界面中控件标识之间的对应关系的形式包括界面的界面特征值对应该界面中未测试控件的控件标识;
确定应用的当前界面中的控件;
基于所述应用在测试过程中所记录的界面特征值与界面中控件标识之间的对应关系,如果所述当前界面中不存在未测试控件,从至少一个第一界面中确定第二界面,所述第一界面是指所述应用中存在未测试控件的界面,所述界面特征值根据所述界面中各个控件的控件标识得到;
触发所述当前界面中与所述第二界面对应的控件,跳转至所述第二界面;
对所述第二界面中的未测试控件进行测试。
2.根据权利要求1所述的方法,其特征在于,所述基于所述应用在测试过程中所记录的界面特征值与界面中控件标识之间的对应关系,如果所述当前界面中不存在未测试控件,从至少一个第一界面中确定第二界面,包括:
基于所述界面特征值与界面中控件标识之间的对应关系,如果所述当前界面中不存在未测试控件,确定每个第一界面中的未测试控件的数量;
将存在未测试控件数量最多的第一界面确定为所述第二界面。
3.根据权利要求1所述的方法,其特征在于,所述触发所述当前界面中与所述第二界面对应的控件,跳转至所述第二界面,包括:
基于所述应用的界面跳转记录,确定所述当前界面跳转至所述第二界面的至少一条跳转路径,一条跳转路径由所述当前界面跳转至所述第二界面需要触发的至少一个控件构成,所述界面跳转记录根据所述应用的测试过程得到;
从所述至少一条跳转路径中确定目标跳转路径,所述目标跳转路径是指需要触发的控件数量最少的一条跳转路径,所述目标跳转路径中包括所述当前界面中与所述第二界面对应的控件;
触发所述目标跳转路径中的控件,跳转至所述第二界面。
4.根据权利要求1所述的方法,其特征在于,所述确定应用的当前界面中的控件,包括:
筛选掉所述当前界面中任一控件的相似控件;
将所述当前界面中的剩余控件确定为所述当前界面中的控件。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
当对任一未测试控件进行测试后,如果跳转至未测试界面,在所述界面特征值与界面中控件标识之间的对应关系中添加所述未测试界面中的各个未测试控件的记录;和/或,
当对所述未测试控件进行测试后,在所述界面特征值与界面中控件标识之间的对应关系中删除被测试控件的记录;和/或,
当对所述未测试控件进行测试后,如果跳转至任一界面,添加被测试控件所在界面与所述界面基于所述被测试控件的界面跳转记录。
6.一种应用测试装置,其特征在于,所述装置用于随着测试过程基于界面的界面特征值与界面中控件标识将界面与其中的未测试控件或被测试控件关联起来;该界面特征值与界面中控件标识之间的对应关系的形式包括界面的界面特征值对应该界面中未测试控件的控件标识;
所述装置包括:
第一确定模块,用于确定应用的当前界面中的控件;
第二确定模块,用于基于所述应用在测试过程中所记录的界面特征值与界面中控件标识之间的对应关系,如果所述当前界面中不存在未测试控件,从至少一个第一界面中确定第二界面,所述第一界面是指所述应用中存在未测试控件的界面,所述界面特征值根据所述界面中各个控件的控件标识得到;
跳转模块,用于触发所述当前界面中与所述第二界面对应的控件,跳转至所述第二界面;
测试模块,用于对所述第二界面中的未测试控件进行测试。
7.根据权利要求6所述的装置,其特征在于,所述第二确定模块用于:
基于所述界面特征值与界面中控件标识之间的对应关系,如果所述当前界面中不存在未测试控件,确定每个第一界面中的未测试控件的数量;
将存在未测试控件数量最多的第一界面确定为所述第二界面。
8.根据权利要求6所述的装置,其特征在于,所述跳转模块用于:
基于所述应用的界面跳转记录,确定所述当前界面跳转至所述第二界面的至少一条跳转路径,一条跳转路径由所述当前界面跳转至所述第二界面需要触发的至少一个控件构成,所述界面跳转记录根据所述应用的测试过程得到;
从所述至少一条跳转路径中确定目标跳转路径,所述目标跳转路径是指需要触发的控件数量最少的一条跳转路径,所述目标跳转路径中包括所述当前界面中与所述第二界面对应的控件;
触发所述目标跳转路径中的控件,跳转至所述第二界面。
9.根据权利要求6所述的装置,其特征在于,所述第一确定模块用于:
筛选掉所述当前界面中任一控件的相似控件;
将所述当前界面中的剩余控件确定为所述当前界面中的控件。
10.根据权利要求6-9中任一项所述的装置,其特征在于,所述装置还包括:
添加模块,用于当对任一未测试控件进行测试后,如果跳转至未测试界面,在所述界面特征值与界面中控件标识之间的对应关系中添加所述未测试界面中的各个未测试控件的记录;和/或,
删除模块,用于当对所述未测试控件进行测试后,在所述界面特征值与界面中控件标识之间的对应关系中删除被测试控件的记录;和/或,
所述添加模块,用于当对所述未测试控件进行测试后,如果跳转至任一界面,添加被测试控件所在界面与所述界面基于所述被测试控件的界面跳转记录。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求5中任一项所述的方法。
12.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710530975.9A CN107357725B (zh) | 2017-06-29 | 2017-06-29 | 应用测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710530975.9A CN107357725B (zh) | 2017-06-29 | 2017-06-29 | 应用测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107357725A CN107357725A (zh) | 2017-11-17 |
CN107357725B true CN107357725B (zh) | 2018-09-04 |
Family
ID=60291649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710530975.9A Active CN107357725B (zh) | 2017-06-29 | 2017-06-29 | 应用测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107357725B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108038059A (zh) * | 2017-12-22 | 2018-05-15 | 广州酷狗计算机科技有限公司 | 界面遍历方法及装置 |
CN108399124B (zh) * | 2018-02-07 | 2021-04-13 | 深圳壹账通智能科技有限公司 | 应用测试方法、装置、计算机设备和存储介质 |
CN110232019A (zh) * | 2019-05-20 | 2019-09-13 | 平安普惠企业管理有限公司 | 页面测试方法及相关产品 |
CN110580221A (zh) * | 2019-08-21 | 2019-12-17 | 东软集团股份有限公司 | 控件测试方法、装置、存储介质及电子设备 |
CN111817916B (zh) * | 2020-07-02 | 2022-06-03 | 浙江同花顺智能科技有限公司 | 基于移动终端集群的测试方法、装置、设备和存储介质 |
CN111694753B (zh) * | 2020-07-30 | 2023-04-11 | 北京字节跳动网络技术有限公司 | 一种应用程序测试方法、装置及计算机存储介质 |
CN111694755B (zh) * | 2020-07-31 | 2023-07-18 | 抖音视界有限公司 | 应用程序测试方法、装置、电子设备及介质 |
CN112784194B (zh) * | 2021-01-28 | 2022-06-21 | 济南大学 | 一种Android应用页面自动化遍历方法及*** |
CN113032268B (zh) * | 2021-03-30 | 2022-02-22 | 深圳市腾讯信息技术有限公司 | 软件测试方法、装置及存储介质 |
CN114968687A (zh) * | 2022-06-09 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 遍历测试方法、装置、电子设备、程序产品以及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744056A (zh) * | 2004-09-04 | 2006-03-08 | 华为技术有限公司 | 一种应用程序的自动测试方法 |
CN104915290A (zh) * | 2015-05-28 | 2015-09-16 | 小米科技有限责任公司 | 应用测试方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2892261A1 (fr) * | 2005-10-17 | 2007-04-20 | France Telecom | Procede et systeme de gestion des applications d'un terminal mobile |
-
2017
- 2017-06-29 CN CN201710530975.9A patent/CN107357725B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744056A (zh) * | 2004-09-04 | 2006-03-08 | 华为技术有限公司 | 一种应用程序的自动测试方法 |
CN104915290A (zh) * | 2015-05-28 | 2015-09-16 | 小米科技有限责任公司 | 应用测试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107357725A (zh) | 2017-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107357725B (zh) | 应用测试方法及装置 | |
CN105320598B (zh) | 软件测试方法及装置 | |
US10656785B2 (en) | Method and user equipment for managing application programs | |
CN105278937B (zh) | 一种显示弹出框消息的方法及装置 | |
CN104427074B (zh) | 一种显示来电信息的方法、装置和*** | |
CN104636047B (zh) | 对列表中的对象进行操作的方法、装置及触屏终端 | |
CN106126411B (zh) | 一种对被测程序代码进行测试的方法和装置 | |
CN106547844B (zh) | 一种用户界面的处理方法和装置 | |
CN104077211B (zh) | 一种移动终端软件的测试方法及测试*** | |
CN107276602B (zh) | 射频干扰处理方法、装置、存储介质及终端 | |
CN105740145B (zh) | 定位控件中的元素的方法及装置 | |
CN105530239B (zh) | 多媒体数据获取方法及装置 | |
CN104298686B (zh) | 修改服务器配置文件的方法和装置 | |
CN104699501B (zh) | 一种运行应用程序的方法及装置 | |
CN106533917B (zh) | 关系链处理方法、装置及*** | |
CN105526944B (zh) | 信息提示方法及装置 | |
US10298590B2 (en) | Application-based service providing method, apparatus, and system | |
CN103399706B (zh) | 页面交互方法、装置及终端 | |
CN104660769B (zh) | 一种添加联系人信息的方法、装置和*** | |
CN105807908B (zh) | 一种切换工作模式的方法和装置 | |
CN107608725A (zh) | 一种信息处理方法及终端 | |
CN105005529B (zh) | 一种对应用程序进行测试的方法及装置 | |
CN105302589B (zh) | 一种获取卸载信息的方法及装置 | |
CN106484615B (zh) | 记录日志的方法和装置 | |
CN106708500B (zh) | 卸载界面的显示方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |