一种应用程序的测试方法、装置及终端与流程

文档序号:11216167阅读:500来源:国知局
一种应用程序的测试方法、装置及终端与流程

本发明涉及计算机技术领域,具体涉及软件测试技术领域,尤其涉及一种应用程序的测试方法、装置及终端。



背景技术:

计算机软件应用程序的运行过程是否流畅,是反映应用程序优劣的一个重要指标。目标,应用程序的流畅度主要通过fps(framespersecond,每秒传输帧数)进行衡量,具体的测试过程为:运行被测应用程序,测试人员使用fps工具获取被测应用程序在运行过程中的fps曲线,根据fps流畅度的判断标准获得测试结果。在上述现有的应用程序的测试框架中,仅通过fps来衡量应用程序的流畅度较为笼统,不够细节而不利于应用程序的优化。



技术实现要素:

本发明实施例提供一种应用程序的测试方法、装置及终端,能够对目标应用程序按照层级结构进行针对性的测试,有利于获得全面的流畅度测试结果,有利于应用程序的优化。

本发明实施例第一方面提供一种应用程序的测试方法,可包括:

获取待测试的目标应用程序的测试参数;

根据所述测试参数确定所述目标应用程序的被测层级结构;

从所述目标应用程序所在的操作系统中选取与所述被测层级结构相对应的目标测试工具;

采用所选取的目标测试工具对所述目标应用程序进行测试,获得测试结果。

优选地,所述获取待测试的目标应用程序的测试参数之前,还包括:

按照职能将目标应用程序划分为至少一个层级结构。

优选地,所述测试参数包括:静态流畅度、动态流畅度、逻辑流畅度和数据流畅度中的至少一种;

所述层级结构包括表现层、逻辑层和数据层;所述表现层包括静态表现层 和动态表现层;

所述静态表现层用于反映窗口的静态流畅度;所述动态表现层用于反映窗口的动态流畅度;所述逻辑层用于反映函数的逻辑流畅度;所述数据层用于反映数据流畅度。

优选地,所述从所述目标应用程序所在的操作系统中选取与所述被测层级结构相对应的目标测试工具,包括:

从所述目标应用程序所在的操作系统中获取至少一种测试工具,所述测试工具包括:窗口静态测试工具、窗口动态测试工具、函数测试工具和数据测试工具;

按照所述被测层级结构的职能从所述至少一种测试工具中选取相对应的目标测试工具。

优选地,所述采用所选取的目标测试工具对所述目标应用程序进行测试,获得测试结果,包括:

运行所述目标应用程序;

采用所选取的目标测试工具抓取所述目标应用程序的运行场景进行测试,获得测试结果;

其中,所述测试结果包括:窗口的静态显示速度、窗口的动态刷新速度、函数的执行速度以及数据库的读写速度中的至少一种。

本发明实施例第二方面提供一种应用程序的测试装置,可包括:

测试参数获取单元,用于获取待测试的目标应用程序的测试参数;

确定单元,用于根据所述测试参数确定所述目标应用程序的被测层级结构;

工具选取单元,用于从所述目标应用程序所在的操作系统中选取与所述被测层级结构相对应的目标测试工具;

测试单元,用于采用所选取的目标测试工具对所述目标应用程序进行测试,获得测试结果。

优选地,所述装置还包括:

结构划分单元,用于按照职能将目标应用程序划分为至少一个层级结构。

优选地,所述测试参数包括:静态流畅度、动态流畅度、逻辑流畅度和数据流畅度中的至少一种;

所述层级结构包括表现层、逻辑层和数据层;所述表现层包括静态表现层 和动态表现层;

所述静态表现层用于反映窗口的静态流畅度;所述动态表现层用于反映窗口的动态流畅度;所述逻辑层用于反映函数的逻辑流畅度;所述数据层用于反映数据流畅度。

优选地,所述工具选取单元包括:

系统工具获取单元,用于从所述目标应用程序所在的操作系统中获取至少一种测试工具,所述测试工具包括:窗口静态测试工具、窗口动态测试工具、函数测试工具和数据测试工具;

目标工具选取单元,用于按照所述被测层级结构的职能从所述至少一种测试工具中选取相对应的目标测试工具。

优选地,所述测试单元包括:

运行单元,用于运行所述目标应用程序;

场景测试单元,用于采用所选取的目标测试工具抓取所述目标应用程序的运行场景进行测试,获得测试结果;

其中,所述测试结果包括:窗口的静态显示速度、窗口的动态刷新速度、函数的执行速度以及数据库的读写速度中的至少一种。

本发明实施例第三方面提供一种终端,可包括上述第二方面所述的应用程序的测试装置。

本发明实施例中,可根据目标应用程序的测试参数确定所述目标应用程序的被测层级结构,从所述目标应用程序所在的操作系统中选取与所述被测层级结构相对应的目标测试工具,采用所选取的目标测试工具对所述目标应用程序进行测试,获得测试结果。由于能够根据不同的测试参数确定不同的被测层级结构,按照层级结构选取对应的测试工具对目标应用程序进行针对性的、深入的测试,有利于获得全面的流畅度测试结果,有利于应用程序的优化。

附图说明

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

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

图2为本发明实施例提供的一种终端的结构示意图;

图3为本发明实施例提供的一种应用程序的测试装置的结构示意图。

具体实施方式

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

本发明实施例中,可根据目标应用程序的测试参数确定所述目标应用程序的被测层级结构,从所述目标应用程序所在的操作系统中选取与所述被测层级结构相对应的目标测试工具,采用所选取的目标测试工具对所述目标应用程序进行测试,获得测试结果。由于能够根据不同的测试参数确定不同的被测层级结构,按照层级结构选取对应的测试工具对目标应用程序进行针对性的、深入的测试,有利于获得全面的流畅度测试结果,有利于应用程序的优化。

本发明实施例中,应用程序是指为针对使用者的某种应用目的所撰写的程序代码,能够实现相应的功能。应用程序可包括但不限于:即时通信应用程序、sns(socialnetworkingservices,社会性网络服务)应用程序、游戏应用程序等等。应用程序可以在终端中运行,应用程序所在的操作系统即为终端的操作系统,此处,终端可包括但不限于:pc(personalcomputer,个人计算机)、手机、pad(平板电脑)、可穿戴设备等等。应用程序所在的操作系统可包括但不限于:windows系统(一种操作系统)、android(安卓,一种移动操作系统)系统、ios(一种移动操作系统)系统等等。

基于上述描述,本发明实施例公开了一种测试方法,请参见图1,该方法可包括以下步骤s101-步骤s104。

s101,获取待测试的目标应用程序的测试参数。

区别于现有技术中仅通过fps反映应用程序的流畅度的笼统标准,本发明实施例针对应用程序的流畅度标准进行细分,可以分为静态流畅度、动态流畅度、逻辑流畅度和数据流畅度;其中,静态流畅度可用于反映应用程序的窗口 的显示速度,具体包括:反映应用程序的窗口的显示代码的流畅度,反映gpu(graphicsprocessingunit,图形处理单元)是否过度绘制,反映应用程序的窗口中的控件数量及层次对流畅度的影响。动态流畅度可用于反映应用程序的窗口的刷新速度,具体包括:反映应用程序的窗口在刷新帧的耗时情况,反映应用程序的窗口在渲染方面的能力体现。逻辑流畅度可用于反映应用程序的函数的执行速度,具体包括:反映应用程序在主线程上哪类函数调用次数不多但每次调用的耗时较长,而哪类函数调用次数频繁。数据流畅度用于反映应用程序对数据库的读写速度。测试人员针对目标应用程序进行测试时,可以根据实际需要及欲达到的测试目的指定测试参数,该测试参数可包括:静态流畅度、动态流畅度、逻辑流畅度和数据流畅度中的至少一种。

可选地,该方法在执行步骤s101之前,还可执行如下步骤s100。

s100,按照职能将目标应用程序划分为至少一个层级结构。

所述层级结构可包括表现层、逻辑层和数据层;所述表现层包括静态表现层和动态表现层。所述静态表现层用于反映窗口的静态流畅度;所述动态表现层用于反映窗口的动态流畅度;所述逻辑层用于反映函数的逻辑流畅度;所述数据层用于反映数据流畅度。

s102,根据所述测试参数确定所述目标应用程序的被测层级结构。

如前述,不同的层级结构具备不同的职能,那么,根据测试参数以及目标应用程序的各层级结构的职能可以确定是针对目标应用程序的哪个层级结构进行测试。例如:如果测试参数为静态流畅度,可以将目标应用程序的静态表现层确定为被测层级结构;如果测试参数为动态流畅度,可以将目标应用程序的动态表现层确定为被测层级结构;如果测试参数为逻辑流畅度,可以将目标应用程序的逻辑层确定为被测层级结构;如果测试参数为数据流畅度,可以将目标应用程序的数据层确定为被测层级结构。可以理解的是,如果测试参数包括两种或两种以上,那么,所确定的被测层级结构也为对应的两个或两个以上。

s103,从所述目标应用程序所在的操作系统中选取与所述被测层级结构相对应的目标测试工具。

具体实现中,该方法在执行步骤s103的过程中,具体执行如下步骤s11-s12:

s11,从所述目标应用程序所在的操作系统中获取至少一种测试工具,所述测试工具包括:窗口静态测试工具、窗口动态测试工具、函数测试工具和数据 测试工具。

s12,按照所述被测层级结构的职能从所述至少一种测试工具中选取相对应的目标测试工具。

通常,操作系统会提供一些用于进行应用程序的流畅度测试的工具,以android系统为例,其提供的用于进行应用程序的流畅度的测试工具如下:

①窗口静态测试工具,包括:lint工具、gpu过度绘制工具和hierarchyviewer工具。其中,lint工具能够对窗口的显示代码进行静态扫描,并提供多条与流畅度相关的规则,如果窗口的显示代码违反流畅度相关的规则的条数越多,则表明窗口的显示流畅度越差。gpu过度绘制工具能够测试应用程序在窗口绘制阶段的流畅度,如果过度绘制越严重,流畅度越差。hierarchyviewer工具能够从窗口的布局方面测试流畅度,如果窗口的控件数量越多、控件层次越深,流畅度越差。

②窗口动态测试工具,包括:dumpsysgfxinfo工具和systrace工具。其中,dumpsysgfxinfo工具会产生关于帧屏幕显示的相关数据,这个数据可以判断一秒内测试场景的流畅度情况,如果刷新的当前帧耗时越多,流畅度越差。systrace工具提供了针对系统侧渲染的分析能力,根据系统侧渲染时间反映流畅度情况,如果系统侧渲染的时间越长,流畅度越差。

③函数测试工具,包括traceview工具,其可以指出主线程上哪类函数影响了应用程序的流畅度,函数耗时越多,流畅度越差;具体地,影响流畅度的函数可以包括:调用次数不多但每次调用耗时较长的函数,以及每次调用耗时较少但调用非常频繁的函数。

④数据测试工具,包括stricmode工具,其可以监听应用程序的主线程的运行情况,如果应用程序在读取数据库时违规操作越多,流畅度越差。

那么,步骤s11-s12中,可以按照被测层级结构的职能从操作系统提供的测试工具中选择相对应匹配的测试工具;例如:如果被测层级结构为静态表现层,可选用操作系统所提供的窗口静态测试工具;如果被测层级结构为动态表现层,可选用操作系统所提供的窗口动态测试工具;如果被测层级结构为逻辑层,可选用函数测试工具;如果被测层级结构为数据层,可选用数据测试工具。按照目标应用程序的层级结构有针对性的选用操作系统所提供的测试工具,既能够使得测试过程更为深入有针对性,又能够使得测试过程简单便捷。

s104,采用所选取的目标测试工具对所述目标应用程序进行测试,获得测试结果。

具体实现中,该方法在执行步骤s104的过程中,具体执行如下步骤s21-s22:

s21,运行所述目标应用程序。

s22,采用所选取的目标测试工具抓取所述目标应用程序的运行场景进行测试,获得测试结果。

步骤s21-s22中,所述测试结果包括:窗口的静态显示速度、窗口的动态刷新速度、函数的执行速度以及数据库的读写速度中的至少一种。具体地,测试结果与测试参数相对应,例如:如果测试参数为静态流畅度,那么获得的测试结果为窗口的静态显示速度;如果测试参数为动态流畅度,所获得的测试结果为窗口的动态刷新速度;如果测试参数为逻辑流畅度,那么所获得的测试结果为函数的执行速度;如果测试参数为数据流畅度,那么所获得的测试结果为数据库的读写速度。由于目标应用程序的流畅度按照层级结构选用针对性的测试工具进行测试,其可适用于更多的测试场景,并且,测试结果涵盖了应用程序的窗口的静动态表现层面、函数的执行层面以及数据的读写层面,能够为应用程序的优化提供深入地、参考性建议。

本发明实施例的应用程序的测试方法,可根据目标应用程序的测试参数确定所述目标应用程序的被测层级结构,从所述目标应用程序所在的操作系统中选取与所述被测层级结构相对应的目标测试工具,采用所选取的目标测试工具对所述目标应用程序进行测试,获得测试结果。由于能够根据不同的测试参数确定不同的被测层级结构,按照层级结构选取对应的测试工具对目标应用程序进行针对性的、深入的测试,有利于获得全面的流畅度测试结果,有利于应用程序的优化。

基于上述实施例所示的应用程序的测试方法,本发明实施例还提供了一种终端,该终端可用于执行上述图1所示方法流程的相应步骤。请参见图2,该终端的内部结构可包括但不限于:处理器、用户接口、网络接口及存储器。其中,终端内的处理器、用户接口、网络接口及存储器可通过总线或其他方式连接,在本发明实施例所示图2中以通过总线连接为例。

其中,用户接口是实现用户(如测试人员)与终端进行交互和信息交换的 媒介,其具体体现可以包括用于输出的显示屏(display)以及用于输入的键盘(keyboard)等等,需要说明的是,此处的键盘既可以为实体键盘,也可以为触屏虚拟键盘,还可以为实体与触屏虚拟相结合的键盘。处理器(或称cpu(centralprocessingunit,中央处理器))是终端的计算核心以及控制核心,其可以解析终端内的各类指令以及处理终端的各类数据。存储器(memory)是终端中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器既可以包括终端的内置存储器,当然也可以包括终端所支持的扩展存储器。存储器提供存储空间,该存储空间存储了终端的操作系统,可包括但不限于:windows系统(一种操作系统)、android(安卓,一种移动操作系统)系统、ios(一种移动操作系统)系统等等,本发明对此并不作限定。存储器的存储空间存储了应用程序的测试装置。

在本发明实施例中,终端通过运行存储器中的应用程序的测试装置来执行上述图1所示方法流程的相应步骤。请一并参见图3,该应用程序的测试装置运行如下单元:

测试参数获取单元101,用于获取待测试的目标应用程序的测试参数。

确定单元102,用于根据所述测试参数确定所述目标应用程序的被测层级结构。

工具选取单元103,用于从所述目标应用程序所在的操作系统中选取与所述被测层级结构相对应的目标测试工具。

测试单元104,用于采用所选取的目标测试工具对所述目标应用程序进行测试,获得测试结果。

具体实现中,可选地,所述装置还可运行如下单元:

结构划分单元105,用于按照职能将目标应用程序划分为至少一个层级结构。

具体实现中,所述测试参数包括:静态流畅度、动态流畅度、逻辑流畅度和数据流畅度中的至少一种;所述层级结构包括表现层、逻辑层和数据层;所述表现层包括静态表现层和动态表现层;所述静态表现层用于反映窗口的静态流畅度;所述动态表现层用于反映窗口的动态流畅度;所述逻辑层用于反映函数的逻辑流畅度;所述数据层用于反映数据流畅度。

具体实现中,所述装置在运行所述工具选取单元103的过程中,具体运行如下单元:

系统工具获取单元1001,用于从所述目标应用程序所在的操作系统中获取至少一种测试工具,所述测试工具包括:窗口静态测试工具、窗口动态测试工具、函数测试工具和数据测试工具。

目标工具选取单元1002,用于按照所述被测层级结构的职能从所述至少一种测试工具中选取相对应的目标测试工具。

具体实现中,所述装置在运行所述测试单元104的过程中,具体运行如下单元:

运行单元2001,用于运行所述目标应用程序。

场景测试单元2002,用于采用所选取的目标测试工具抓取所述目标应用程序的运行场景进行测试,获得测试结果。其中,所述测试结果包括:窗口的静态显示速度、窗口的动态刷新速度、函数的执行速度以及数据库的读写速度中的至少一种。

与方法同理,本发明实施例的终端及应用程序的测试装置,可根据目标应用程序的测试参数确定所述目标应用程序的被测层级结构,从所述目标应用程序所在的操作系统中选取与所述被测层级结构相对应的目标测试工具,采用所选取的目标测试工具对所述目标应用程序进行测试,获得测试结果。由于能够根据不同的测试参数确定不同的被测层级结构,按照层级结构选取对应的测试工具对目标应用程序进行针对性的、深入的测试,有利于获得全面的流畅度测试结果,有利于应用程序的优化。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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