应用程序测试方法、装置、终端及计算机可读存储介质与流程

文档序号:15492255发布日期:2018-09-21 20:51阅读:119来源:国知局

本发明涉及计算机技术领域,具体涉及一种应用程序测试方法,还涉及一种应用程序测试装置、一种应用程序测试终端以及一种计算机可读存储介质。



背景技术:

在日常的手机应用程序(application,app)测试中,需要通过与服务器进行数据交互完成测试。因此,app测试需要依赖服务器的功能完备性,并且需要服务器配合构造各种异常数据。

但是,如果服务器不完备,等待服务器功能完备,等待服务器配合构造各种异常数据,所需的等待时间长,会导致项目排期延长,影响项目的交付和迭代速度,效率低。

如果不等待服务器功能完备,可以采用的解决方法包括:

方法一、搭建一个服务器来构造需要与app交互的测试数据。由于不同的服务器架构不同,需要针对不同架构的服务器进行搭建,对于app测试的人员而言,增加了额外的学习成本,且不容易快速实现。

方法二、通过修改app在开发过程中编写的代码,来达到对异常测试数据进行有效测试的目的。然而,这种方法无法有效模拟异常数据场景,且要排除由于修改源程序引起的其它逻辑的非正常行为。



技术实现要素:

本发明实施例提供一种应用程序测试方法,还涉及一种应用程序测试装置、一种应用程序测试终端以及一种计算机可读存储介质,以解决现有技术中的以上技术问题中的至少一个。

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

在待测应用程序运行过程中,对来自服务器的测试数据进行拦截;

判断已拦截的测试数据是否符合场景测试条件,若符合,则根据所述待测应用程序被使用时的场景参数构造模拟测试数据;

根据所述模拟测试数据对所述待测应用程序进行测试。

结合第一方面,本发明在第一方面的第一种实施方式中,判断已拦截的测试数据是否符合场景测试条件,包括:

判断已拦截的测试数据是否符合异常场景测试条件或新添功能场景测试条件。

结合第一方面的第一种实施方式,本发明在第一方面的第二实施方式中,若符合,则根据所述待测应用程序被使用时的场景参数构造模拟测试数据,包括:

若已拦截的测试数据符合异常场景测试条件,则根据所述待测应用程序被使用时的异常场景参数构造模拟测试数据;或,

若已拦截的测试数据符合新添功能场景测试条件,则根据所述待测应用程序被使用时的新添功能场景参数构造模拟测试数据。

结合第一方面,本发明在第一方面的第三种实施方式中,对来自服务器的测试数据进行拦截之前,还包括:

发送待测应用程序的初始数据至所述服务器,以使得所述服务器按照自身的业务逻辑对所述初始数据进行计算,得到所述测试数据。

结合第一方面,本发明在第一方面的第四种实施方式中,对来自服务器的测试数据进行拦截,包括:

根据面向切面编程aop中的周围around标注对所述测试数据进行拦截。

结合第一方面,本发明在第一方面的第五种实施方式中,根据所述模拟测试数据对所述待测应用程序进行测试之前,包括:

通过安卓调试桥adb命令将所述模拟测试数据发送至所述待测应用程序。

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

测试数据拦截模块,用于在待测应用程序运行过程中,对来自服务器的测试数据进行拦截;

测试数据判断模块,用于判断已拦截的测试数据是否符合场景测试条件;

模拟数据构建模块,用于若已拦截的测试数据符合所述场景测试条件,则根据所述待测应用程序被使用时的场景参数构造模拟测试数据;

应用程序测试模块,用于根据所述模拟测试数据对所述待测应用程序进行测试。

结合第二方面,本发明在第二方面的第一实施方式中,所述测试数据判断模块包括:

异常数据判断单元,用于判断已拦截的测试数据是否符合异常场景测试条件;

新添功能判断单元,用于判断已拦截的测试数据是否符合新添功能场景测试条件。

结合第二方面,本发明在第二方面的第二实施方式中,所述模拟数据构建模块包括:

第一构建单元,用于若已拦截的测试数据符合所述异常场景测试条件,则根据所述待测应用程序被使用时的异常场景参数构造模拟测试数据;

第二构建单元,用于若已拦截的测试数据符合所述新添功能测试条件,则根据所述待测应用程序被使用时的新添功能场景参数构造模拟测试数据。

结合第二方面,本发明在第二方面的第三实施方式中,所述装置还包括:

初始数据发送模块,用于发送待测应用程序的初始数据至所述服务器,以使得所述服务器按照自身的业务逻辑对所述初始数据进行计算,得到所述测试数据。

所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一个可能的设计中,应用程序测试终端的结构中包括处理器和存储器,所述存储器用于存储支持应用程序测试装置执行上述第一方面中应用程序测试方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述应用程序测试装置还可以包括通信接口,用于应用程序测试装置与其他设备或通信网络通信。

第三方面,本发明实施例提供了一种计算机可读存储介质,用于存储应用程序测试装置所用的计算机软件指令,其包括用于执行上述第一方面中应用程序测试方法为应用程序测试装置所涉及的程序。

上述技术方案中的一个技术方案具有如下优点或有益效果:待测应用程序根据场景参数构造模拟测试数据,不依赖服务器构造数据和功能完备,仅利用现有的服务器环境即可完成应用程序的测试数据的构造。进一步地,仅需关注应用程序本身的业务逻辑,不用搭建复杂的服务器环境。此外,无需修改应用程序的业务代码,不影响正常的业务逻辑,能够完整模拟应用程序的与服务器进行实际数据交互。

上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。

附图说明

在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。

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

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

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

图4为本发明实施例提供的一种应用程序测试终端示意图。

具体实施方式

在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。

实施例一

本实施方式提供了一种应用程序测试方法,如图1和图2所示,具体的测试方法包括:

步骤s1:在待测应用程序运行过程中,对来自服务器的测试数据进行拦截。

在待测应用程序运行过程中,首先应用程序向服务器发送初始数据,如应用程序为支付app时,发送的初始数据可以包括请求支付十元。服务器对初始数据进行计算得到测试数据,其中,测试数据可以包括已完成支付十元的正常测试数据,如果服务器不完备,返回的测试数据可能是异常测试数据,如缺少中奖信息的异常测试数据等。之后,应用程序对来自服务器的测试数据进行拦截。

步骤s2:判断已拦截的测试数据是否符合场景测试条件,若符合,则根据所述待测应用程序被使用时的场景参数构造模拟测试数据。

待测应用程序编译过程是将高级程序设计语言书写的源程序翻译成等价的机器语言格式目标程序,本实施方式中,将上述判断的逻辑织入应用程序在编译过程中源程序的字节码,能够避免不污染码源,无需修改应用程序的业务代码。

场景测试条件可以包括按照应用程序被使用时出现的各种异常场景对应的测试条件,或者新添加功能的场景对应的测试条件等。当然,上述两种场景测试条件仅是示例而非对场景测试条件的限制,其他可能的场景测试条件均在本实施方式的保护范围内。

若已拦截的测试数据符合场景测试条件,则按照不同的异常场景对应的场景参数,或者新添功能对应的场景参数分别构造模拟测试数据。然后,将符合场景测试条件的测试数据替换成构造的模拟测试数据,不需要修改待测应用程序的业务代码。待测应用程序可以根据此模拟测试数据进行测试,从而进一步验证待测应用程序对异常场景或新添功能场景下的使用状况。因此,不影响应用程序的正常业务逻辑,更不会引入修改源程序引起的其它逻辑的非正常行为,保证了测试的准确率。

如果拦截的测试数据不符合上述场景测试条件的正常测试数据,则将拦截的测试数据直接发送至应用程序中进行测试即可。

步骤s3:根据模拟测试数据对待测应用程序进行测试。

在构造出模拟测试数据后,可以采用模拟测试数据替换原有的测试数据。然后,利用替换后的模拟测试数据正常执行app的测试过程,从而达到测试目的。

本实施例提供的应用程序测试方法,不依赖服务器构造数据和功能完备,仅利用现有的服务器环境即可完成应用程序的测试数据的构造,仅需关注应用程序本身的业务逻辑,不用搭建复杂的服务器环境,无需修改应用程序的业务代码,不影响正常的业务逻辑,完整模拟应用程序的与服务器进行实际数据交互。

在上述方法的基础上,判断已拦截的测试数据是否符合场景测试条件,包括:

判断已拦截的测试数据是否符合异常场景测试条件或新添功能场景测试条件。

例如,异常场景测试条件包括例如支付app的支付异常、共享单车的计时异常等。再如,新添功能场景测试条件包括支付app中新增加的折扣计算功能或中奖信息等。

在上述方法的基础上,若符合,则根据所述待测应用程序被使用时的场景参数构造模拟测试数据,包括:

若已拦截的测试数据符合异常场景测试条件,则根据待测应用程序被使用时的异常场景参数构造模拟测试数据;或,

若已拦截的测试数据符合新添功能场景测试条件,则根据待测应用程序被使用时的新添功能场景参数构造模拟测试数据。

在构造得到模拟测试数据后,可以在pc(个人电脑)端将构造好的模拟测试数据传入待测应用程序中,以便替换原有的测试数据。

在上述方法的基础上,对来自服务器的测试数据进行拦截之前,还包括:

发送待测应用程序的初始数据至服务器,以使得服务器按照自身的业务逻辑对初始数据进行计算,得到测试数据。

在一种可能的实现方式中,步骤s1可以包括:根据面向切面编程(aspectorientedprogramming,aop)中的周围(around)标注对测试数据进行拦截。

基于aop技术,可通过周围around标注对app与服务器进行交互的公共函数进行拦截,公共函数用来接收服务器返回的测试数据,从而达到模拟服务器数据替换原有测试数据的要求。当然,对测试数据的拦截包括但不限于上述拦截方式,还可以为其它拦截方式,均在本实施方式的保护范围内。

在上述方法的基础上,根据所述模拟测试数据对所述待测应用程序进行测试之前,包括:

可通过安卓调试桥(androiddebugbridge,adb)命令将模拟测试数据发送至待测应用程序。

以android为例,pc端通过已经构建好的模拟测试数据通过adb命令动态传入app,以便利用模拟测试数据替换原有的测试数据来进行测试。当然,包括但不限于通过安卓调试桥adb命令的方式,还可以包括其它数据传送方式,均在本实施方式的保护范围内。

以下举例说明应用程序测试方法的整个过程:

如图2所示,支付app发送的购买十元早餐的初始数据给服务器,购买十元早餐的初始数据中包括扣除八元早餐的数据信息和使用两元优惠券的数据信息。服务器接收到初始数据,对其进行计算,得到已支付十元的测试数据。测试过程中,正常情况下支付app应该展示已经支付十元。而本实施方式中,服务器在计算得到已支付十元的测试数据后,将测试数据发给支付app。在支付app程序运行过程中,将此测试数据拦截,判断已拦截的测试数据是否符合支付异常的异常场景测试条件。例如,拦截的测试数据并不是已支付十元,而是已支付十二元或者已支付六元的支付异常场景;或者由于服务器功能不完备,拦截的测试数据中不包括中奖信息这样的新添功能场景。若符合上述异常场景或上述新添功能场景,则pc端通过adb命令将构建好的模拟测试数据发送给支付app。将已拦截的已支付十元的测试数据修改成已支付十二元或者已支付六元的模拟测试数据,或者,将已拦截的已支付十元的测试数据替换成原测试数据的基础上加入中奖信息的模拟测试数据。此时支付app实际执行的数据为修改后的模拟测试数据。

实施例二

在另一种具体的实施方式中,提供了一种应用程序测试装置,如图3所示,包括:

测试数据拦截模块100,用于在待测应用程序运行过程中,对来自服务器的测试数据进行拦截;

测试数据判断模块200,用于判断已拦截的测试数据是否符合场景测试条件;

模拟数据构建模块300,用于若已拦截的测试数据符合场景测试条件,则根据待测应用程序被使用时的场景参数构造模拟测试数据;

应用程序测试模块400,用于根据模拟测试数据对待测应用程序进行测试。

进一步的,在上述装置中,测试数据判断模块200包括:

异常数据判断单元,用于判断已拦截的测试数据是否符合异常场景测试条件;

新添功能判断单元,用于判断已拦截的测试数据是否符合新添功能场景测试条件。

进一步的,在上述装置中,模拟数据构建模块300包括:

第一构建单元,用于若已拦截的测试数据符合异常场景测试条件,则根据待测应用程序被使用时的异常场景参数构造模拟测试数据;

第二构建单元,用于若已拦截的测试数据符合新添功能场景测试条件,则根据待测应用程序被使用时的新添功能场景参数构造模拟测试数据。

进一步的,在上述装置中,所述装置还包括:

初始数据发送模块,用于发送待测应用程序的初始数据至服务器,以允许服务器按照自身的业务逻辑对初始数据进行计算,得到测试数据。

实施例三

本发明实施例提供了一种应用程序测试终端,如图4所示,包括:

存储器400和处理器500,存储器400内存储有可在处理器500上运行的计算机程序。处理器500执行所述计算机程序时实现上述实施例中的声控智能家居设备的方法。存储器400和处理器500的数量可以为一个或多个。

通信接口600,用于存储器400和处理器500与外部进行通信。

存储器400可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

如果存储器400、处理器500以及通信接口600独立实现,则存储器400、处理器500以及通信接口600可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(isa,industrystandardarchitecture)总线、外部设备互连(pci,peripheralcomponent)总线或扩展工业标准体系结构(eisa,extendedindustrystandardcomponent)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

可选的,在具体实现上,如果存储器400、处理器500以及通信接口600集成在一块芯片上,则存储器400、处理器500及通信接口600可以通过内部接口完成相互间的通信。

实施例四

一种计算机可读存储介质,其存储有计算机程序,所述程序被处理器执行时实现如实施例一包括的任一所述的应用程序测试方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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