应用程序测试方法及系统与流程

文档序号:12157629阅读:269来源:国知局
应用程序测试方法及系统与流程

本发明属于计算机技术领域,尤其涉及一种应用程序测试方法及系统



背景技术:

随着计算机的普及,各种应用程序也就越来越多,应用程序的功能普及到人们的衣食住行中,但是应用程序对应的问题也越来越多,因此,应用程序的测试逐渐被重视。现有技术中,测试端发送给被测试端的测试数据为随机测试数据,经常会出现测试时间运行过长,以及测试数据不能针对性的对所述应用程序进行测试的问题。因此生成一种针对性测试数据对所述应用程序进行测试成了亟待解决的问题。



技术实现要素:

本发明提供一种应用程序测试方法及系统,可以通过更准确的测试数据来提高测试效率与准确率。

本发明实施例提供一种应用程序测试方法,所述方法包括以下步骤:

根据用户数据分析平台的事件统计结果生成测试数据;

所述用户数据分析平台将所述测试数据发送给测试端;

所述测试端向应用程序对应的被测试端发送测试指令;

所述被测试端根据所述测试指令对所述应用程序进行测试;以及

所述被测试端将测试日志发送给所述测试端。

本发明实施例还提供一种应用程序测试系统,所述系统包括:用户数据分析平台、测试端以及被测试端;

所述用户数据分析平台,用于根据用户数据分析平台的事件统计结果生成测试数据,并将所述测试数据发送给所述测试端;

所述测试端,用于根据所述测试数据生成所述测试指令,将所述测试指令发送给所述被测试端;以及

所述被测试端,用于根据所述测试指令对应用程序进行测试,并将测试日志发送给所述测试端。

本发明实施例所提供的应用程序测试方法及系统,通过根据用户数据分析平台提供的事件统计结果生成测试数据,能够使测试方向更明确,使测试应用程序时能够覆盖更多用户想要测试的模块,提高测试效率与准确率。

为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。

附图说明

图1为本发明实施例提供的应用程序测试方法及系统的应用环境图。

图2示出了一种实施例中的服务器的结构框图。

图3示出了一种实施例中的电子终端的结构框图。

图4为第一实施例提供的应用程序测试方法的时序图。

图5为第一实施例中的配置文件在一个实例中的示意图。

图6为第二实施例提供的应用程序测试方法的时序图。

图7为第三实施例提供的应用程序测试系统的结构框图。

具体实施方式

为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。

图1为本发明实施例提供的应用程序测试方法及系统的应用环境图。 如图1所示,应用环境包括:位于有线或无线网络中的测试端100、被测试端200以及用户数据分析平台300,所述测试端100和所述被测试端200通过该有线或无线网络传输测试指令以及测试结果等,以实现以下各实施例提供的应用程序测试方法。上述测试端100包括手持式计算机、台式计算机、移动电话、个人数字助理及前述装置的各种组合或者服务器等。所述被测试端200包括手持式计算机、台式计算机、移动电话、个人数字助理及前述装置的各种组合。所述用户数据分析平台300可以是服务器、服务器集群以及服务器和数据库等组成的系统等。

所述测试端100中安装了用于测试应用程序的软件,所述被测试端200中安装有对应的应用程序的客户端。在一种实施例中,所述被测试的应用程序也可以被安装于所述测试端100中,则直接在所述测试端100中进行测试。

具体地,所述测试端100根据所述用户数据分析平台300生成的测试数据生成对应的测试指令,并将所述测试指令发送给所述被测试端200;所述被测试端200根据所述测试指令进行测试,生成对应的测试日志,并将所述测试日志发送给所述测试端100,所述测试端100可以根据所述测试日志分析出测试结果,以及对应追溯问题的根源。

请参阅图2,其为上述的一个实施例服务器的结构框图。如图2所示,服务器包括存储器102、处理器104以及网络模块106。可以理解,图2所示的结构仅为示意,其并不对服务器的结构造成限定。例如,服务器还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。进一步地,所述测试端100可以为图2所示的服务器。进一步地,所述用户数据分析平台300也可以是图2所示的服务器。

存储器102可用于存储软件程序以及模块,如本发明实施例中的应用程序测试方法/系统对应的程序指令/模块,处理器104通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理, 即实现上述的应用程序测试方法。存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器102可进一步包括相对于处理器104远程设置的存储器,这些远程存储器可以通过网络连接至服务器200。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

网络模块106用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。在一个实例中,上述网络信号为有线网络信号。此时,网络模块106可包括处理器、随机存储器、转换器、晶体振荡器等元件。

上述的软件程序以及模块包括:操作系统108以及测试模块110。其中操作系统108例如可为LINUX,UNIX,WINDOWS,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。测试模块110运行在操作系统108的基础上。测试模块110用于向被测试端200发送指定测试指令用于测试对应的应用程序。

图3示出了一种电子终端的结构框图。如图3所示,所述电子终端包括一个或多个(图中仅示出一个)处理器202、存储器204、存储控制器206、RF(Radio Frequency,射频)模块208、网络模块210、音频模块212、输入模块214、显示模块216及外设接口218。本领域普通技术人员可以理解,图3所示的结构仅为示意,其并不对所述电子终端的结构造成限定。例如,所述电子终端还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。所述被测试端200可以为图3所示的电子终端。

本领域普通技术人员可以理解,相对于处理器202来说,所有其他的组件均属于外设,处理器202与这些外设之间通过多个外设接口218相耦 合。外设接口218可基于以下标准实现:通用异步接收/发送装置(Universal Asynchronous Receiver/Transmitter,UART)、通用输入/输出(General Purpose Input Output,GPIO)、串行外设接口(Serial Peripheral Interface,SPI)、内部集成电路(Inter-Integrated Circuit,I2C),但不并限于上述标准。在一些实例中,外设接口218可仅包括总线;在另一些实例中,外设接口218还可包括其他元件,如一个或者多个控制器,例如用于连接液晶显示面板的显示控制器或者用于连接存储器的存储控制器。此外,这些控制器还可以从外设接口218中脱离出来,而集成于处理器202内或者相应的外设内。

存储器204可用于存储软件程序以及模块,如本发明实施例中的应用程序测试方法/系统对应的程序指令/模块,处理器202通过运行存储在存储器204内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序测试方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至所述电子终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

射频模块208用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。射频模块208可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。射频模块108可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。上述的无线网络可以使用各种通信标准、协议及技术,包括但并不限于全球移动通信系统(Global System for Mobile Communication,GSM)、增强型移动通信技术(Enhanced Data GSM Environment,EDGE),宽带码分多址技术(wideband code division multiple access,W-CDMA),码分多址技术(Code division access,CDMA)、时分多址技术(time division multiple access,TDMA),无线保真技术(Wireless,Fidelity,WiFi)(如美国电气和电子工程师协会标准IEEE 802.11a,IEEE 802.11b,IEEE802.11g和/或IEEE 802.11n)、网络电话(Voice over internet protocal,VoIP)、全球微波互联接入(Worldwide Interoperability for Microwave Access,Wi-Max)、其他用于邮件、应用程序测试及短消息的协议,以及任何其他合适的通讯协议,甚至可包括那些当前仍未被开发出来的协议。

网络模块210用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。在一个实例中,上述网络信号为WiFi信号,由于WiFi的工作频率也处于射频的频段内,此时网络模块可具有与射频模块108类似的硬件结构,即可包括天线、射频收发器、数字信号处理器、加密/解密芯片等元件。在一个实例中,上述网络信号为有线网络信号。此时,网络模块210可包括处理器、随机存储器、转换器、晶体振荡器等元件。

音频模块212向用户提供音频接口,其可包括一个或多个扬声器、一个或多个麦克风以及音频电路。具体地,音频电路从处理器202处接收声音数据,将声音数据转换为电信号,将电信号传输至扬声器。扬声器将电信号转换为人耳能听到的声波。音频电路还从麦克风处接收电信号,将电信号转换为声音数据,并将声音数据传输给处理器202以进行进一步的处理。音频数据可以从存储器204处或者通过射频模块208、网络模块210获取。此外,音频数据也可以存储至存储器204中或者通过射频模块208及网络模块210进行发送。

输入模块214可用于接收输入的字符信息,以及产生与用户设置以及 功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入模块214可包括按键以及触控表面。按键例如可包括用于输入字符的字符按键,以及用于触发控制功能的控制按键。控制按键的实例包括“返回主屏”按键、开机/关机按键、拍照键等等。触控表面可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控表面上或在触控表面附近的操作),并根据预先设定的程序驱动相应的连接装置。可选的,触控表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器202,并能接收处理器202发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控表面。除了触控表面,输入模块214还可以包括其他输入设备。上述的其他输入设备包括但不限于物理键盘、轨迹球、鼠标、操作杆等中的一种或多种。

显示模块216用于显示由用户输入的信息、提供给用户的信息以及所述电子终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。在一个实例中,显示模块216包括一个显示面板。显示面板例如可为一个液晶显示面板(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode Display,OLED)显示面板、电泳显示面板(Electro-Phoretic Display,EPD)等。进一步地,触控表面可设置于显示面板上从而与显示面板构成一个整体。在另一些实施例中,显示模块216还可包括其他类型的显示装置,例如包括一个投影显示装置。相比于一般的显示面板,投影显示装置还需要包括一些用于投影的部件例如透镜组。

上述的软件程序以及模块包括:操作系统以及应用程序模块。其中操作系统例如可为LINUX,UNIX,WINDOWS,或者移动操作系统如Android, IOS等,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。应用程序模块运行在操作系统的基础上,向用户提供对应操作,其具体细节将结合实施例描述如下。

第一实施例

图4为本实施例提供的一种应用程序测试方法的时序图,本实施例的方法可用于图1所示的应用环境,如图4所示,本实施例的方法包括以下步骤:

步骤S101、根据用户数据分析平台的事件统计结果生成测试数据。

详细地,步骤S101可包括:将所述事件存储至配置文件中,所述事件为所述应用程序对应的客户端提交的用户操作;根据所述事件的触发率将所述事件进行优先级定义,所述触发率为用所述应用程序对应的客户端提交所述事件的提交频率;通过对应的js脚本读取所述配置文件中的所述事件,所述事件作为所述测试数据;以及根据所述事件的优先级赋予触发概率给所述事件,所述触发概率为所述事件被用作所述测试数据的概率。

所述配置文件的格式包括:事件代码(code)和事件名称,所述配置文件以列表形式存储在所述用户数据分析平台中。如图5所示,配置文件的事件代码与对应的事件名称以列表形式进行存储。图5中包括,事件code:10,事件名称:搜索页语音入口;事件code:100,事件名称:首页-实时路况-开;事件code:101,事件名称:首页-实时路况-关;事件code:102,事件名称:多方案-切换方案;事件code:103,事件名称:打分-非导航-自动结束;事件code:600,事件名称:电台首页-上次播放左侧开关;事件code:601,事件名称:点击电台Tab(有更新红点);事件code:602,事件名称:点击电台Tab(没有更新红点);事件code:603,事件名称:电台首页-上次播放右侧;事件code:604,事件名称:电台首页-推荐频道。所述事 件则可为首页-实时路况-开、首页-实时路况-关以及打分-非导航-自动结束等用户操作。所述用户操作,可以是用户对应用程序的实时操作。也可以是用户通过对所述应用程序的预设置的操作,例如,打分-非导航-自动结束。

定义所述事件的优先级的依据为所述用户数据分析平台接收到所述应用程序对应的客户端提交所述事件的提交频率。在一个实例中,所述提交频率越高的对应的所述事件的优先级就越高。

详细地,根据上述优先级的定义可以知道,所述事件的提交频率越高对应所述事件的优先级也就越高,所述事件的所述优先级越高则表示所述事件被所述应用程序的所述客户端的用户使用触发的可能性越大。因此,根据所述事件的优先级赋予触发概率给所述事件,所述触发概率为所述事件被用作测试数据的概率,从而使测试所述应用程序的所述测试数据更接近用户使用所述应用程序时的状态。

详细地,所述用户数据分析平台可以用于收集所述用户在应用程序中的操作,并记录对应每一种操作的频率。在一个实例中,所述用户数据分析平台为灯塔,可以接收和监控某路宝提交的用户操作的数据。例如,所述灯塔接收所述路宝提交的驾驶行为评测数据,驾驶行程中的操作数据,拥堵、执法、管制的实时路况、智能路线规划、省油路线推荐、免费语音导航等全方位的出行服务等数据。所述测试数据根据所述路宝提交的数据产生。进一步地,所述灯塔还根据所述路宝提交的数据,记录各种数据的提交频率。进一步地,所述灯塔根据所述路宝提交的数据按照上述的配置文件存储在所述灯塔的存储器中,并根据所述路宝提交的数据的提交频率对应生成测试数据的触发概率。可以理解为被提交的频率较高的数据被作为测试数据的概率就越高。具体地,所述触发概率为所提交的数据被作为测试数据发送给所述测试端的概率。

步骤S102、所述用户数据分析平台将所述测试数据发送给测试端。

在一个实例中,所述测试端中有Monkey,所述Monkey是Android中的一 个命令行工具,可以运行在模拟器里或实际设备中,例如,所述Monkey可运行在电子终端或服务器中。所述Monkey向所述应用程序所在的电子终端发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。进一步地,所述Monkey测试使用的事件的测试数据是随机的,不能进行自定义,但是可以设置测试数据的数量,数据类型以及触发测试数据的概率。由此可知,所述测试端以所述触发概率接收所述测试数据,并根据接收到所述测试数据的生成对应的测试指令,将所述测试指令发送给所述被测试端。可以知道的是,由于所述测试端是以所述触发概率接收所述测试数据,所以同样以所述触发概率向所述被测试端发送所述测试指令。

详细地,本实施例中的所述测试端接收所述用户数据分析平台发送的所述测试数据,根据所述测试数据对应的触发概率设置所述测试数据生成对应测试指令的生成概率。

步骤S103、所述测试端向应用程序对应的被测试端发送测试指令。

详细地,所述测试指令为对所述应用程序的具体操作。例如,所述应用程序为某路宝应用,则所述测试指令可以为类别筛选的点击操作,启动搜索语音入口操作,实时路况开启关闭操作等操作。

步骤S104、所述被测试端根据所述测试指令对所述应用程序进行测试。

由于各种应用程序的客户端偶尔会出现闪退的情况,闪退严重影响到用户的使用。在本实施例中,所述被测试端根据所述测试指令对所述应用程序进行测试可以是:测试所述应用程序的非预期退出。因此,通过测试应用程序的非预期退出,本实施例中的方法可用于监测应用程序的客户端出现非预期退出的原因。

步骤S105、所述被测试端将测试日志发送给所述测试端。

所述测试日志是记录所述应用程序问题的信息,同时还可以监视应用程序中发生的事件。测试用户可以通过所述测试日志来检查错误发生的原因, 或者寻找受到攻击时攻击者留下的痕迹。进一步地,所述测试用户可以通过所述测试日志分析问题发生的原因等。

根据本实施例的方法,通过根据所述用户数据分析平台生成的测试数据进一步生成测试指令,使测试方向更明确,使测试应用程序时能够覆盖更多用户想要测试的模块,提高测试效率与准确率。

第二实施例

图6为本实施例提供的一种应用程序测试方法的流程图,本实施例与第一实施例类似,其不同之处在于,如图6所示,本实施例的方法包括:

步骤S201、根据用户数据分析平台的事件统计结果生成测试数据。

步骤S202、所述用户数据分析平台将所述测试数据发送给测试端。

步骤S203、所述测试端向应用程序对应的被测试端发送测试指令。

步骤S204、所述被测试端对所述应用程序进行插桩。

所述插桩在保证被测应用程序原有逻辑完整性的基础上在程序中插入一些探针(或称为“探测仪”),通过探针的执行并抛出程序运行的特征数据,通过对这些数据的分析,可以获得程序的控制流和数据流信息,进而得到逻辑覆盖等动态信息,从而实现测试目的的方法。

步骤S205、所述被测试端根据所述测试指令对所述应用程序进行测试。

所述被测试端根据所述测试指令对所述应用程序进行测试包括:测试所述应用程序的非预期退出。

步骤S206、所述被测试端将测试日志和桩日志发送给所述测试端。

在所述被插桩的应用程序被测试后,所述桩日志中记录内容可包括:在所述测试数据测试过程中对所述应用程序的代码的覆盖率以及测试所述应用程序出现问题时运行对应代码的位置。

步骤S207、所述测试端根据所述测试日志和所述桩日志获取测试结果。

详细地,所述测试端根据所述测试日志和桩日志获取测试结果可以为, 在所述测试端显示所述测试日志和桩日志。

所述根据所述测试日志和桩日志获取测试结果可以是直接展示所述测试日志和桩日志内容,也就是说,所述测试结果直接体现在所述测试日志和所述桩日志内容中。进一步地,所述测试用户可以通过所述测试日志和所述桩日志分析及定位问题。详细地,用户可以通过查看所述桩日志所述应用程序的代码运行到什么位置的时候出现了非预期退出等问题。

所述测试日志是记录所述应用程序问题的信息,同时还可以监视所述应用程序中发生的事件。测试用户可以通过所述测试日志来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。所述桩日志记录在所述测试数据测试过程中对所述应用程序的代码的覆盖率以及测试所述应用程序出现问题时运行对应代码的位置。

本实施例中的其它细节与第一实施例的类似,在此不再赘述。

根据本实施例的方法,通过使用用户数据分析平台筛选的测试数据测试被插桩的应用程序,使测试数据有针对性,且通过对所述应用程序进行插桩,可以查看出错时,所述应用程序的代码执行位置,更加准确地分析触发所述问题的原因,以及产生所述问题的对应与所述应用程序的代码位置,提高所述测试用户的测试效率。

第三实施例

请参阅图7,图7为本发明第八实施例提供的一种应用程序测试系统的结构框图。如图7所示,所述系统包括:测试端100、被测试端200以及用户数据分析平台300;

所述用户数据分析平台300,用于根据用户数据分析平台的事件统计结果生成测试数据,并将所述测试数据发送给所述测试端。

详细地,所述根据用户数据分析平台300还用于将所述事件存储至配置文件中,所述事件为所述应用程序对应的客户端提交的用户操作;根据所述 事件的触发率将所述事件进行优先级定义,所述触发率为用所述应用程序对应的客户端提交所述事件的提交频率;通过对应的js脚本读取所述配置文件中的所述事件,所述事件作为所述测试数据;以及根据所述事件的优先级赋予触发概率给所述事件,所述触发概率为所述事件被用作所述测试数据的概率。

所述测试端100,用于根据所述测试数据生成所述测试指令,将所述测试指令发送给所述被测试端。

所述被测试端100还用于根据所述测试指令测试所述应用程序的非预期退出。

所述被测试端200,用于根据所述测试指令对应用程序进行测试,并将测试日志发送给所述测试端。

进一步地,所述被测试端200还用于在测试之前对所述应用程序进行插桩。所述被测试端200还用于在测试完成之后,将桩日志发送给所述测试端。

进一步地,所述测试端100还用于根据所述测试日志和所述桩日志获取测试结果。

关于本实施例的其它细节,可进一步参考上述的方法实施例,在此不再赘述。

根据本实施例的系统,通过根据所述用户数据分析平台生成的测试数据进一步生成测试指令,使测试方向更明确,使测试应用程序时能够覆盖更多用户想要测试的模块,提高测试效率与准确率。

此外,本发明实施例还提供一种计算机可读存储介质,其内存储有计算机可执行指令,上述的计算机可读存储介质例如为非易失性存储器例如光盘、硬盘、或者闪存。上述的计算机可执行指令用于让计算机或者类似的运算装置完成上述的应用程序测试方法中的各种操作。

需要说明的是,本说明书中的各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

需要说明的是,在本文中,诸如术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者装置中还存在另外的相同要素。

以上该,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

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