应用程序的测试方法及装置制造方法及图纸

技术编号:18049804 阅读:19 留言:0更新日期:2018-05-26 07:55
本发明专利技术公开了一种应用程序的测试方法及装置。其中,该方法包括:运行目标应用程序,其中,目标应用程序是待测试的应用程序,目标应用程序中注入有目标代码,在运行目标应用程序的过程中产生了目标应用进程;监控目标应用进程的运行数据,其中,运行数据包括目标应用进程的正常退出数据和异常退出数据;根据正常退出数据和异常退出数据确定目标应用进程的稳定性参数;判断稳定性参数是否满足预设条件;在判断出稳定性参数不满足预设条件的情况下,从目标应用程序中删除目标代码。本发明专利技术解决了现有技术中测试应用程序的准确度低的技术问题。

【技术实现步骤摘要】
应用程序的测试方法及装置
本专利技术涉及应用程序领域,具体而言,涉及一种应用程序的测试方法及装置。
技术介绍
将一段能够实现某个特定功能的代码注入到某个应用程序中之后,运行该应用程序得到的应用进程具有该功能,举例来说,假设目标代码的作用是拦截广告,那么将目标代码注入到应用程序A中之后,在运行应用程序A时,就能够实现对广告的拦截。但是将目标代码注入到应用程序A之后,有可能会影响应用程序A运行的稳定性。因此,需要对应用程序A进行测试,以判断目标代码的注入对应用程序A的运行产生的影响的强弱。现有技术中主要根据信号处理器来监控注入的代码对应用进程的稳定性的影响。具体过程为:Android中的应用程序可以处于两种运行状态:native和Java虚拟机。Native和普通的Linux程序一样,而Java虚拟机则是运行的Java字节码。当native的代码运行发生错误时,内核会发送信号给进程,并调用进程的信号处理器来处理后默认的处理结果是进程异常退出。在Java虚拟机也有类似的机制,当发生异常而应用代码没有捕获时,虚拟机会调用线程的异常处理器来处理,默认处理结果也是进程异常退出。两种状态下,应用都可以注册自己处理器来替换默认处理器接收这类异常消息,从而可以在进程退出前做一些善后的工作:例如记录日志等。利用这个技术特点可以监控应用进程自身的异常情况。现有技术中方法主要的缺点是只能监控单个应用自身的异常退出,无法同时知道应用的正常退出和异常退出情况,因此测试应用程序的准确度低。针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种应用程序的测试方法及装置,以至少解决现有技术中测试应用程序的准确度低的技术问题。根据本专利技术实施例的一个方面,提供了一种应用程序的测试方法,包括:运行目标应用程序,其中,所述目标应用程序是待测试的应用程序,所述目标应用程序中注入有目标代码,在运行所述目标应用程序的过程中产生了目标应用进程;监控所述目标应用进程的运行数据,其中,所述运行数据包括所述目标应用进程的正常退出数据和异常退出数据;根据所述正常退出数据和所述异常退出数据确定所述目标应用进程的稳定性参数;判断所述稳定性参数是否满足预设条件;在判断出所述稳定性参数不满足所述预设条件的情况下,从所述目标应用程序中删除所述目标代码。根据本专利技术实施例的另一方面,还提供了一种应用程序的测试装置,包括:运行单元,用于运行目标应用程序,其中,所述目标应用程序是待测试的应用程序,所述目标应用程序中注入有目标代码,在运行所述目标应用程序的过程中产生了目标应用进程;监控单元,用于监控所述目标应用进程的运行数据,其中,所述运行数据包括所述目标应用进程的正常退出数据和异常退出数据;确定单元,用于根据所述正常退出数据和所述异常退出数据确定所述目标应用进程的稳定性参数;判断单元,用于判断所述稳定性参数是否满足预设条件;删除单元,用于在判断出所述稳定性参数不满足所述预设条件的情况下,从所述目标应用程序中删除所述目标代码。在本专利技术实施例中,在目标应用程序中注入有目标代码,运行目标应用程序产生目标应用进程,根据目标应用进程的正常退出数据和异常退出数据确定目标应用进程的稳定性参数,如果该稳定性参数满足预设条件,说明目标代码对目标应用进程的稳定性的影响较小;如果该稳定性参数不满足预设条件,说明目标代码对目标应用进程的稳定性的影响较大,在目标代码对目标应用进程的稳定性的影响较大的情况下,从目标应用程序中删除目标代码,由于能够同时获得应用进程的正常退出情况和异常退出情况,因此,这种测试应用程序的方式全面考虑到了注入的代码对应用程序运行的影响,达到了提高应用程序的测试的准确度的技术效果,进而解决了现有技术中测试应用程序的准确度低的技术问题。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是根据本专利技术实施例的硬件环境的示意图;图2是根据本专利技术实施例的应用程序的测试方法的流程图;图3是根据本专利技术实施例的应用异常退出的监控流程图;图4是根据本专利技术实施例的劫持的dlopen函数执行流程图;图5是根据本专利技术实施例的应用程序的测试装置的示意图;图6是根据本专利技术实施例的服务器的示意图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。技术术语解释:Logcat:Android系统的日志系统,外部工具可以通过logcat来读取系统运行期间的日志信息。墓碑文件:Android系统发生异常时,系统会记录异常现场的一些信息到文件,通常会保存一份到/data/system/dropbox目录下。debuggerd:debuggerd是Android系统的自带进程,当有应用进程发生异常而死亡时,debuggerd进程会读取crash进程的堆栈信息并存储墓碑文件中,同时将crash日志输出到logcat。binder服务对象:Android系统中跨进程通信的服务端对象,对应的另一方是binder客户对象。当服务对象死亡时,会发送通知给注册了死亡监听消息的binder客户对象。需要注意的是,本专利技术实施例中的应用进程退出包括应用进程异常退出和应用进程正常退出。根据本专利技术实施例,提供了一种应用程序的测试方法的实施例。可选地,在本实施例中,上述应用程序的测试方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本专利技术实施例的应用程序的测试方法可以由终端104来执行,也可以由服务器102来执行。终端104执行本专利技术实施例的应用程序的测试方法可以是由安装在其上的客户端来执行。在应用程序的测试方法由终端104来执行的情况下,该方法的过程如下:终端104的目标应用程序中注入有目标代码,运行目标应用程序产生目标应用进程,终端104监控目标应用进程的运行数据,运行数据包括目标应用进程正常退出数据和异常退出数据。终端104根据正常退出数据和异常退出数据确定目标应用进程的稳定性参数,判断稳定性参数是否满足预设条件。在终端104判断出稳定性参数不满足预设条件的情况下,说明在目本文档来自技高网
...
应用程序的测试方法及装置

【技术保护点】
一种应用程序的测试方法,其特征在于,包括:运行目标应用程序,其中,所述目标应用程序是待测试的应用程序,所述目标应用程序中注入有目标代码,在运行所述目标应用程序的过程中产生了目标应用进程;监控所述目标应用进程的运行数据,其中,所述运行数据包括所述目标应用进程的正常退出数据和异常退出数据;根据所述正常退出数据和所述异常退出数据确定所述目标应用进程的稳定性参数;判断所述稳定性参数是否满足预设条件;在判断出所述稳定性参数不满足所述预设条件的情况下,从所述目标应用程序中删除所述目标代码。

【技术特征摘要】
1.一种应用程序的测试方法,其特征在于,包括:运行目标应用程序,其中,所述目标应用程序是待测试的应用程序,所述目标应用程序中注入有目标代码,在运行所述目标应用程序的过程中产生了目标应用进程;监控所述目标应用进程的运行数据,其中,所述运行数据包括所述目标应用进程的正常退出数据和异常退出数据;根据所述正常退出数据和所述异常退出数据确定所述目标应用进程的稳定性参数;判断所述稳定性参数是否满足预设条件;在判断出所述稳定性参数不满足所述预设条件的情况下,从所述目标应用程序中删除所述目标代码。2.根据权利要求1所述的方法,其特征在于,所述运行数据包括第一退出数据,所述监控所述目标应用进程的运行数据包括:在所述目标应用进程中创建第一对象,其中,所述第一对象随所述目标应用进程的退出而被销毁;监控所述第一对象是否被销毁;在监控到所述第一对象被销毁时确定所述目标应用进程退出,其中,所述目标应用进程退出包括异常退出和正常退出;将所述目标应用进程退出时产生的数据作为所述第一退出数据。3.根据权利要求2所述的方法,其特征在于,监控所述第一对象是否被销毁包括:注册所述第一对象的第一通知,其中,所述第一通知用于指示所述第一对象所在的进程已退出;判断是否检测到所述第一通知;在检测到所述第一通知的情况下,确定所述第一对象被销毁。4.根据权利要求1所述的方法,其特征在于,所述监控所述目标应用进程的运行数据包括:获取所述目标应用进程的异常退出数据,其中,在所述目标应用进程异常退出的情况下,会产生所述异常退出数据;获取所述目标应用进程的第一退出数据,其中,在所述目标应用进程正常退出和异常退出两种情况下,都会产生所述第一退出数据;根据所述异常退出数据和所述第一退出数据获取所述正常退出数据。5.根据权利要求1所述的方法,其特征在于,所述监控所述目标应用进程的运行数据包括:根据读取到的墓碑文件目录判断所述墓碑文件目录是否发生了改变;如果所述墓碑文件目录发生了改变,则确定所述目标应用进程发生了异常退出;将所述目标应用进程发生异常退出时产生的运行数据作为所述异常退出数据。6.根据权利要求5所述的方法,其特征在于,根据读取到的墓碑文件目录判断所述墓碑文件目录是否发生了改变包括:创建目录修改事件监听器,其中,在创建所述目录修改事件监听器之后,如果有应用进程发生异常退出,系统会生成墓碑文件;判断所述系统是否生成了所述墓碑文件;在所述系统生成了所述墓碑文件的情况下,确定所述墓碑文件目录发生了改变,将所述目标应用进程发生异常退出时产生的运行数据作为所述异常退出数据包括:解析所述墓碑文件,得到所述异常退出数据。7.根据权利要求1所述的方法,其特征在于,所述监控所述目标应用进程的运行数据包括:运行调试程序,其中,运行所述调试程序的过程中产生了第一进程;检测所述第一进程是否创建了墓碑文件;在检测到所述第一进程创建了所述墓碑文件的情况下,确定所述目标应用进程发生了异常退出;将所述目标应用进程发生异常退出时产生的运行数据作为所述异常退出数据。8.一种应用程序的测试装置,其特征在于,包括:运行单元,用于运行目标应用程序,其中,所述目标应用程序是待测试的应用程序,所述目标应用程序中...

【专利技术属性】
技术研发人员:彭威陈奋黄泽丰王庆
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1