CN110865937A - 一种应用测试方法、装置和存储介质 - Google Patents
一种应用测试方法、装置和存储介质 Download PDFInfo
- Publication number
- CN110865937A CN110865937A CN201911085213.8A CN201911085213A CN110865937A CN 110865937 A CN110865937 A CN 110865937A CN 201911085213 A CN201911085213 A CN 201911085213A CN 110865937 A CN110865937 A CN 110865937A
- Authority
- CN
- China
- Prior art keywords
- test
- module
- application program
- data
- service function
- 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.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 735
- 238000010200 validation analysis Methods 0.000 claims abstract description 86
- 230000006870 function Effects 0.000 claims description 99
- 230000003993 interaction Effects 0.000 claims description 28
- 238000003032 molecular docking Methods 0.000 claims description 27
- 238000000034 method Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010998 test method Methods 0.000 abstract description 6
- 230000000694 effects Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种应用测试方法、装置和存储介质,其中,预先在应用程序的架构中增加协议对接层,并在协议对接层中设置注解模块、测试模块以及请求模块,由此,当应用程序启动后,即可通过协议对接层所设置的请求模块获取AB测试的测试数据,并从注解模块中解析出预先写入的AB测试的生效时机,再根据解析出的生效时机,通过协议对接层所设置的测试模块利用测试数据进行AB测试,得到测试结果。由此,只需开发者预先一次设置测试模块等,即可重复利用所设置的执行模块,从而无需在每次进行AB测试时均由开发者重新编码,使得AB测试的测试效率得以提高。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种应用测试方法、装置和存储介质。
背景技术
目前,为了更好的提高应用程序的用户体验,开发者们在应用开发过程中通常采用AB测试(ABTest)来完善开发的应用程序。简单的说,AB测试就是为同一个目标制定A和B两种或多种方案。例如,目标为确定按钮在界面中的位置,其中A方案为按钮设置在界面左侧,B方案为按钮设置在界面右侧。然而,相关技术在进行AB测试时,每一次进行AB测试,都需要开发人员在应用程序中写入实现此次AB测试的功能代码,导致测试效率较低。
发明内容
本发明实施例提供一种应用测试方法、装置和存储介质,能够提高对应用程序进行AB测试的测试效率。
本发明实施例提供一种应用测试方法,在应用程序的架构中增加协议对接层,在所述协议对接层中设置注解模块、测试模块以及请求模块,所述应用测试方法包括:
当所述应用程序启动后,通过所述请求模块获取AB测试的测试数据;
从所述注解模块中解析出预先写入的AB测试的生效时机;
根据解析出的生效时机,通过所述测试模块利用所述测试数据进行AB测试,得到测试结果。
相应的,本发明实施例还提供一种应用测试装置,在应用程序的架构中增加协议对接层,在所述协议对接层中设置注解模块、测试模块以及请求模块,所述应用测试装置包括:
获取组件,用于当所述应用程序启动后,通过所述请求模块获取AB测试的测试数据;
解析组件,用于从所述注解模块中解析出预先写入的AB测试的生效时机;
测试组件,用于根据解析出的生效时机,通过所述测试模块利用所述测试数据进行AB测试,得到测试结果。
此外,本发明实施例还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行本发明实施例所提供的任一种应用测试方法。
本发明实施例中,预先在应用程序的架构中增加协议对接层,并在协议对接层中设置注解模块、测试模块以及请求模块,由此,当应用程序启动后,即可通过协议对接层所设置的请求模块获取AB测试的测试数据,并通过预设测试类从注解模块中解析出预先写入的AB测试的生效时机,再根据解析出的生效时机,通过协议对接层所设置的测试模块利用测试数据进行AB测试,得到测试结果。由此,只需开发者预先一次设置测试模块等,即可重复利用所设置的执行模块,从而无需在每次进行AB测试时均由开发者重新编码,使得AB测试的测试效率得以提高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的应用测试方法的一流程示意图;
图2是本发明实施例中在应用程序的架构中增加协议对接层的示意图;
图3是本发明实施例提供的应用测试方法的一流程示意图;
图4是本发明实施例中注解模块的一示例图;
图5是本发明实施例提供的应用测试方法的应用场景示例图;
图6是本发明实施例提供的应用测试方法的另一流程示意图;
图7是本发明实施例提供的应用测试装置的结构示意图;
图8是本发明实施例提供的终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种应用测试方法,预先在应用程序的架构中增加协议对接层,并在协议对接层中设置注解模块、测试模块以及请求模块,该应用测试方法包括:当应用程序启动后,通过请求模块获取AB测试的测试数据,并通过预设测试类从注解模块中解析出预先写入的AB测试的生效时机,再根据解析出的生效时机,通过测试模块利用测试数据进行AB测试,得到测试结果。
以安卓系统为例,以下首先对应用程序的架构进行简单介绍:
请参照图1,目前,应用程序的逻辑分层通常包括SDK(Software DevelopmentKit,软件开发工具包)层、框架层以及业务层,其中,
SDK层:主要是安卓SDK以及及第三方的SDK(可以是基于安卓SDK的定制化SDK,还可以是独立的SDK等),这些SDK为上层框架层提供核心功能的支持。
框架层:为具体业务逻辑实现的基础,包括多数应用程序都必须的基础功能,比如网络请求功能、图片加载与缓存功能、数据库管理功能、崩溃监控与常用工具类等。示例性的,对于网请求络功能可以使用Volley、OkHttp或者自己封装实现网络请求逻辑;对于图片管理功能则可以使用Glide、Fresco、Picasso,也可以自己实现等。
业务层:如果把应用程序的架构比作高层建筑,那么SDK层和框架层就是地基。地基打好之后,就可以在上面任意发挥了,至于如何发挥,那就必须结合实际的业务需求,不同的应用程序往往有不同的业务功能模块。其中,业务功能模块并非完全是并列的级别,有一些业务逻辑也是可以抽象出来的,作为通用的业务功能模块,比如登录、分享、扫描、统计等,其他的业务功能模块可能会调用到这些功能。
应当说明的是,为了能够实现自动化的AB测试,请参照图2,本发明在应用程序的架构中增加了协议对接层,并在协议对接层中设置注解模块、测试模块以及请求模块。
基于以上改进后应用程序架构,本发明实施例提供一种应用测试方法,如图3所示,该应用测试方法的流程可以如下:
在101中,当应用程序启动后,通过请求模块获取AB测试的测试数据。
目前,当需要对应用程序进行AB测试时,每一次AB测试均需要开发者对AB测试设计编码,随着AB测试数量的增加,会加重开发者的开发成本。
其中,对于每次新的AB测试,都需要开发者理解其生效时机(通俗的说,即该次AB测试在何时执行),增加了开发者的业务理解成本。
同时,对于每次新的AB测试,都需要开发者在业务层对其生效时机进行代码编写,以及对测试功能的实现进行代码编写,增加开发者了的开发成本。
另外,为实现AB测试的而编写的代码也增加了应用程序的代码量和逻辑,使得应用程序臃肿,增加了代码维护成本。
基于此,本发明为了能够高效的实现AB测试,同时降低AB测试的测试成本,预先在应用程序的架构中增加协议对接层,该协议对接层独立于业务层,并在协议对接层中设置注解模块,利用注解模块来标注AB测试的生效时机,从而减少开发者对生效时机的业务理解成本。此外,还在协议对接层设置请求模块,利用请求模块来实现测试数据(比如AB测试的测试策略,即AB测试的不同的A/B方案)的自动获取,以及在协议对接层设置测试模块,利用测试模块来实现自动的AB测试,以此来减少业务层的代码维护成本,同时无需开发者对AB测试进行重复编码,能够减少开发时间成本。
应当说明的是,以上设置的注解模块、测试模块以及请求模块具体可由本领域普通技术人员编码得到,对于其代码形式,本发明实施例中不做具体限制。
基于以上相关描述,本领域普通技术人员可以理解的是,本发明实施例中所设置的注解模块、测试模块以及请求模块属于应用程序的一部分,其功能实现依赖于应用程序的运行。其中,本发明对应用程序的类型不做限定,其可以是任何类型的应用程序,包括但不限于游戏类应用程序、影音娱乐类应用程序、实用工具类应用程序以及社交通信类应用程序等。
因此,在本发明实施例中,终端对应用程序的启动进行侦测,当侦测到应用程序启动后,即通过设置的请求模块获取AB测试的测试数据。
应当说明的是,在本发明实施例中,注解模块除了存储AB测试的生效时机之外,还存储有AB测试的测试标识,该测试标识用于唯一标识某AB测试,即终端根据测试标识来识别不同的AB测试。比如,请参照图4,给出了注解模块的示例图,其中,注解模块至少包括testId字段和updateType字段,其中,testId字段用于存储AB测试的测试标识,如图4中testId为220,即表征一测试标识为220的AB测试,该AB测试用于测试应用程序的背景颜色。此外,updateType字段用于存储AB测试的生效时机,如图4中updateType字段为IMMEDIATE,表面该AB测试的生效时机为立即生效。
相应的,在通过设置的请求模块获取AB测试的测试数据时,即可根据注解模块中的测试标识来获取到对应的测试数据。
示例性的,以测试数据存储在服务器为例,终端在通过请求模块获取AB测试的测试数据时,可以首先按照约定的报文格式,通过请求模块生成数据获取请求,该数据获取请求携带有AB测试的测试标识,然后,将生成的数据获取请求发送至服务器,指示服务器返回对应的最新测试数据;相应的,终端接收服务器根据数据获取请求中携带的测试标识所返回的对应测试数据。
在一实施例中,“当应用程序启动后,通过请求模块获取AB测试的测试数据”之后,还包括:
(1)当获取到测试数据后,启动预设定时器;
(2)当预设定时器计时达到预设时长时,通过请求模块重新获取AB测试的测试数据,并复位预设定时器。
其中,预设定时器可以是硬件定时器,也可以时软件定时器,本发明实施例对此不作具体限制。
本发明实施例中,终端在通过请求模块获取到AB测试的测试数据之后,启动预设定时器,并在该预设定时器计时达到预设时长时,通过请求模块重新获取AB测试的测试数据,以利用新获取到的测试数据进行新的AB测试。
此外,终端在通过请求模块重新获取AB测试的测试数据之后,复位预设定时器,使得预设定时器重新开始计时,从而当预设定时器再次计时达到预设时长时,再次通过请求模块获取AB测试的测试数据,如此往复。
应当说明的是,本发明实施例中对前述预设时长的取值不作具体限定,可由本领域普通技术人员根据实际的测试需要进行设置。
在102中,通过预设测试类从注解模块中解析出预先写入的AB测试的生效时机。
应当说明的是,在本发明实施例中,还预先编写有用于解析生效时机的预设测试类,使得终端在预设测试类的类文件被加载到内存并完成初始化后,即通过该预设测试类从注解模块中解析出预先写入的AB测试的生效时机。
比如,AB测试的生效时机可由开发者预先确定后,直接写入到注解模块中,也可以由开发者在AB测试的生效时机上传至服务器,当终端启动应用程序后,通过请求模块获取到AB测试的生效时机并写入注解模块。
在103中,根据解析出的生效时机,通过测试模块利用测试数据进行AB测试,得到测试结果。
本发明实施例中,终端在获取到AB测试的测试数据,以及解析出该AB测试的生效时机之后,即在满足生效时机时,通过测试模块利用测试数据进行AB测试,得到测试结果。其中,测试结果用于反映用户对AB测试中不同测试方案的倾向程度。
比如,AB测试为测试应用程序的背景颜色,通过此次AB测试,得到用户倾向于白色背景的测试结果。
可选的,在一实施例中,“根据解析出的生效时机,通过测试模块利用测试数据进行AB测试”,包括:
(1)若解析出的生效时机为立即生效,则通过请求模块将测试数据加载到内存中;
(2)通过测试模块利用内存中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
应当说明的是,AB测试的生效时机包括立即生效,即在应用程序的当前运行周期内完成AB测试,为了实现AB测试的立即生效,本发明实施例中预先授予请求模块对终端内存的读写权限。
相应的,在本发明实施例中,若解析出的生效时机为立即生效,则终端通过请求模块将获取到的测试数据加载到内存中,并通过预设回调方法,将加载到内存中的测试数据通知到测试模块。然后,终端通过测试模块利用内存中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
比如,预先编写了“onTestUpdate”方法,假设AB测试为对应用程序背景颜色的测试,获取到如下测试数据:
@ABTestStrategyInit(strategyId=“1”,asDefault=true)//测试方案1//funinitA(){
view.setBackgroundColor(Resource.getColor(android.R.color.black))}//设置背景颜色为黑色//
@ABTestStrategyInit(strategyId=“2”)//测试方案2//
fun initB(){
view.setBackgroundColor(Resource.getColor(android.R.color.white))}//设置背景颜色为白色//
@ABTestStrategyInit(strategyId=“3”)//测试方案3//
fun initC(){
view.setBackgroundColor(Resource.getColor(android.R.color.holo_green_dark))
}//设置背景颜色为绿色//
@ABTestStrategyInit(strategyId=“4”)//测试方案4//
fun initF(){
view.setBackgroundColor(Resource.getColor(android.R.color.holo_blue_bright))
}//设置背景颜色为白色//
其中,分别为不同的背景颜色方案,分别为黑色、白色、绿色以及蓝色,可以理解的是,此时的目标业务功能模块即为实现应用程序背景颜色的业务功能模块,相应的,终端通过测试模块利用内存中的测试数据更新AB测试的目标业务功能模块,即将应用程序的背景颜色刷新为黑色、白色、绿色以及蓝色,从而对应用程序的背景颜色进行AB测试。
可选的,在一实施例中,“根据解析出的生效时机,通过测试模块利用测试数据进行AB测试”,包括:
(1)若解析出的生效时机为指定时刻生效,则通过请求模块将测试数据存储至存储器中;
(2)当到达指定时刻时,通过测试模块利用存储器中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
应当说明的是,AB测试除了立即生效之外,还可以是在指定时刻生效,即AB测试并不立即生效,而是在指定时刻才生效。其中,指定时刻可以是以固定时刻,也可以是一动态时刻。为了实现AB测试在指定时刻生效,本发明实施例中预先授予请求模块对终端存储器(可以是终端的内置存储器,也可以是终端的外置的存储器,比如插入终端的SD卡,MicroSD卡等)的读写权限。
相应的,在本发明实施例中,若解析出的生效时机为指定时刻,则终端通过请求模块将获取到的测试数据写入到存储器中。那么在未到达指定时刻之前,终端不会通过对AB测试的目标业务功能模块进行更新,从而保证业务层的数据一直稳定。当到达指定时刻时,终端通过测试模块从存储器中读取到请求模块上次写入的测试数据,并利用该测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
可选的,在一实施例中,指定时刻为应用程序下次启动的时刻,“当到达指定时刻时,通过测试模块利用存储器中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试”,包括:
当应用程序下次启动时,通过测试模块利用存储器中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
本发明实施例中,指定时刻可以为应用程序下次启动的时刻,相应的,在解析出的生效时机为指定时刻,且为应用程序下次启动的时刻时,那么在应用程序的当次运行周期内,终端不会通过对AB测试的目标业务功能模块进行更新,从而保证业务层的数据一直稳定。当应用程序下次启动时,终端通过测试模块从存储器中读取到请求模块上次写入的测试数据,并利用该测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
在一实施例中,“得到测试结果”,包括:
(1)通过测试模块收集更新后的目标业务功能模块的用户交互数据;
(2)通过测试模块对用户交互数据进行分析,得到测试结果。
其中,不同目标的AB测试,需要收集的用户交互数据不同。相应的,终端在通过测试模块收集更新后的目标业务功能模块的用户交互数据时,根据AB测试的测试目标,通过测试模块收集更新后的目标业务功能模块对应前述测试目标的用户交互数据。
在通过测试模块收集到需要的用户交互数据之后,终端进一步通过测试模块对收集到的用户交互数据进行分析,得到反映用户对AB测试中不同方案的倾向程度的测试结果。
比如,对于测试目标为确定按钮在界面中位置的AB测试,包括两个方案,分别为按钮设置在界面左侧和按钮设置在界面右侧,在收集用户交互数据时,终端通过测试模块的收集按钮设置在界面左侧的用户点击率,以及收集按钮设置界面右侧的用户点击率。之后,终端进一步通过收集到的用户点击率,分析出用户对按钮不同设置方式的倾向程度,作为测试结果。
在一实施例中,“根据解析出的生效时机,通过测试模块利用测试数据进行AB测试,得到测试结果”之后,还包括:
根据测试结果确定对应用程序的更新策略,并按照更新策略更新应用程序。
如上所述,对应用程序进行AB测试的目的在于完善应用程序,相应的,在完成对应用程序的AB测试之后,即可根据测试结果确定对应用程序的更新策略,该更新策略用于指示如何对应用程序进行更新。在确定应用程序的更新策略之后,即可按照确定的更新策略对应用程序进行更新。
比如,对于测试目标为确定按钮在界面中位置的AB测试,包括两个方案,分别为按钮设置在界面左侧和按钮设置在界面右侧,在完成该AB测试之后,得到测试结果反映用户对按钮设置在界面右侧的倾向程度更高,则可以确定对应用程序的更新策略为将按钮设置在界面右侧。相应的,在对应用程序进行更新时,即可将对应的按钮更新在界面的右侧。
由上可知,本发明实施例中,预先在应用程序的架构中增加协议对接层,并在协议对接层中设置注解模块、测试模块以及请求模块,由此,当应用程序启动后,即可通过协议对接层所设置的请求模块获取AB测试的测试数据,并通过预设测试类从注解模块中解析出预先写入的AB测试的生效时机,再根据解析出的生效时机,通过协议对接层所设置的测试模块利用测试数据进行AB测试,得到测试结果。由此,只需开发者预先一次设置测试模块等,即可重复利用所设置的执行模块,从而无需在每次进行AB测试时均由开发者重新编码,使得AB测试的测试效率得以提高。
根据前面实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,提供一种应用测试系统,请参照图5,该应用测试系统包括终端和服务器。
其中,服务器用于向终端提供进行AB测试所需的测试数据。
终端用于预先在应用程序的架构中增加协议对接层,并在协议对接层中设置注解模块、测试模块以及请求模块,并在应用程序启动后,利用请求模块从服务器获取到测试数据,并根据注解模块中预先写入的生效时机,利用测试模块基于获取到的测试数据对应用程序进行AB测试。
基于以上应用测试系统的架构,请参照图6,本发明提供的应用测试方法的执行流程可以如下:
在601中,当应用程序启动后,终端通过请求模块发送数据获取请求至服务器,并接收服务器根据数据获取请求返回的测试数据。
本发明为了能够高效的实现AB测试,同时降低AB测试的测试成本,预先在应用程序的架构中增加协议对接层,该协议对接层独立于业务层,并在协议对接层中设置注解模块,利用注解模块来标注AB测试的生效时机,从而减少开发者对生效时机的业务理解成本。此外,还在协议对接层设置请求模块,利用请求模块来实现测试数据(比如AB测试的测试策略,即AB测试的不同的A/B方案)的自动获取,以及在协议对接层设置测试模块,利用测试模块来实现自动的AB测试,以此来减少业务层的代码维护成本,同时无需开发者对AB测试进行重复编码,能够减少开发时间成本。
应当说明的是,以上设置的注解模块、测试模块以及请求模块具体可由本领域普通技术人员编码得到,对于其代码形式,本发明实施例中不做具体限制。
基于以上相关描述,本领域普通技术人员可以理解的是,本发明实施例中所设置的注解模块、测试模块以及请求模块属于应用程序的一部分,其功能实现依赖于应用程序的运行。其中,本发明对应用程序的类型不做限定,其可以是任何类型的应用程序,包括但不限于游戏类应用程序、影音娱乐类应用程序、实用工具类应用程序以及社交通信类应用程序等。
同时,为了便于统一对测试数据进行维护,本发明实施例中在服务器对测试数据进行维护。
因此,在本发明实施例中,终端对应用程序的启动进行侦测,当侦测到应用程序启动后,按照约定的报文格式,通过请求模块生成数据获取请求,该数据获取请求携带有AB测试的测试标识,然后,将生成的数据获取请求发送至服务器,指示服务器返回对应的最新测试数据;相应的,终端接收服务器根据数据获取请求中携带的测试标识所返回的对应测试数据。
在602中,终端从注解模块中解析出预先写入的AB测试的生效时机,若解析出的生效时机为立即生效,则转入603,若解析出的生效时机为应用程序下次启动时生效,则转入604。
应当说明的是,在本发明实施例中,还预先编写有用于解析生效时机的预设测试类,使得终端在预设测试类的类文件被加载到内存并完成初始化后,即通过该预设测试类从注解模块中解析出预先写入的AB测试的生效时机。
比如,AB测试的生效时机可由开发者预先确定后,直接写入到注解模块中,也可以由开发者在AB测试的生效时机上传至服务器,当终端启动应用程序后,通过请求模块获取到AB测试的生效时机并写入注解模块。
本发明实施例中,在从注解模块中解析出生效时机后,终端根据解析出的生效时机不同,相应利用获取到的测试数据进行AB测试。其中,生效时机包括立即生效和应用程序下次启动时生效,立即生效即在应用程序的当前运行周期内完成AB测试,为了实现AB测试的立即生效,本发明实施例中预先授予请求模块对终端内存的读写权限;应用程序下次启动时生效即在应用程序当次运行周期内不进行AB测试,而是在应用程序下次启动时才进行AB测试。
在603中,终端通过请求模块将测试数据加载到内存中,并通过测试模块利用内存中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
在本发明实施例中,若解析出的生效时机为立即生效,则终端通过请求模块将获取到的测试数据加载到内存中,并通过预设回调方法,将加载到内存中的测试数据通知到测试模块。然后,终端通过测试模块利用内存中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
比如,预先编写了“onTestUpdate”方法,假设AB测试为对应用程序背景颜色的测试,获取到如下测试数据:
@ABTestStrategyInit(strategyId=“1”,asDefault=true)//测试方案1//funinitA(){
view.setBackgroundColor(Resource.getColor(android.R.color.black))}//设置背景颜色为黑色//
@ABTestStrategyInit(strategyId=“2”)//测试方案2//
fun initB(){
view.setBackgroundColor(Resource.getColor(android.R.color.white))}//设置背景颜色为白色//
@ABTestStrategyInit(strategyId=“3”)//测试方案3//
fun initC(){
view.setBackgroundColor(Resource.getColor(android.R.color.holo_green_dark))
}//设置背景颜色为绿色//
@ABTestStrategyInit(strategyId=“4”)//测试方案4//
fun initF(){
view.setBackgroundColor(Resource.getColor(android.R.color.holo_blue_bright))
}//设置背景颜色为白色//
其中,分别为不同的背景颜色方案,分别为黑色、白色、绿色以及蓝色,可以理解的是,此时的目标业务功能模块即为实现应用程序背景颜色的业务功能模块,相应的,终端通过测试模块利用内存中的测试数据更新AB测试的目标业务功能模块,即将应用程序的背景颜色刷新为黑色、白色、绿色以及蓝色,从而对应用程序的背景颜色进行AB测试。
在604中,终端通过请求模块将测试数据存储至存储器中,并当应用程序下次启动时,通过测试模块利用存储器中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
为了实现AB测试在应用程序下次启动时生效,本发明实施例中预先授予请求模块对终端存储器(可以是终端的内置存储器,也可以是终端的外置的存储器,比如插入终端的SD卡,Micro SD卡等)的读写权限。
在本发明实施例中,若解析出的生效时机为指应用程序下次启动时生效,那么在应用程序的当次运行周期内,终端不会通过对AB测试的目标业务功能模块进行更新,从而保证业务层的数据一直稳定。当应用程序下次启动时,终端通过测试模块从存储器中读取到请求模块上次写入的测试数据,并利用该测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
在605中,获取测试结果,并根据测试结果确定对应用程序的更新策略,按照更新策略更新应用程序。
本发明实施例中,终端可以通过测试模块收集更新后的目标业务功能模块的用户交互数据,并通过测试模块对用户交互数据进行分析,得到测试结果。
其中,不同目标的AB测试,需要收集的用户交互数据不同。相应的,终端在通过测试模块收集更新后的目标业务功能模块的用户交互数据时,根据AB测试的测试目标,通过测试模块收集更新后的目标业务功能模块对应前述测试目标的用户交互数据。
在通过测试模块收集到需要的用户交互数据之后,终端进一步通过测试模块对收集到的用户交互数据进行分析,得到反映用户对AB测试中不同方案的倾向程度的测试结果。
比如,对于测试目标为确定按钮在界面中位置的AB测试,包括两个方案,分别为按钮设置在界面左侧和按钮设置在界面右侧,在收集用户交互数据时,终端通过测试模块的收集按钮设置在界面左侧的用户点击率,以及收集按钮设置界面右侧的用户点击率。之后,终端进一步通过收集到的用户点击率,分析出用户对按钮不同设置方式的倾向程度,作为测试结果。
应当说明的是,对应用程序进行AB测试的目的在于完善应用程序,相应的,在完成对应用程序的AB测试之后,即可根据测试结果确定对应用程序的更新策略,该更新策略用于指示如何对应用程序进行更新。在确定应用程序的更新策略之后,即可按照确定的更新策略对应用程序进行更新。
比如,对于测试目标为确定按钮在界面中位置的AB测试,包括两个方案,分别为按钮设置在界面左侧和按钮设置在界面右侧,在完成该AB测试之后,得到测试结果反映用户对按钮设置在界面右侧的倾向程度更高,则可以确定对应用程序的更新策略为将按钮设置在界面右侧。相应的,在对应用程序进行更新时,即可将对应的按钮更新在界面的右侧。
为了更好地实施以上应用测试方法,本发明实施例还提供一种应用测试装置。请参照图7,该应用测试装置包括获取组件701、解析组件702、测试组件703,如下:
获取组件701,用于当应用程序启动后,通过请求模块获取AB测试的测试数据。
本发明为了能够高效的实现AB测试,同时降低AB测试的测试成本,预先在应用程序的架构中增加协议对接层,该协议对接层独立于业务层,并在协议对接层中设置注解模块,利用注解模块来标注AB测试的生效时机,从而减少开发者对生效时机的业务理解成本。此外,还在协议对接层设置请求模块,利用请求模块来实现测试数据(比如AB测试的测试策略,即AB测试的不同的A/B方案)的自动获取,以及在协议对接层设置测试模块,利用测试模块来实现自动的AB测试,以此来减少业务层的代码维护成本,同时无需开发者对AB测试进行重复编码,能够减少开发时间成本。
应当说明的是,以上设置的注解模块、测试模块以及请求模块具体可由本领域普通技术人员编码得到,对于其代码形式,本发明实施例中不做具体限制。
基于以上相关描述,本领域普通技术人员可以理解的是,本发明实施例中所设置的注解模块、测试模块以及请求模块属于应用程序的一部分,其功能实现依赖于应用程序的运行。其中,本发明对应用程序的类型不做限定,其可以是任何类型的应用程序,包括但不限于游戏类应用程序、影音娱乐类应用程序、实用工具类应用程序以及社交通信类应用程序等。
因此,在本发明实施例中,获取组件701对应用程序的启动进行侦测,当侦测到应用程序启动后,即通过设置的请求模块获取AB测试的测试数据。
应当说明的是,在本发明实施例中,注解模块除了存储AB测试的生效时机之外,还存储有AB测试的测试标识,该测试标识用于唯一标识某AB测试,即终端根据测试标识来识别不同的AB测试。比如,请参照图4,给出了注解模块的示例图,其中,注解模块至少包括testId字段和updateType字段,其中,testId字段用于存储AB测试的测试标识,如图4中testId为220,即表征一测试标识为220的AB测试,该AB测试用于测试应用程序的背景颜色。此外,updateType字段用于存储AB测试的生效时机,如图4中updateType字段为IMMEDIATE,表面该AB测试的生效时机为立即生效。
相应的,在通过设置的请求模块获取AB测试的测试数据时,获取组件701即可根据注解模块中的测试标识来获取到对应的测试数据。
示例性的,以测试数据存储在服务器为例,获取组件701在通过请求模块获取AB测试的测试数据时,可以首先按照约定的报文格式,通过请求模块生成数据获取请求,该数据获取请求携带有AB测试的测试标识,然后,将生成的数据获取请求发送至服务器,指示服务器返回对应的最新测试数据;相应的,获取组件701接收服务器根据数据获取请求中携带的测试标识所返回的对应测试数据。
解析组件702,用于从注解模块中解析出预先写入的AB测试的生效时机。
应当说明的是,在本发明实施例中,还预先编写有用于解析生效时机的预设测试类,使得解析组件702在预设测试类的类文件被加载到内存并完成初始化后,即通过该预设测试类从注解模块中解析出预先写入的AB测试的生效时机。
比如,AB测试的生效时机可由开发者预先确定后,直接写入到注解模块中,也可以由开发者在AB测试的生效时机上传至服务器,当终端启动应用程序后,通过请求模块获取到AB测试的生效时机并写入注解模块。
测试组件703,用于根据解析出的生效时机,通过测试模块利用测试数据进行AB测试,得到测试结果。
本发明实施例中,在获取组件701获取到AB测试的测试数据,以及在解析组件702解析出该AB测试的生效时机之后,当满足生效时机时,测试组件703通过测试模块利用测试数据进行AB测试,得到测试结果。其中,测试结果用于反映用户对AB测试中不同测试方案的倾向程度。
比如,AB测试为测试应用程序的背景颜色,通过此次AB测试,得到用户倾向于白色背景的测试结果。
在一实施例中,在根据解析出的生效时机,通过测试模块利用测试数据进行AB测试时,测试组件703用于:
若解析出的生效时机为指定时刻生效,则通过请求模块将测试数据存储至存储器中;
当到达指定时刻时,通过测试模块利用存储器中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
应当说明的是,AB测试除了立即生效之外,还可以是在指定时刻生效,即AB测试并不立即生效,而是在指定时刻才生效。其中,指定时刻可以是以固定时刻,也可以是一动态时刻。为了实现AB测试在指定时刻生效,本发明实施例中预先授予请求模块对测试组件703存储器(可以是测试组件703的内置存储器,也可以是测试组件703的外置的存储器,比如插入测试组件703的SD卡,Micro SD卡等)的读写权限。
相应的,在本发明实施例中,若解析出的生效时机为指定时刻,则测试组件703通过请求模块将获取到的测试数据写入到存储器中。那么在未到达指定时刻之前,测试组件703不会通过对AB测试的目标业务功能模块进行更新,从而保证业务层的数据一直稳定。当到达指定时刻时,测试组件703通过测试模块从存储器中读取到请求模块上次写入的测试数据,并利用该测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
在一实施例中,指定时刻为应用程序下次启动的时刻,当到达指定时刻时,通过测试模块利用存储器中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试时,测试组件703用于:
当应用程序下次启动时,通过测试模块利用存储器中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
本发明实施例中,指定时刻可以为应用程序下次启动的时刻,相应的,在解析出的生效时机为指定时刻,且为应用程序下次启动的时刻时,那么在应用程序的当次运行周期内,测试组件703不会通过对AB测试的目标业务功能模块进行更新,从而保证业务层的数据一直稳定。当应用程序下次启动时,测试组件703通过测试模块从存储器中读取到请求模块上次写入的测试数据,并利用该测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
在一实施例中,在根据解析出的生效时机,通过测试模块利用测试数据进行AB测试时,测试组件703用于:
若解析出的生效时机为立即生效,则通过请求模块将测试数据加载到内存中;
通过测试模块利用内存中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
应当说明的是,AB测试的生效时机包括立即生效,即在应用程序的当前运行周期内完成AB测试,为了实现AB测试的立即生效,本发明实施例中预先授予请求模块对测试组件703内存的读写权限。
相应的,在本发明实施例中,若解析出的生效时机为立即生效,则测试组件703通过请求模块将获取到的测试数据加载到内存中,并通过预设回调方法,将加载到内存中的测试数据通知到测试模块。然后,测试组件703通过测试模块利用内存中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
比如,预先编写了“onTestUpdate”方法,假设AB测试为对应用程序背景颜色的测试,请参照图5,示出了该方法回调的测试数据,分别为不同的背景颜色方案,分别为黑色、白色、绿色以及蓝色,可以理解的是,此时的目标业务功能模块即为实现应用程序背景颜色的业务功能模块,相应的,测试组件703通过测试模块利用内存中的测试数据更新AB测试的目标业务功能模块,即将应用程序的背景颜色刷新为黑色、白色、绿色以及蓝色,从而对应用程序的背景颜色进行AB测试。
在一实施例中,在得到测试结果时,测试组件703用于:
通过测试模块收集更新后的目标业务功能模块的用户交互数据;
通过测试模块对用户交互数据进行分析,得到测试结果。
其中,不同目标的AB测试,需要收集的用户交互数据不同。相应的,测试组件703在通过测试模块收集更新后的目标业务功能模块的用户交互数据时,根据AB测试的测试目标,通过测试模块收集更新后的目标业务功能模块对应前述测试目标的用户交互数据。
在通过测试模块收集到需要的用户交互数据之后,测试组件703进一步通过测试模块对收集到的用户交互数据进行分析,得到反映用户对AB测试中不同方案的倾向程度的测试结果。
比如,对于测试目标为确定按钮在界面中位置的AB测试,包括两个方案,分别为按钮设置在界面左侧和按钮设置在界面右侧,在收集用户交互数据时,测试组件703通过测试模块的收集按钮设置在界面左侧的用户点击率,以及收集按钮设置界面右侧的用户点击率。之后,测试组件703进一步通过收集到的用户点击率,分析出用户对按钮不同设置方式的倾向程度,作为测试结果。
在一实施例中,当应用程序启动后,通过请求模块获取AB测试的测试数据之后,获取组件701还用于:
当获取到测试数据后,启动预设定时器;
当预设定时器计时达到预设时长时,通过请求模块重新获取AB测试的测试数据,并复位预设定时器。
其中,预设定时器可以是硬件定时器,也可以时软件定时器,本发明实施例对此不作具体限制。
本发明实施例中,获取组件701在通过请求模块获取到AB测试的测试数据之后,启动预设定时器,并在该预设定时器计时达到预设时长时,通过请求模块重新获取AB测试的测试数据,以利用新获取到的测试数据进行新的AB测试。
此外,获取组件701在通过请求模块重新获取AB测试的测试数据之后,复位预设定时器,使得预设定时器重新开始计时,从而当预设定时器再次计时达到预设时长时,再次通过请求模块获取AB测试的测试数据,如此往复。
应当说明的是,本发明实施例中对前述预设时长的取值不作具体限定,可由本领域普通技术人员根据实际的测试需要进行设置。
在一实施例中,应用测试装置还包括更新组件,用于在测试组件703根据解析出的生效时机,通过测试模块利用测试数据进行AB测试,得到测试结果之后,根据测试结果确定对应用程序的更新策略,并按照更新策略更新应用程序。
应当说明的是,对应用程序进行AB测试的目的在于完善应用程序,相应的,在完成对应用程序的AB测试之后,更新组件即可根据测试结果确定对应用程序的更新策略,该更新策略用于指示如何对应用程序进行更新。在确定应用程序的更新策略之后,即可按照确定的更新策略对应用程序进行更新。
比如,对于测试目标为确定按钮在界面中位置的AB测试,包括两个方案,分别为按钮设置在界面左侧和按钮设置在界面右侧,在完成该AB测试之后,得到测试结果反映用户对按钮设置在界面右侧的倾向程度更高,则可以确定对应用程序的更新策略为将按钮设置在界面右侧。相应的,在对应用程序进行更新时,即可将对应的按钮更新在界面的右侧。
本发明实施例还提供一种终端,如图8所示,其示出了本发明实施例所涉及的终端的结构示意图,具体来讲:
该终端可以包括一个或者一个以上处理核心的处理器801、一个或一个以上计算机可读存储介质的存储器802、电源803和输入单元804等部件。本领域技术人员可以理解,图8中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器801是该终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器802内的软件程序和/或模块,以及调用存储在存储器802内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器801可包括一个或多个处理核心;优选的,处理器801可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器801中。
存储器802可用于存储软件程序以及模块,处理器801通过运行存储在存储器802的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器802可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器802还可以包括存储器控制器,以提供处理器801对存储器802的访问。
终端还包括给各个部件供电的电源803,优选的,电源803可以通过电源管理系统与处理器801逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源803还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该终端还可包括输入单元804,该输入单元804可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,终端还可以包括显示单元等,在此不再赘述。具体在本实施例中,当预先在应用程序的架构中增加协议对接层,并在协议对接层中设置注解模块、测试模块以及请求模块后,终端中的处理器801会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器802中,并由处理器801来运行存储在存储器802中的应用程序,从而实现各种功能,如下:
当应用程序启动后,通过请求模块获取AB测试的测试数据;
从注解模块中解析出预先写入的AB测试的生效时机;
根据解析出的生效时机,通过测试模块利用测试数据进行AB测试,得到测试结果。
在一实施例中,在根据解析出的生效时机,通过测试模块利用测试数据进行AB测试时,处理器801可以执行:
若解析出的生效时机为指定时刻生效,则通过请求模块将测试数据存储至存储器中;
当到达指定时刻时,通过测试模块利用存储器中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
在一实施例中,指定时刻为应用程序下次启动的时刻,当到达指定时刻时,通过测试模块利用存储器中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试时,处理器801可以执行:
当应用程序下次启动时,通过测试模块利用存储器中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
在一实施例中,在根据解析出的生效时机,通过测试模块利用测试数据进行AB测试时,处理器801可以执行:
若解析出的生效时机为立即生效,则通过请求模块将测试数据加载到内存中;
通过测试模块利用内存中的测试数据更新AB测试的目标业务功能模块,对目标业务功能模块进行AB测试。
在一实施例中,在得到测试结果时,处理器801可以执行:
通过测试模块收集更新后的目标业务功能模块的用户交互数据;
通过测试模块对用户交互数据进行分析,得到测试结果。
在一实施例中,当应用程序启动后,通过请求模块获取AB测试的测试数据之后,处理器801还可以执行:
当获取到测试数据时,启动预设定时器;
当预设定时器计时达到预设时长时,通过请求模块重新获取AB测试的测试数据,并复位预设定时器。
在一实施例中,在根据解析出的生效时机,通过测试模块利用测试数据进行AB测试,得到测试结果之后,处理器801可以执行:
根据测试结果确定对应用程序的更新策略,并按照更新策略更新应用程序。
为此,本发明实施例提供一种存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本发明实施例所提供的任一种应用测试方法中的步骤。例如,可以执行如下步骤:
当应用程序启动后,通过请求模块获取AB测试的测试数据;
从注解模块中解析出预先写入的AB测试的生效时机;
根据解析出的生效时机,通过测试模块利用测试数据进行AB测试,得到测试结果。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本发明实施例所提供的任一种应用测试方法中的步骤,因此,可以实现本发明实施例所提供的任一种应用测试方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种应用测试方法、装置和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种应用测试方法,其特征在于,在应用程序的架构中增加协议对接层,在所述协议对接层中设置注解模块、测试模块以及请求模块,所述应用测试方法包括:
当所述应用程序启动后,通过所述请求模块获取AB测试的测试数据;
从所述注解模块中解析出预先写入的AB测试的生效时机;
根据解析出的生效时机,通过所述测试模块利用所述测试数据进行AB测试,得到测试结果。
2.根据权利要求1所述的应用测试方法,其特征在于,所述根据解析出的生效时机,通过所述测试模块利用所述测试数据进行AB测试,还包括:
若解析出的生效时机为指定时刻生效,则通过所述请求模块将所述测试数据存储至存储器中;
当到达所述指定时刻时,通过所述测试模块利用存储器中的所述测试数据更新AB测试的目标业务功能模块,对所述目标业务功能模块进行AB测试。
3.根据权利要求2所述的应用测试方法,其特征在于,所述指定时刻为所述应用程序下次启动的时刻,所述当到达所述指定时刻时,通过所述测试模块利用存储器中的所述测试数据更新AB测试的目标业务功能模块,对所述目标业务功能模块进行AB测试,包括:
当所述应用程序下次启动时,通过所述测试模块利用存储器中的所述测试数据更新AB测试的目标业务功能模块,对所述目标业务功能模块进行AB测试。
4.根据权利要求1所述的应用测试方法,其特征在于,所述根据解析出的生效时机,通过所述测试模块利用所述测试数据进行AB测试,包括:
若解析出的生效时机为立即生效,则通过所述请求模块将所述测试数据加载到内存中;
通过所述测试模块利用内存中的所述测试数据更新AB测试的目标业务功能模块,对所述目标业务功能模块进行AB测试。
5.根据权利要求2-4任一项所述的应用测试方法,其特征在于,所述得到测试结果,包括:
通过所述测试模块收集更新后的目标业务功能模块的用户交互数据;
通过所述测试模块对所述用户交互数据进行分析,得到所述测试结果。
6.根据权利要求1-4任一项所述的应用测试方法,其特征在于,所述当所述应用程序启动后,通过所述请求模块获取AB测试的测试数据之后,还包括:
当获取到所述测试数据后,启动预设定时器;
当所述预设定时器计时达到预设时长时,通过所述请求模块重新获取AB测试的测试数据,并复位所述预设定时器。
7.根据权利要求1-4任一项所述的应用测试方法,其特征在于,所述根据解析出的生效时机,通过所述测试模块利用所述测试数据进行AB测试,得到测试结果之后,还包括:
根据所述测试结果确定对所述应用程序的更新策略,并按照所述更新策略更新所述应用程序。
8.一种应用测试装置,其特征在于,在应用程序的架构中增加协议对接层,在所述协议对接层中设置注解模块、测试模块以及请求模块,所述应用测试装置包括:
获取组件,用于当所述应用程序启动后,通过所述请求模块获取AB测试的测试数据;
解析组件,用于从所述注解模块中解析出预先写入的AB测试的生效时机;
测试组件,用于根据解析出的生效时机,通过所述测试模块利用所述测试数据进行AB测试,得到测试结果。
9.根据权利要求8所述的应用测试装置,其特征在于,在根据解析出的生效时机,通过所述测试模块利用所述测试数据进行AB测试时,所述测试组件用于:
若解析出的生效时机为立即生效,则通过所述请求模块将所述测试数据加载到内存中,并通过所述测试模块利用内存中的所述测试数据更新AB测试的目标业务功能模块,对所述目标业务功能模块进行AB测试;或者
若解析出的生效时机为指定时刻生效,则通过所述请求模块将所述测试数据存储至存储器中,并在到达所述指定时刻时,通过所述测试模块利用存储器中的所述测试数据更新AB测试的目标业务功能模块,对所述目标业务功能模块进行AB测试。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器加载以执行权利要求1至7任一项所述的应用测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911085213.8A CN110865937B (zh) | 2019-11-08 | 2019-11-08 | 一种应用测试方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911085213.8A CN110865937B (zh) | 2019-11-08 | 2019-11-08 | 一种应用测试方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110865937A true CN110865937A (zh) | 2020-03-06 |
CN110865937B CN110865937B (zh) | 2023-11-24 |
Family
ID=69653435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911085213.8A Active CN110865937B (zh) | 2019-11-08 | 2019-11-08 | 一种应用测试方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110865937B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111581087A (zh) * | 2020-04-29 | 2020-08-25 | 郑州阿帕斯数云信息科技有限公司 | 应用程序测试方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130042152A1 (en) * | 2011-08-09 | 2013-02-14 | Lukás Fryc | Declarative testing using dependency injection |
CN103678102A (zh) * | 2012-09-13 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 包含中间层的测试系统及程序测试方法 |
US20140359581A1 (en) * | 2013-05-29 | 2014-12-04 | Sap Ag | Database code testing framework |
CN107145437A (zh) * | 2016-03-01 | 2017-09-08 | 阿里巴巴集团控股有限公司 | 一种java注解测试方法及装置 |
CN107153601A (zh) * | 2016-03-02 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 单元性能测试方法及设备 |
CN109947643A (zh) * | 2019-03-01 | 2019-06-28 | 广州华多网络科技有限公司 | 一种基于a/b测试的实验方案的配置方法、装置及设备 |
-
2019
- 2019-11-08 CN CN201911085213.8A patent/CN110865937B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130042152A1 (en) * | 2011-08-09 | 2013-02-14 | Lukás Fryc | Declarative testing using dependency injection |
CN103678102A (zh) * | 2012-09-13 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 包含中间层的测试系统及程序测试方法 |
US20140359581A1 (en) * | 2013-05-29 | 2014-12-04 | Sap Ag | Database code testing framework |
CN107145437A (zh) * | 2016-03-01 | 2017-09-08 | 阿里巴巴集团控股有限公司 | 一种java注解测试方法及装置 |
CN107153601A (zh) * | 2016-03-02 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 单元性能测试方法及设备 |
CN109947643A (zh) * | 2019-03-01 | 2019-06-28 | 广州华多网络科技有限公司 | 一种基于a/b测试的实验方案的配置方法、装置及设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111581087A (zh) * | 2020-04-29 | 2020-08-25 | 郑州阿帕斯数云信息科技有限公司 | 应用程序测试方法和装置 |
CN111581087B (zh) * | 2020-04-29 | 2022-11-29 | 郑州阿帕斯数云信息科技有限公司 | 应用程序测试方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110865937B (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108255729B (zh) | 一种基于Unity平台的手机游戏自动化测试方法和系统 | |
CN104640608A (zh) | 基于用户的迷你游戏生成和发布 | |
CN110362483A (zh) | 性能数据采集方法、装置、设备及存储介质 | |
CN109966742B (zh) | 游戏运行中获取渲染性能数据的方法及装置 | |
CN110908880A (zh) | 埋点代码注入方法、事件上报方法及其相关设备 | |
WO2023221979A1 (zh) | 虚拟机器人的控制方法、装置、设备、存储介质及程序产品 | |
CN111111201A (zh) | 一种基于游戏的技能创建方法、装置、服务器及介质 | |
CN104809054A (zh) | 实现程序测试的方法和系统 | |
CN110865937A (zh) | 一种应用测试方法、装置和存储介质 | |
CN111290960B (zh) | 应用程序的流畅度检测方法、装置、终端及存储介质 | |
CN105512276A (zh) | 一种构建垃圾文件的方法、装置及电子设备 | |
CN112699046A (zh) | 应用程序测试方法及装置、电子设备和存储介质 | |
CN111104281B (zh) | 一种游戏性能监控方法、装置、系统及存储介质 | |
CN111128139B (zh) | 无侵入式语音测试方法及装置 | |
CN108153655A (zh) | 虚拟现实软件的绘制调用数量的检测方法及存储介质 | |
CN111459547B (zh) | 一种函数调用链路的展示方法和装置 | |
CN112463626B (zh) | 内存泄漏定位方法、装置、计算机设备及存储介质 | |
US8160845B2 (en) | Method for emulating operating system jitter | |
CN114185773A (zh) | 程序测试方法、装置、电子设备和计算机可读存储介质 | |
CN114071127A (zh) | 直播视频延迟的测试方法、装置、存储介质及电子设备 | |
CN113595814A (zh) | 消息延迟检测方法、装置、电子设备及存储介质 | |
CN117729253B (zh) | 一种聊天场景复现方法、系统、存储介质和电子设备 | |
CN113617022B (zh) | 一种加快游戏应用启动速度的方法及装置 | |
CN115242685B (zh) | 基于关联矩阵的回放测试方法、装置、设备及存储介质 | |
CN116074541B (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 |