程序组件的测试方法、装置、设备、介质及产品制造方法及图纸

技术编号:32823311 阅读:49 留言:0更新日期:2022-03-26 20:21
本公开提供了一种用于程序组件的测试方法、装置、设备、介质及产品。具体实现方案为:确定目标程序中待测试组件以及所述待测试组件对应的注册组件;基于所述待测试组件的组件信息,生成所述待测试组件的注册函数;将所述注册函数的调用接口插入到所述注册组件;启动所述注册组件,以供所述注册组件调用所述注册函数对所述待测试组件进行注册;检测所述待测试组件注册成功时,对所述待测试组件发起服务测试,获得测试结果。本公开的技术方案实现程序组件的自动测试。组件的自动测试。组件的自动测试。

【技术实现步骤摘要】
程序组件的测试方法、装置、设备、介质及产品


[0001]本公开涉及计算机领域,尤其涉及一种程序组件的测试方法、装置、设备、介质及产品。

技术介绍

[0002]应用程序,特别是安卓(Android)应用程序,可以由多个组件构成。在程序正常运行时,组件之间可以进行通信,以实现数据传输。在组件通信过程中,发送组件可以发送数据至接收组件。具体地,接收组件中的数据获取模块,例如getIntent()(全称:获取目标函数),getAction()(全称:获取动作),Intent.getExtra()(全称:目标.额外获取)等函数,可以获取接收组件发送的数据,利用接收的数据继续运行程序。
[0003]在现有技术中,数据获取模块实际会获取到空数据、异常数据或者畸形数据等错误数据或者接收组件被攻击等异常现象出现时,程序即进入崩溃状态。同时,程序进入崩溃状态之后,应用程序即会出现本地拒绝服务。由于不能及时确认程序的崩溃原因,会影响程序运行,导致程序稳定性降低。

技术实现思路

[0004]本公开提供了一种用于程序组件的测试方法、装置、设备、介质及产品。
[0005]根据本公开的第一方面,提供了一种程序组件的测试方法,包括:
[0006]确定目标程序中待测试组件以及所述待测试组件对应的注册组件;
[0007]基于所述待测试组件的组件信息,生成所述待测试组件的注册函数;
[0008]将所述注册函数的调用接口插入到所述注册组件;
[0009]启动所述注册组件,以供所述注册组件调用所述注册函数对所述待测试组件进行注册;
[0010]检测所述待测试组件注册成功时,对所述待测试组件发起服务测试,获得测试结果。
[0011]根据本公开的第二方面,提供了一种程序组件的测试装置,包括:
[0012]第一确定模块,用于确定目标程序中待测试组件以及所述待测试组件对应的注册组件;
[0013]函数生成单元,用于基于所述待测试组件的组件信息,生成所述待测试组件的注册函数;
[0014]函数注入单元,用于将所述注册函数的调用接口注入到所述注册组件;
[0015]注册启动单元,用于启动所述注册组件,以供所述注册组件调用所述注册函数对所述待测试组件进行注册;
[0016]组件测试单元,用于检测所述待测试组件注册成功时,对所述待测试组件发起服务测试,获得测试结果。
[0017]根据本公开的第三方面,提供了一种电子设备,包括:
[0018]至少一个处理器;以及
[0019]与所述至少一个处理器通信连接的存储器;其中,
[0020]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。
[0021]根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面所述的方法。
[0022]根据本公开的第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备执行第一方面所述的方法。
[0023]本公开实施例中,通过利用目标程序中的待测试组件的相关信息以及待测试组件的注册组件的相关信息,实现对待测试组件的注册函数,进而将注册函数注入到注册组件中,以便于在启动注册组件时,注册组件可以调用注册函数对待测试组件进行注册,注册成功之后,待测试组件即可以进入服务状态。从而可以对待测试组件发起服务测试,获得测试结果。通过自动对待测试组件进行注册以及测试,可以实现待测试组件的自动测试,以便于对待测试组件的使用状态及时进行监控,从而避免待测试组件出现崩溃现象,对待测试组件的安全性、可靠性进行有效提升。
[0024]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0025]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0026]图1是本公开实施例提供的一种程序组件的测试方法的一个实施例的流程图;
[0027]图2是本公开实施例提供的一种程序组件的测试方法的又一个实施例的流程图;
[0028]图3是本公开实施例提供的一种程序组件的测试方法的应用示例图;
[0029]图4是本公开实施例提供的一种程序组件的测试装置的一个实施例的结构示意图;
[0030]图5是用来实现本公开实施例的程序组件的测试方法的电子设备的框图。
具体实施方式
[0031]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0032]本公开的技术方案可以应用于安卓系统的组件测试场景中,通过对组件进行自动注册以及自动测试,可以对组件的异常状态进行及时检测,确保应用程序的安全性。
[0033]下面将结合附图对本公开的技术方案进行详细介绍。
[0034]如图1所示,为本公开实施例中一种程序组件的测试方法的一个实施例的流程图,该方法可以包括以下几个步骤:
[0035]101:确定目标程序中待测试组件以及待测试组件对应的注册组件。
[0036]目标程序可以指程序软件。在步骤101中的目标程序可以指未安装的程序安装包,具体可以以程序或者软件包的形式存在。
[0037]待测试组件可以为目标程序中的某个功能组件。目标程序可以运行于预定的软件系统中,例如安卓系统、IOS(Input Output System,输入输出系统)、LINUX(林纳克斯)系统等。
[0038]确定目标程序中待测试组件以及待测试组件对于的注册组件可以包括:对目标程序进行反编译,获得目标程序的反编译代码,从反编译代码中解析获得待测试组件以及待测试组件的注册组件。
[0039]在安卓系统中,待测测试组件为动态接收(receiver)组件时,数据接收异常可以导致目标软件崩溃。当目标程序被攻击时,动态接收组件接收的信息或者数据异常,目标软件也崩溃,不能正常运行。
[0040]待测试组件的注册组件可以为在目标程序安装时,将待测试组件在系统中进行注册,以确保目标程序能够正常运行的组件。
[0041]102:基于待测试组件的组件信息,生成待测试组件的注册函数。
[0042]待测试组件的组件信息可以包括组件名称、组件类型、组件隐藏属性等。注册函数可以为自动控制注册组件运行的函数,通过设置注册函数,可以对注册组件的正常运行起到积极本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种程序组件的测试方法,其特征在于,包括:确定目标程序中待测试组件以及所述待测试组件对应的注册组件;基于所述待测试组件的组件信息,生成所述待测试组件的注册函数;将所述注册函数注入到所述注册组件;启动所述注册组件,以供所述注册组件调用所述注册函数对所述待测试组件进行注册;检测所述待测试组件注册成功时,对所述待测试组件发起服务测试,获得测试结果。2.根据权利要求1所述的方法,其特征在于,所述将所述注册函数的调用接口插入到所述注册组件之后,还包括:基于所述待测试组件以及所述注册组件对所述目标程序重新打包,获得安装包;运行所述安装包,以在测试设备中重新安装所述目标程序。3.根据权利要求1所述的方法,其特征在于,所述启动所述注册组件,以供所述注册组件调用所述注册函数对所述待测试组件进行注册,包括:根据注册组件的注册信息,生成注册组件的注册启动指令;发送注册启动指令至所述测试设备,以供所述测试设备启动所述注册组件,控制所述注册组件调用所述注册函数,对所述待测试组件进行注册。4.根据权利要求1所述的方法,其特征在于,所述对所述待测试组件发起服务测试,获得服务测试结果,包括:检测所述待测试组件注册成功时,根据组件信息,生成待测试组件的测试数据;发送所述测试数据至所述待测试组件,对所述待测试组件进行服务测试,获得服务测试结果。5.根据权利要求4所述的方法,其特征在于,所述组件信息包括:意图过滤器信息和附加意图项的数据格式信息;所述根据组件信息,生成待测试组件的测试数据,包括:根据附加意图项的数据格式信息,确定所述待测试组件的崩溃格式;根据所述崩溃格式,按照所述意图过滤器信息,生成所述待测试组件的测试数据。6.根据权利要求1所述的方法,其特征在于,还包括:获取用户端发送的所述目标程序;所述目标程序由所述用户端检测用户输入获得;发送所述待测试组件的所述服务测试结果至所述用户端,以供所述用户端输出所述服务测试结果。7.根据权利要求1所述的方法,其特征在于,还包括:对所述目标程序进行反编译分析处理,获得所述目标程序的过程间控制流图;遍历所述过程间控制流图,若获取到预定接收方法,则确定所述目标程序包含所述待测试组件;分析所述预定接收方法,以获得所述待测试组件的组件名称以及意图过滤器信息;基于所述组件名称以及所述意图过滤器信息,确定所述待测试组件的组件信息。8.根据权利要求7所述的方法,其特征在于,还包括:根据所述待测试组件对应的外部数据的外部接收方法,确定所述待测试组件接收的外部数据的数据类型以及数据名称;
获取所述待测试组件的数据流,对所述数据流进行分析,以获得所述待测试组件中附加意图项的数据格式信息;所述基于所述组件名称以及所述意图过滤器信息,确定所述待测试组件的组件信息,包括:基于所述附加意图项的数据格式信息、所述组件名称以及所述意图过滤器信息,确定所述待测试组件的组件信息。9.根据权利要求8所述的方法,其特征在于,所述对所述数据流进行分析,以获得所述待测试组件中附加意图项的数据格式信息,包括:确定意图对象的方法为所述数据流追踪的源点;确定附加意图项的方法作为数据流跟踪的宿点;当所述源点至所述宿点之间存在数据流时,则根据所述宿点确定所述待测试组件的附加意图项;根据所述获取附加意图项的定义,确定所述附加意图项的数据格式信息。10.根据权利要求1所述的方法,其特征在于,还包括:分析所述待测试组件的反编译代码,获得所述注册组件的注册组件信息;所述待测试组件对应的注册组件的确定步骤包括:基于所述注册组件信息,从所述目标程序中确定所述待测试组件的所述注册组件。1...

【专利技术属性】
技术研发人员:徐韶华黎恒张羽辛黄玉俊王德南王乐雷迪李力源
申请(专利权)人:广西北投信创科技投资集团有限公司
类型:发明
国别省市:

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

1