CN105512045A - 一种应用程序的测试方法、装置及测试设备 - Google Patents
一种应用程序的测试方法、装置及测试设备 Download PDFInfo
- Publication number
- CN105512045A CN105512045A CN201511000007.4A CN201511000007A CN105512045A CN 105512045 A CN105512045 A CN 105512045A CN 201511000007 A CN201511000007 A CN 201511000007A CN 105512045 A CN105512045 A CN 105512045A
- Authority
- CN
- China
- Prior art keywords
- application program
- intent
- tested
- input data
- analog input
- 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
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
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种应用程序的测试方法、装置及测试设备。该方法包括:在虚拟机系统中运行待测试应用程序时,捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent;当捕获到所述Intent后,根据所述Intent的Extra属性中的数据类型生成至少一个模拟Intent;将所述至少一个模拟Intent传递至所述待测试应用程序的Activity组件中;在预设时间范围内检测所述待测试应用程序的运行状况。采用本发明实施例,能够为待测试的应用程序构建更加精准的外部输入数据,从而能够更加深度的挖掘出该应用程序存在的与外部输入数据相关的漏洞。
Description
技术领域
本发明涉及软件测试技术领域,尤其涉及一种应用程序的测试方法、装置及测试设备。
背景技术
当前测试设备在对应用程序进行漏洞测试的过程中,通过与FUZZING测试技术相关的测试工具构建一些非常规的,或无效的,或随机的外部输入数据,并通过该应用程序提供的输入控件将所构建的外部输入数据提供给该应用程序,并观察该应用程序的运行情况以判定是否存在代码缺陷。若存在代码缺陷,即应用程序存在与外部输入数据相关的漏洞,会导致应用程序内存被破坏或拒绝服务或应用程序进程崩溃、不响应等后果。通过FUZZING测试工具构建的外部输入数据的方法以及构建结果的覆盖度及准确度会影响测试结果的覆盖度及准确度,然而,当前FUZZING测试工具构建的外部输入数据不够准确,且覆盖度不高,导致基于上述外部数据所产生的测试结果也不够准确,不能完全挖掘出应用程序与外部输入数据相关的漏洞。
发明内容
本发明实施例提供了一种应用程序的测试方法、装置及测试设备。能够为待测试的应用程序构建更加精准的外部输入数据,从而能够更加深度的挖掘出该应用程序存在的与外部输入数据相关的漏洞。
一方面,本发明的实施例提供了一种应用程序的测试方法,该方法可包括:
在虚拟机系统中运行待测试应用程序时,捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent;
当捕获到所述Intent后,根据所述Intent的Extra属性中的数据类型生成至少一个模拟Intent;
将所述至少一个模拟Intent传递至所述待测试应用程序的Activity组件中;
在预设时间范围内检测所述待测试应用程序的运行状况。
作为可选的实施例,所述捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent之前还包括:
模拟触发操作,以触发所述待测试应用程序调用Intent。
作为可选的实施例,所述当捕获到所述Intent后,根据所述Intent的Extra属性中的数据类型生成至少一个模拟Intent,包括:
当捕获到所述Intent后,解析出所述Intent的Extra属性中携带的输入数据的数据类型;
从预设的模拟输入数据库中调用与所述数据类型对应的模拟输入数据;
将所述调用的模拟输入数据封装为至少一个模拟Intent。
作为可选的实施例,所述从预设的模拟输入数据库中调用与所述数据类型对应的模拟输入数据之前还包括:
生成用于指示数据区间范围的调用脚本;
其中,所述从预设的模拟输入数据库中调用与所述数据类型对应的模拟输入数据包括:
从预设的模拟输入数据库中查找到与所述数据类型对应的模拟输入数据集;
按照所述调用脚本确定所述模拟输入数据集中的模拟输入数据区间;
调用所述模拟输入数据区间中的模拟输入数据。
作为可选的实施例,所述在预设时间范围内检测所述待测试应用程序的运行状况之后还包括:
统计引起所述待测试应用程序的运行状况异常的模拟Intent;
将所述统计的模拟Intent中的模拟输入数据添加至异常输入数据库中。
另一方面,本发明的实施例提供了一种应用程序的测试装置,该装置可包括:
捕获模块,用于在虚拟机系统中运行待测试应用程序时,捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent;
生成模块,用于当所述捕获模块捕获到所述Intent后,根据所述Intent的Extra属性中的数据类型生成至少一个模拟Intent;
传递模块,用于将所述生成模块生成的至少一个模拟Intent传递至所述待测试应用程序的Activity组件中;
检测模块,用于在预设时间范围内检测所述待测试应用程序的运行状况。
作为可选的实施例,还包括:
模拟模块,用于模拟触发操作,以触发所述待测试应用程序调用Intent。
作为可选的实施例,所述生成模块包括:
解析单元,用于当所述捕获模块捕获到所述Intent后,解析出所述Intent的Extra属性中携带的输入数据的数据类型;
调用单元,用于从预设的模拟输入数据库中调用与所述数据类型对应的模拟输入数据;
封装单元,用于将所述调用的模拟输入数据封装为至少一个模拟Intent。
作为可选的实施例,所述生成模块还包括:
生成单元,用于生成用于指示数据区间范围的调用脚本;
其中,所述调用单元包括:
查找子单元,用于从预设的模拟输入数据库中查找到与所述数据类型对应的模拟输入数据集;
确定子单元,用于按照所述生成单元生成的调用脚本确定所述模拟输入数据集中的模拟输入数据区间;
调用子单元,用于调用所述模拟输入数据区间中的模拟输入数据。
作为可选的实施例,还包括:
统计模块,用于在所述检测模块在预设时间范围内检测所述待测试应用程序的运行状况之后,统计引起所述待测试应用程序的运行状况异常的模拟Intent;
添加模块,用于将所述统计的模拟Intent中的模拟输入数据添加至异常输入数据库中。
又一方面,本发明的实施例提供了一种测试设备,包括存储器及处理器,其中,所述存储器中存储一组程序代码,且所述处理器调用所述存储器中存储的程序代码,用于执行以下操作:
在虚拟机系统中运行待测试应用程序时,触发所述待测试应用程序从其他应用程序中调用Intent;
当调用到所述Intent后,根据所述Intent中的数据类型生成至少一个模拟Intent;
将所述至少一个模拟Intent传递至所述待测试应用程序中的目标组件;
在预设时间范围内检测所述待测试应用程序的运行状况。
本发明实施例中,在虚拟机系统中运行待测试应用程序时,通过捕获其他应用程序向所述待测试应用程序的Activity组件传递的intent,可获取到运行过程中真实的Intent,基于该真实的Intent的Extra属性中所对应的数据类型,可生成至少一个模拟Intent。可将生成的模拟Intent传递至待测试应用程序中的Activity组件中,并可在预设时间范围内检测该待测试应用程序的运行状况,以检测通过Intent构造的外部输入数据是否会引起待测试应用程序的异常运行。通过上述方式,生成的模拟Intent相对于FUZZING测试工具生成的外部输入数据精准性更高。从而能够为待测试的应用程序构建更加精准的外部输入数据,并能够更加深度的挖掘出该应用程序存在的与外部输入数据相关的漏洞。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明中的一种应用程序的测试方法的一实施例的流程图;
图2是本发明中的一种应用程序的测试方法的另一实施例的流程图;
图3是本发明中的一种应用程序的测试装置的一实施例的结构示意图;
图4是本发明中的一种应用程序的测试装置的另一实施例的结构示意图;
图5是本发明中的一种测试设备的一实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面参考附图对本发明的实施例进行描述。其中,本发明实施例所述装置或设备包括能够安装虚拟机系统,并能够对应用程序通过安装的虚拟机系统进行测试的终端或设备。
参见图1,图1为本发明中的一种应用程序的测试方法的一实施例的流程图。该方法可包括以下步骤。
步骤S101,在虚拟机系统中运行待测试应用程序时,捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent。
在一个实施例中,通过在虚拟机系统中运行待测试应用程序,可捕获其他应用程序向该待测试应用程序的Activity组件传递的Intent。具体的,Activity组件(中文:活动组件)作为应用程序组件中的其中之一,主要负责用户交互。其中,Activity组件之间的通信通过Intent(中文:意图)传递。Intent中封装两个组件需要通信的信息或数据等。Intent存在以下几个属性:Component,Action,Category,Data,Type,Extra,Flag七个属性,其中Component属性用来指定需要启动的目标组件,Extra属性用于携带需要交换的数据。本发明实施例中,所捕获的Intent的目标组件即为待测试应用程序的Activity组件。可选的,可通过模拟触发操作,触发待测试应用程序向其他应用程序请求调用Intent,也可通过运行其他应用程序,捕获其他应用程序向待测试应用程序传递的Intent。举例说明,若待测试应用程序为电话应用程序,当用户在拨打电话时,需要查找通讯录中的联系人的电话号码,则测试设备的系统通过模拟点击或其他触发操作,触发电话应用程序的Activity组件请求调用通讯录应用程序中的电话号码,则通讯录应用程序通过Intent向电话应用改程序的Activity组件传递电话号码,则系统能够捕获到通讯录应用程序所传递的Intent;若待测试应用程序为通讯录应用程序,可捕获如电话应用程序或其他应用程序向通讯录应用程序中Activity组件传递的Intent,其中,该Intent的Extra属性中包括具体的联系人数据。
可选的,捕获其他应用程序传递给待测试应用程序的Intent的方式,可通过对待测试应用程序的安装包进行解包,在该安装包中加入监测或捕获Intent的回调函数或钩子函数等用于捕获Intent的函数,并可将加入上述函数的安装包重新打包为新的安装包后,可在虚拟机系统运行待测试应用程序的安装包的过程中,捕获其他应用程序传递给待测试应用程序的Intent方式。
步骤S102,当捕获到所述Intent后,根据所述Intent的Extra属性中的数据类型生成至少一个模拟Intent。
在一个实施例中,当捕获到Intent后,可根据Intent的Extra属性中的数据类型生成至少一个模拟Intent。具体的,通过判断Extra属性中的数据类型,则可生成与该数据类型相同类型的数据。数据类型可包括数字、字符串、状态值等,如计算机应用程序传递的Intent中包括具体计算数值的数据类型为数字,如电话号码、联系人等信息的数据类型为字符串,如反馈开关状态的数据类型为状态值等。通过不同的数据类型,可模拟不同的Intent对待测试应用程序进行测试。可选的,生成模拟Intent的方式可包括根据捕获的Intent的Extra属性中的数据类型,从历史引起待测试应用程序出现异常状况的特殊输入数据中筛选出与该数据类型相同的输入数据,并将该输入数据封装为模拟Intent,也可从预先建立的通用输入数据库中调用与满足该数据类型的通用输入数据,也可两者相结合,在此不作限定。
步骤S103,将所述至少一个模拟Intent传递至所述待测试应用程序的Activity组件中。
在一个实施例中,当生成至少一个模拟Intent后,可将生成的模拟Intent传递至待测试应用程序的Activity组件中。具体的,若生成了多个模拟Intent,可将多个模拟Intent依次通过adbshell命令传递至待测试应用程序的Activity组件中,以进一步检测该大测试应用程序是否出现异常运行状况。
步骤S104,在预设时间范围内检测所述待测试应用程序的运行状况。
在一个实施例中,当向待测试应用程序的Activity组件传递模拟Intent后,可在预设时间范围内检测该待测试应用程序的运行状况,即检测传递的模拟Intent在预设时间范围内,如5s内,是否导致待测试应用程序出现异常运行状况,如待测试应用程序崩溃、无响应、不能够正确显示Intent中所携带的信息等。若出现异常,可记录该导致异常状态的Intent,或可将其发送至后台设备已进行进一步的分析。若当前传递的Intent未导致待测试应用程序的运行状况,则可通过adbshell指令传递下一个模拟Intent。
可选的,当将所有的模拟Intent轮询后,可统计记录的导致待测试应用程序出现异常运行状况的所有模拟Intent,可将其中的输入数据添加至历史特殊输入数据中,或将其添加至针对特定数据类型的异常特殊输入数据中,以在今后的测试后,调用这些特殊的输入数据。
本发明实施例中,在虚拟机系统中运行待测试应用程序时,通过捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent,可获取到运行过程中真实的Intent,基于该真实的Intent的Extra属性中所对应的数据类型,可生成至少一个模拟Intent。可将生成的模拟Intent传递至待测试应用程序中的Activity组件中,并可在预设时间范围内检测该待测试应用程序的运行状况,以检测通过Intent构造的外部输入数据是否会引起待测试应用程序的异常运行。通过上述方式,生成的模拟Intent相对于FUZZING测试工具生成的外部输入数据精准性更高。从而能够为待测试的应用程序构建更加精准的外部输入数据,并能够更加深度的挖掘出该应用程序存在的与外部输入数据相关的漏洞。
参见图2,图2为本发明中的一种应用程序的测试方法的另一实施例的流程图。该方法可包括以下步骤。
步骤S201,在虚拟机系统中运行待测试应用程序时,模拟触发操作,以触发所述待测试应用程序调用Intent。
在一个实施例中,当在虚拟机系统中运行待测试应用程序时,可通过模拟触发操作,以触发该待测试应用程序从其他应用程序中调用Intent。具体的,可通过模拟点击的方式等作为触发操作,该触发操作可触发待测试应用程序从其他应用程序中调用Intent。可通过向其他应用程序发送调用Intent的请求,或将待测试应用程序生成的Intent发送至目标应用程序的目标组件中,以使该目标应用程序的目标组件接收到待测试应用程序的Intent后,后续生成的反馈待测试应用程序的Intent。
步骤S202,捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent。
在一个实施例中,可捕获其他应用程序向该待测试应用程序的Activity组件传递的Intent。具体的,可通过模拟触发操作,触发待测试应用程序向其他应用程序请求调用Intent,也可通过运行其他应用程序,捕获其他应用程序向待测试应用程序传递的Intent。举例说明,若待测试应用程序为电话应用程序,当用户在拨打电话时,需要查找通讯录中的联系人的电话号码,则测试设备的系统通过模拟点击或其他触发操作,触发电话应用程序的Activity组件请求调用通讯录应用程序中的电话号码,则通讯录应用程序通过Intent向电话应用改程序的Activity组件传递电话号码,则系统能够捕获到通讯录应用程序所传递的Intent;若待测试应用程序为通讯录应用程序,可捕获如电话应用程序或其他应用程序向通讯录应用程序中Activity组件传递的Intent,其中,该Intent的Extra属性中包括具体的联系人数据。
可选的,捕获其他应用程序传递给待测试应用程序的Intent的方式,可通过对待测试应用程序的安装包进行解包,在该安装包中加入监测或捕获Intent的回调函数或钩子函数等用于捕获Intent的函数,并可将加入上述函数的安装包重新打包为新的安装包后,可在虚拟机系统运行待测试应用程序的安装包的过程中,捕获其他应用程序传递给待测试应用程序的Intent方式。
步骤S203,当捕获到所述Intent后,解析出所述Intent的Extra属性中携带的输入数据的数据类型。
在一个实施例中,当捕获到Intent后,可解析出Intent的Extra属性中的数据类型。具体的,数据类型可包括数字、字符串、状态值等,如计算机应用程序传递的Intent中包括具体计算数值的数据类型为数字,如电话号码、联系人等信息的数据类型为字符串,如反馈开关状态的数据类型为状态值等。
步骤S204,生成用于指示数据区间范围的调用脚本。
在一个实施例中,可生成用于指示数据区间范围的调用脚本。具体的,该调用脚本可用于指示所需要的模拟输入数据的数据区间,如当预设的模拟输入数据集的数据范围为0~255时,调用脚本可指示调用该数据范围中的上半部分区间或下半部分区间。如调用脚本可指示调用的数据区间为0~122或123~255等。其中,针对不同的数据类型,可生成不同的调用脚本,或针对不同的应用程序,或针对不同的Intent类生成不同的调用脚本。需要说明的是,本发明实施例中可在解析出Intent的Extra属性中的数据类型后,生成其对应的调用脚本,也可在其他场景下生成调用脚本,如预先生成调用脚本,在解析出Intent的Extra属性中的数据类型后,根据所述数据类型获取对应的预先生成的调用脚本,或根据数据类型对预先生成的调用脚本进行适应修整后生成新的与数据类型对应的调用脚本,在此不作限定。
步骤S205,从预设的模拟输入数据库中查找到与所述数据类型对应的模拟输入数据集。
在一个实施例中,当解析出Intent的Extra属性中携带的输入数据的数据类型后,可从预设的模拟输入数据库中查找到与该数据类型对应的模拟输入数据集。其中,模拟输入数据库中可包括不同数据类型对应的模拟输入数据集,如若数据类型对应一个字节,则模拟输入数据集中可包括的数据值为0-255,若数据类型对应一个WORD值,则模拟输入数据集中可包括的数据值为0-6535等。可选的,模拟输入数据库中还可包括异常输入数据库,该异常输入数据库中包括了历史测试过程中导致应用程序的运行状况异常的输入数据,其中,异常输入数据库中的输入数据可按照数据类型进行分类,也可按照测试时间进行分类,在此不作限定。
步骤S206,按照所述调用脚本确定所述模拟输入数据集中的模拟输入数据区间。
在一个实施例中,通过生成调用脚本,可确定本次测试中需要的测试用例,可按照调用脚本所指示的数据范围确定模拟输入数据集中的模拟输入数据区间。其中,调用脚本所指示的区间可包括模拟输入数据集中的一部分、或全部、或边缘值、或其他特殊值等。
步骤S207,调用所述模拟输入数据区间中的模拟输入数据。
在一个实施例中,当确定模拟输入数据区间后,可调用模拟输入数据区间中的模拟输入数据,其中,模拟输入数据可作为本次测试的测试用例,以检测应用程序在该模拟输入数据的情况下,是否产生异常运行状况。
步骤S208,将所述调用的模拟输入数据封装为至少一个模拟Intent。
在一个实施例中,可将调用的至少一个模拟输入数据分别封装为一个模拟Intent。具体的,可将调用的模拟输入数据写到Intent的Extra属性值中,并通过配置其他与捕获的Intent的属性值相同的属性值,如设置的动作,目标对象相同等。从而通过该模拟输入数据封装出的Intent更接近用户在使用时产生的真实调用参数。
步骤S209,将所述至少一个模拟Intent传递至所述待测试应用程序的Activity组件中。
在一个实施例中,当生成至少一个模拟Intent后,可将生成的模拟Intent传递至待测试应用程序的Activity组件中。具体的,若生成了多个模拟Intent,可将多个模拟Intent依次通过adbshell命令传递至待测试应用程序的Activity组件中,以进一步检测该大测试应用程序是否出现异常运行状况。
步骤S210,在预设时间范围内检测所述待测试应用程序的运行状况。
在一个实施例中,当向待测试应用程序的Activity组件传递模拟Intent后,可在预设时间范围内检测该待测试应用程序的运行状况,即检测传递的模拟Intent在预设时间范围内,如5s内,是否导致待测试应用程序出现异常运行状况,如待测试应用程序崩溃、无响应、不能够正确显示Intent中所携带的信息等。若出现异常,可记录该导致异常状态的Intent,或可将其发送至后台设备已进行进一步的分析。若当前传递的Intent未导致待测试应用程序的运行状况,则可通过adbshell指令传递下一个模拟Intent。
步骤S211,统计引起所述待测试应用程序的运行状况异常的模拟Intent。
步骤S212,将所述统计的模拟Intent中的模拟输入数据添加至异常输入数据库中。
在一个实施例中,当将所有的模拟Intent轮询后,可统计记录的导致待测试应用程序出现异常运行状况的所有模拟Intent,可将该类Intent直接打包发送至后台服务器中以使测试人员分析出现异常状况的原因,也可在此同时将统计出的Intent加入异常输入数据库中。其中,该异常输入数据库中可包括历史测试过程中导致应用程序的运行状况异常的输入数据,异常输入数据库中的输入数据可按照数据类型进行分类,也可按照测试时间进行分类,在此不作限定。
本发明实施例中,在虚拟机系统中运行待测试应用程序时,通过捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent,可获取到运行过程中真实的Intent,基于该真实的Intent的Extra属性中所对应的数据类型,可生成至少一个模拟Intent。可将生成的模拟Intent传递至待测试应用程序中的Activity组件中,并可在预设时间范围内检测该待测试应用程序的运行状况,以检测通过Intent构造的外部输入数据是否会引起待测试应用程序的异常运行。通过上述方式,生成的模拟Intent相对于FUZZING测试工具生成的外部输入数据精准性更高。从而能够为待测试的应用程序构建更加精准的外部输入数据,并能够更加深度的挖掘出该应用程序存在的与外部输入数据相关的漏洞。
参见图3,图3是本发明中的一种应用程序的测试装置的一实施例的结构示意图。该装置可包括:捕获模块301、生成模块302、传递模块303、检测模块304。
其中,捕获模块301,用于在虚拟机系统中运行待测试应用程序时,捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent。
在一个实施例中,通过在虚拟机系统中运行待测试应用程序,捕获模块301可捕获其他应用程序向该待测试应用程序的Activity组件传递的Intent。具体的,Activity组件(中文:活动组件)作为应用程序组件中的其中之一,主要负责用户交互。其中,Activity组件之间的通信通过Intent(中文:意图)传递。Intent中封装两个组件需要通信的信息或数据等。Intent存在以下几个属性:Component,Action,Category,Data,Type,Extra,Flag七个属性,其中Component属性用来指定需要启动的目标组件,Extra属性用于携带需要交换的数据。本发明实施例中,所捕获的Intent的目标组件即为待测试应用程序的Activity组件。可选的,可通过模拟触发操作,触发待测试应用程序向其他应用程序请求调用Intent,也可通过运行其他应用程序,捕获其他应用程序向待测试应用程序传递的Intent。举例说明,若待测试应用程序为电话应用程序,当用户在拨打电话时,需要查找通讯录中的联系人的电话号码,则测试设备的系统通过模拟点击或其他触发操作,触发电话应用程序的Activity组件请求调用通讯录应用程序中的电话号码,则通讯录应用程序通过Intent向电话应用改程序的Activity组件传递电话号码,则系统能够捕获到通讯录应用程序所传递的Intent;若待测试应用程序为通讯录应用程序,可捕获如电话应用程序或其他应用程序向通讯录应用程序中Activity组件传递的Intent,其中,该Intent的Extra属性中包括具体的联系人数据。
可选的,捕获其他应用程序传递给待测试应用程序的Intent的方式,可通过对待测试应用程序的安装包进行解包,在该安装包中加入监测或捕获Intent的回调函数或钩子函数等用于捕获Intent的函数,并可将加入上述函数的安装包重新打包为新的安装包后,可在虚拟机系统运行待测试应用程序的安装包的过程中,捕获其他应用程序传递给待测试应用程序的Intent方式。
生成模块302,用于当所述捕获模块捕获到所述Intent后,根据所述Intent的Extra属性中的数据类型生成至少一个模拟Intent。
在一个实施例中,当捕获模块301捕获到Intent后,生成模块302可根据Intent的Extra属性中的数据类型生成至少一个模拟Intent。具体的,通过判断Extra属性中的数据类型,则可生成与该数据类型相同类型的数据。数据类型可包括数字、字符串、状态值等,如计算机应用程序传递的Intent中包括具体计算数值的数据类型为数字,如电话号码、联系人等信息的数据类型为字符串,如反馈开关状态的数据类型为状态值等。通过不同的数据类型,可模拟不同的Intent对待测试应用程序进行测试。可选的,生成模拟Intent的方式可包括根据捕获的Intent的Extra属性中的数据类型,从历史引起待测试应用程序出现异常状况的特殊输入数据中筛选出与该数据类型相同的输入数据,并将该输入数据封装为模拟Intent,也可从预先建立的通用输入数据库中调用与满足该数据类型的通用输入数据,也可两者相结合,在此不作限定。
传递模块303,用于将所述生成模块生成的至少一个模拟Intent传递至所述待测试应用程序的Activity组件中。
在一个实施例中,当生成模块302生成至少一个模拟Intent后,传递模块303可将生成的模拟Intent传递至待测试应用程序的Activity组件中。具体的,若生成了多个模拟Intent,可将多个模拟Intent依次通过adbshell命令传递至待测试应用程序的Activity组件中,以进一步检测该大测试应用程序是否出现异常运行状况。
检测模块304,用于在预设时间范围内检测所述待测试应用程序的运行状况。
在一个实施例中,当传递模块303向待测试应用程序的Activity组件传递模拟Intent后,检测模块304可在预设时间范围内检测该待测试应用程序的运行状况,即检测传递的模拟Intent在预设时间范围内,如5s内,是否导致待测试应用程序出现异常运行状况,如待测试应用程序崩溃、无响应、不能够正确显示Intent中所携带的信息等。若出现异常,可记录该导致异常状态的Intent,或可将其发送至后台设备已进行进一步的分析。若当前传递的Intent未导致待测试应用程序的运行状况,则可通过adbshell指令传递下一个模拟Intent。
可选的,当将所有的模拟Intent轮询后,可统计记录的导致待测试应用程序出现异常运行状况的所有模拟Intent,可将其中的输入数据添加至历史特殊输入数据中,或将其添加至针对特定数据类型的异常特殊输入数据中,以在今后的测试后,调用这些特殊的输入数据。
本发明实施例中,在虚拟机系统中运行待测试应用程序时,通过捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent,可获取到运行过程中真实的Intent,基于该真实的Intent的Extra属性中所对应的数据类型,可生成至少一个模拟Intent。可将生成的模拟Intent传递至待测试应用程序中的Activity组件中,并可在预设时间范围内检测该待测试应用程序的运行状况,以检测通过Intent构造的外部输入数据是否会引起待测试应用程序的异常运行。通过上述方式,生成的模拟Intent相对于FUZZING测试工具生成的外部输入数据精准性更高。从而能够为待测试的应用程序构建更加精准的外部输入数据,并能够更加深度的挖掘出该应用程序存在的与外部输入数据相关的漏洞。
参见图4,图4是本发明中的一种应用程序的测试装置的另一实施例的结构示意图。该装置可包括:模拟模块401、捕获模块402、生成模块403、传递模块404、检测模块405、统计模块406、添加模块407。
其中,模拟模块401,用于模拟触发操作,以触发所述待测试应用程序调用所述Intent。
在一个实施例中,当在虚拟机系统中运行待测试应用程序时,可通过模拟模块401模拟触发操作,以触发该待测试应用程序从其他应用程序中调用Intent。具体的,可通过模拟点击的方式等作为触发操作,该触发操作可触发待测试应用程序从其他应用程序中调用Intent。可通过向其他应用程序发送调用Intent的请求,或将待测试应用程序生成的Intent发送至目标应用程序的目标组件中,以使该目标应用程序的目标组件接收到待测试应用程序的Intent后,后续生成的反馈待测试应用程序的Intent。
捕获模块402,用于在虚拟机系统中运行待测试应用程序时,捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent。
在一个实施例中,捕获模块402可捕获其他应用程序向该待测试应用程序的Activity组件传递的Intent。具体的,可通过模拟触发操作,触发待测试应用程序向其他应用程序请求调用Intent,也可通过运行其他应用程序,捕获其他应用程序向待测试应用程序传递的Intent。举例说明,若待测试应用程序为电话应用程序,当用户在拨打电话时,需要查找通讯录中的联系人的电话号码,则测试设备的系统通过模拟点击或其他触发操作,触发电话应用程序的Activity组件请求调用通讯录应用程序中的电话号码,则通讯录应用程序通过Intent向电话应用改程序的Activity组件传递电话号码,则系统能够捕获到通讯录应用程序所传递的Intent;若待测试应用程序为通讯录应用程序,可捕获如电话应用程序或其他应用程序向通讯录应用程序中Activity组件传递的Intent,其中,该Intent的Extra属性中包括具体的联系人数据。
可选的,捕获其他应用程序传递给待测试应用程序的Intent的方式,可通过对待测试应用程序的安装包进行解包,在该安装包中加入监测或捕获Intent的回调函数或钩子函数等用于捕获Intent的函数,并可将加入上述函数的安装包重新打包为新的安装包后,可在虚拟机系统运行待测试应用程序的安装包的过程中,捕获其他应用程序传递给待测试应用程序的Intent方式。
生成模块403,用于当所述捕获模块402捕获到所述Intent后,根据所述Intent的Extra属性中的数据类型生成至少一个模拟Intent。
本发明实施例中,生成模块403可包括以下单元:
解析单元4031,用于当所述捕获模块402捕获到所述Intent后,解析出所述Intent的Extra属性中携带的输入数据的数据类型;
在一个实施例中,当捕获模块402捕获到Intent后,解析单元4031可解析出Intent的Extra属性中的数据类型。具体的,数据类型可包括数字、字符串、状态值等,如计算机应用程序传递的Intent中包括具体计算数值的数据类型为数字,如电话号码、联系人等信息的数据类型为字符串,如反馈开关状态的数据类型为状态值等。
调用单元4032,用于从预设的模拟输入数据库中调用与所述数据类型对应的模拟输入数据;
可选的,生成模块403还可包括生成单元:
生成单元,用于生成用于指示数据区间范围的调用脚本。
在一个实施例中,可生成用于指示数据区间范围的调用脚本。具体的,该调用脚本可用于指示所需要的模拟输入数据的数据区间,如当预设的模拟输入数据集的数据范围为0~255时,调用脚本可指示调用该数据范围中的上半部分区间或下半部分区间。如调用脚本可指示调用的数据区间为0~122或123~255等。其中,针对不同的数据类型,可生成不同的调用脚本,或针对不同的应用程序,或针对不同的Intent类生成不同的调用脚本。需要说明的是,本发明实施例中可在解析出Intent的Extra属性中的数据类型后,生成其对应的调用脚本,也可在其他场景下生成调用脚本,如预先生成调用脚本,在解析出Intent的Extra属性中的数据类型后,根据所述数据类型获取对应的预先生成的调用脚本,或根据数据类型对预先生成的调用脚本进行适应修整后生成新的与数据类型对应的调用脚本,在此不作限定。
在此调用单元4032还可包括以下子单元:
查找子单元,用于从预设的模拟输入数据库中查找到与所述数据类型对应的模拟输入数据集;
在一个实施例中,当解析出Intent的Extra属性中携带的输入数据的数据类型后,查找子单元可从预设的模拟输入数据库中查找到与该数据类型对应的模拟输入数据集。其中,模拟输入数据库中可包括不同数据类型对应的模拟输入数据集,如若数据类型对应一个字节,则模拟输入数据集中可包括的数据值为0-255,若数据类型对应一个WORD值,则模拟输入数据集中可包括的数据值为0-6535等。可选的,模拟输入数据库中还可包括异常输入数据库,该异常输入数据库中包括了历史测试过程中导致应用程序的运行状况异常的输入数据,其中,异常输入数据库中的输入数据可按照数据类型进行分类,也可按照测试时间进行分类,在此不作限定。
确定子单元,用于按照所述生成单元生成的调用脚本确定所述模拟输入数据集中的模拟输入数据区间;
在一个实施例中,通过生成调用脚本,确定子单元可确定本次测试中需要的测试用例,可按照调用脚本所指示的数据范围确定模拟输入数据集中的模拟输入数据区间。其中,调用脚本所指示的区间可包括模拟输入数据集中的一部分、或全部、或边缘值、或其他特殊值等。
调用子单元,用于调用所述模拟输入数据区间中的模拟输入数据。
在一个实施例中,当确定子单元确定模拟输入数据区间后,调用子单元可调用模拟输入数据区间中的模拟输入数据,其中,模拟输入数据可作为本次测试的测试用例,以检测应用程序在该模拟输入数据的情况下,是否产生异常运行状况。
封装单元4033,用于将所述调用的模拟输入数据封装为至少一个模拟Intent。
在一个实施例中,封装单元4033可将调用的至少一个模拟输入数据分别封装为一个模拟Intent。具体的,可将调用的模拟输入数据写到Intent的Extra属性值中,并通过配置其他与捕获的Intent的属性值相同的属性值,如设置的动作,目标对象相同等。从而通过该模拟输入数据封装出的Intent更接近用户在使用时产生的真实调用参数。
传递模块404,用于将所述生成模块生成的至少一个模拟Intent传递至所述待测试应用程序的Activity组件中。
在一个实施例中,当生成模块403通过上述单元生成至少一个模拟Intent后,传递模块404可将生成的模拟Intent传递至待测试应用程序的Activity组件中。具体的,若生成了多个模拟Intent,可将多个模拟Intent依次通过adbshell命令传递至待测试应用程序的Activity组件中,以进一步检测该大测试应用程序是否出现异常运行状况。
检测模块405,用于在预设时间范围内检测所述待测试应用程序的运行状况。
在一个实施例中,当传递模块404向待测试应用程序的Activity组件传递模拟Intent后,检测模块405可在预设时间范围内检测该待测试应用程序的运行状况,即检测传递的模拟Intent在预设时间范围内,如5s内,是否导致待测试应用程序出现异常运行状况,如待测试应用程序崩溃、无响应、不能够正确显示Intent中所携带的信息等。若出现异常,可记录该导致异常状态的Intent,或可将其发送至后台设备已进行进一步的分析。若当前传递的Intent未导致待测试应用程序的运行状况,则可通过adbshell指令传递下一个模拟Intent。
统计模块406,用于在所述检测模块在预设时间范围内检测所述待测试应用程序的运行状况之后,统计引起所述待测试应用程序的运行状况异常的模拟Intent。
添加模块407,用于将所述统计的模拟Intent中的模拟输入数据添加至异常输入数据库中。
在一个实施例中,当将所有的模拟Intent轮询后,统计模块406可统计记录的导致待测试应用程序出现异常运行状况的所有模拟Intent,可将该类Intent直接打包发送至后台服务器中以使测试人员分析出现异常状况的原因,也可通过添加模块407在此同时将统计出的Intent加入异常输入数据库中。其中,该异常输入数据库中可包括历史测试过程中导致应用程序的运行状况异常的输入数据,异常输入数据库中的输入数据可按照数据类型进行分类,也可按照测试时间进行分类,在此不作限定。
本发明实施例中,在虚拟机系统中运行待测试应用程序时,通过捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent,可获取到运行过程中真实的Intent,基于该真实的Intent的Extra属性中所对应的数据类型,可生成至少一个模拟Intent。可将生成的模拟Intent传递至待测试应用程序中的Activity组件中,并可在预设时间范围内检测该待测试应用程序的运行状况,以检测通过Intent构造的外部输入数据是否会引起待测试应用程序的异常运行。通过上述方式,生成的模拟Intent相对于FUZZING测试工具生成的外部输入数据精准性更高。从而能够为待测试的应用程序构建更加精准的外部输入数据,并能够更加深度的挖掘出该应用程序存在的与外部输入数据相关的漏洞。
参见图5,是本发明中的一种终端的一实施例的结构示意图。该终端可以包括:至少一个处理器501,如CPU,至少一个用户接口503,存储器504以及至少一个通信总线502。其中,通信总线502用于实现这些组件之间的连接通信,用户接口503可以包括显示屏(Display)及键盘(Keyboard),可选的,用户接口503还可以包括标准的有线接口及无线接口,存储器504可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),如至少一个磁盘存储器,可选的,存储器504还可以是至少一个位于远离前述处理器501的存储装置。其中,存储器504中存储一组程序代码,且处理器501调用存储器504中存储的程序代码,用于执行以下操作:
在虚拟机系统中运行待测试应用程序时,捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent;
当捕获到所述Intent后,根据所述Intent的Extra属性中的数据类型生成至少一个模拟Intent;
将所述至少一个模拟Intent传递至所述待测试应用程序的Activity组件中;
在预设时间范围内检测所述待测试应用程序的运行状况。
作为可选的实施例,所述捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent之前,处理器501还调用存储器504中存储的程序代码以执行以下操作:
模拟触发操作,以触发所述待测试应用程序调用所述Intent。
作为可选的实施例,所述当捕获到所述Intent后,根据所述Intent的Extra属性中的数据类型生成至少一个模拟Intent,包括:
当捕获到所述Intent后,解析出所述Intent的Extra属性中携带的输入数据的数据类型;
从预设的模拟输入数据库中调用与所述数据类型对应的模拟输入数据;
将所述调用的模拟输入数据封装为至少一个模拟Intent。
作为可选的实施例,所述从预设的模拟输入数据库中调用与所述数据类型对应的模拟输入数据之前,处理器501还调用存储器504中存储的程序代码以执行以下操作:
生成用于指示数据区间范围的调用脚本;
其中,所述从预设的模拟输入数据库中调用与所述数据类型对应的模拟输入数据包括:
从预设的模拟输入数据库中查找到与所述数据类型对应的模拟输入数据集;
按照所述调用脚本确定所述模拟输入数据集中的模拟输入数据区间;
调用所述模拟输入数据区间中的模拟输入数据。
作为可选的实施例,所述在预设时间范围内检测所述待测试应用程序的运行状况之后,处理器501还调用存储器504中存储的程序代码以执行以下操作:
统计引起所述待测试应用程序的运行状况异常的模拟Intent;
将所述统计的模拟Intent中的模拟输入数据添加至异常输入数据库中。
本发明实施例中,在虚拟机系统中运行待测试应用程序时,通过捕获其他应用程序向所述待测试应用程序的Activity组件传递的intent,可获取到运行过程中真实的Intent,基于该真实的Intent的Extra属性中所对应的数据类型,可生成至少一个模拟Intent。可将生成的模拟Intent传递至待测试应用程序中的Activity组件中,并可在预设时间范围内检测该待测试应用程序的运行状况,以检测通过Intent构造的外部输入数据是否会引起待测试应用程序的异常运行。通过上述方式,生成的模拟Intent相对于FUZZING测试工具生成的外部输入数据精准性更高。从而能够为待测试的应用程序构建更加精准的外部输入数据,并能够更加深度的挖掘出该应用程序存在的与外部输入数据相关的漏洞。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例终端或设备中的单元或子单元可以根据实际需要进行合并、划分和删减。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。
Claims (10)
1.一种应用程序的测试方法,其特征在于,包括:
在虚拟机系统中运行待测试应用程序时,捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent;
当捕获到所述Intent后,根据所述Intent的Extra属性中的数据类型生成至少一个模拟Intent;
将所述至少一个模拟Intent传递至所述待测试应用程序的Activity组件中;
在预设时间范围内检测所述待测试应用程序的运行状况。
2.如权利要求1所述方法,其特征在于,所述捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent之前还包括:
模拟触发操作,以触发所述待测试应用程序调用Intent。
3.如权利要求1或2所述方法,其特征在于,所述当捕获到所述Intent后,根据所述Intent的Extra属性中的数据类型生成至少一个模拟Intent,包括:
当捕获到所述Intent后,解析出所述Intent的Extra属性中携带的输入数据的数据类型;
从预设的模拟输入数据库中调用与所述数据类型对应的模拟输入数据;
将所述调用的模拟输入数据封装为至少一个模拟Intent。
4.如权利要求3所述方法,其特征在于,所述从预设的模拟输入数据库中调用与所述数据类型对应的模拟输入数据之前还包括:
生成用于指示数据区间范围的调用脚本;
所述从预设的模拟输入数据库中调用与所述数据类型对应的模拟输入数据包括:
从预设的模拟输入数据库中查找到与所述数据类型对应的模拟输入数据集;
按照所述调用脚本确定所述模拟输入数据集中的模拟输入数据区间;
调用所述模拟输入数据区间中的模拟输入数据。
5.如权利要求4所述方法,其特征在于,所述在预设时间范围内检测所述待测试应用程序的运行状况之后还包括:
统计引起所述待测试应用程序的运行状况异常的模拟Intent;
将所述统计的模拟Intent中的模拟输入数据添加至异常输入数据库中。
6.一种应用程序的测试装置,其特征在于,包括:
捕获模块,用于在虚拟机系统中运行待测试应用程序时,捕获其他应用程序向所述待测试应用程序的Activity组件传递的Intent;
生成模块,用于当所述捕获模块捕获到所述Intent后,根据所述Intent的Extra属性中的数据类型生成至少一个模拟Intent;
传递模块,用于将所述生成模块生成的至少一个模拟Intent传递至所述待测试应用程序的Activity组件中;
检测模块,用于在预设时间范围内检测所述待测试应用程序的运行状况。
7.如权利要求6所述装置,其特征在于,还包括:
模拟模块,用于模拟触发操作,以触发所述待测试应用程序调用Intent。
8.如权利要求6或7所述装置,其特征在于,所述生成模块包括:
解析单元,用于当所述捕获模块捕获到所述Intent后,解析出所述Intent的Extra属性中携带的输入数据的数据类型;
调用单元,用于从预设的模拟输入数据库中调用与所述数据类型对应的模拟输入数据;
封装单元,用于将所述调用的模拟输入数据封装为至少一个模拟Intent。
9.如权利要求8所述装置,其特征在于,所述生成模块还包括:
生成单元,用于生成用于指示数据区间范围的调用脚本;
所述调用单元包括:
查找子单元,用于从预设的模拟输入数据库中查找到与所述数据类型对应的模拟输入数据集;
确定子单元,用于按照所述生成单元生成的调用脚本确定所述模拟输入数据集中的模拟输入数据区间;
调用子单元,用于调用所述模拟输入数据区间中的模拟输入数据。
10.如权利要求9所述装置,其特征在于,还包括:
统计模块,用于在所述检测模块在预设时间范围内检测所述待测试应用程序的运行状况之后,统计引起所述待测试应用程序的运行状况异常的模拟Intent;
添加模块,用于将所述统计的模拟Intent中的模拟输入数据添加至异常输入数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511000007.4A CN105512045B (zh) | 2015-12-24 | 2015-12-24 | 一种应用程序的测试方法、装置及测试设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511000007.4A CN105512045B (zh) | 2015-12-24 | 2015-12-24 | 一种应用程序的测试方法、装置及测试设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105512045A true CN105512045A (zh) | 2016-04-20 |
CN105512045B CN105512045B (zh) | 2018-10-09 |
Family
ID=55720046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511000007.4A Active CN105512045B (zh) | 2015-12-24 | 2015-12-24 | 一种应用程序的测试方法、装置及测试设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105512045B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201811A (zh) * | 2016-07-06 | 2016-12-07 | 青岛海信宽带多媒体技术有限公司 | 应用程序的故障恢复方法和终端 |
CN106228071A (zh) * | 2016-07-20 | 2016-12-14 | 北京奇虎科技有限公司 | 一种测试编解码组件的方法和装置 |
CN106357670A (zh) * | 2016-10-17 | 2017-01-25 | 成都知道创宇信息技术有限公司 | 基于模拟器的安卓应用服务端Web漏洞检测方法 |
CN107402879A (zh) * | 2016-05-20 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 确定应用之间调用关系的方法及装置 |
CN108260003A (zh) * | 2017-12-28 | 2018-07-06 | 深圳Tcl新技术有限公司 | 习惯数据收集方法、智能终端以及可读存储介质 |
CN108989350A (zh) * | 2018-08-31 | 2018-12-11 | 北京梆梆安全科技有限公司 | 一种检测拒绝服务漏洞的方法、装置及设备 |
CN109522146A (zh) * | 2018-11-15 | 2019-03-26 | 腾讯音乐娱乐科技(深圳)有限公司 | 对客户端进行异常测试的方法、装置及存储介质 |
CN112162719A (zh) * | 2020-10-28 | 2021-01-01 | Oppo(重庆)智能科技有限公司 | 显示内容渲染方法及装置、计算机可读介质和电子设备 |
CN113918447A (zh) * | 2021-09-03 | 2022-01-11 | 荣耀终端有限公司 | 一种应用测试方法及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103996007A (zh) * | 2014-05-29 | 2014-08-20 | 诸葛建伟 | Android应用权限泄露漏洞的测试方法及系统 |
CN104484607A (zh) * | 2014-12-16 | 2015-04-01 | 上海交通大学 | Android应用程序安全性测试的通用方法及系统 |
KR20150069455A (ko) * | 2013-12-13 | 2015-06-23 | 경북대학교 산학협력단 | 테스트 시나리오 생성 장치, 그를 포함하는 애플리케이션 테스트 시스템, 테스트 시나리오 생성 방법, 및 그 기록매체 |
CN104933362A (zh) * | 2015-06-15 | 2015-09-23 | 福州大学 | Android应用软件API误用类漏洞自动化检测方法 |
-
2015
- 2015-12-24 CN CN201511000007.4A patent/CN105512045B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150069455A (ko) * | 2013-12-13 | 2015-06-23 | 경북대학교 산학협력단 | 테스트 시나리오 생성 장치, 그를 포함하는 애플리케이션 테스트 시스템, 테스트 시나리오 생성 방법, 및 그 기록매체 |
CN103996007A (zh) * | 2014-05-29 | 2014-08-20 | 诸葛建伟 | Android应用权限泄露漏洞的测试方法及系统 |
CN104484607A (zh) * | 2014-12-16 | 2015-04-01 | 上海交通大学 | Android应用程序安全性测试的通用方法及系统 |
CN104933362A (zh) * | 2015-06-15 | 2015-09-23 | 福州大学 | Android应用软件API误用类漏洞自动化检测方法 |
Non-Patent Citations (1)
Title |
---|
傅建明等: "Android组件间通信的安全缺陷静态检测方法", 《华中科技大学学报(自然科学版)》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107402879B (zh) * | 2016-05-20 | 2020-11-06 | 阿里巴巴集团控股有限公司 | 确定应用之间调用关系的方法及装置 |
CN107402879A (zh) * | 2016-05-20 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 确定应用之间调用关系的方法及装置 |
CN106201811B (zh) * | 2016-07-06 | 2019-03-26 | 青岛海信宽带多媒体技术有限公司 | 应用程序的故障恢复方法和终端 |
CN106201811A (zh) * | 2016-07-06 | 2016-12-07 | 青岛海信宽带多媒体技术有限公司 | 应用程序的故障恢复方法和终端 |
CN106228071A (zh) * | 2016-07-20 | 2016-12-14 | 北京奇虎科技有限公司 | 一种测试编解码组件的方法和装置 |
CN106228071B (zh) * | 2016-07-20 | 2019-02-22 | 北京奇虎科技有限公司 | 一种测试编解码组件的方法和装置 |
CN106357670A (zh) * | 2016-10-17 | 2017-01-25 | 成都知道创宇信息技术有限公司 | 基于模拟器的安卓应用服务端Web漏洞检测方法 |
CN108260003A (zh) * | 2017-12-28 | 2018-07-06 | 深圳Tcl新技术有限公司 | 习惯数据收集方法、智能终端以及可读存储介质 |
CN108989350A (zh) * | 2018-08-31 | 2018-12-11 | 北京梆梆安全科技有限公司 | 一种检测拒绝服务漏洞的方法、装置及设备 |
CN108989350B (zh) * | 2018-08-31 | 2021-03-19 | 北京梆梆安全科技有限公司 | 一种检测拒绝服务漏洞的方法、装置及设备 |
CN109522146A (zh) * | 2018-11-15 | 2019-03-26 | 腾讯音乐娱乐科技(深圳)有限公司 | 对客户端进行异常测试的方法、装置及存储介质 |
CN112162719A (zh) * | 2020-10-28 | 2021-01-01 | Oppo(重庆)智能科技有限公司 | 显示内容渲染方法及装置、计算机可读介质和电子设备 |
CN113918447A (zh) * | 2021-09-03 | 2022-01-11 | 荣耀终端有限公司 | 一种应用测试方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105512045B (zh) | 2018-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105512045A (zh) | 一种应用程序的测试方法、装置及测试设备 | |
US11019114B2 (en) | Method and system for application security evaluation | |
CN108183916B (zh) | 一种基于日志分析的网络攻击检测方法及装置 | |
US9154516B1 (en) | Detecting risky network communications based on evaluation using normal and abnormal behavior profiles | |
CN112565266A (zh) | 一种信息泄露攻击检测方法、装置、电子设备及存储介质 | |
CN111628900B (zh) | 基于网络协议的模糊测试方法、装置和计算机可读介质 | |
CN108280346B (zh) | 一种应用防护监控方法、装置以及系统 | |
CN112422554B (zh) | 一种检测异常流量外连的方法、装置、设备及存储介质 | |
CN104361285A (zh) | 移动设备应用程序的安全检测方法及装置 | |
CN105791261A (zh) | 一种跨站脚本攻击的检测方法和检测设备 | |
CN105204985A (zh) | 漏洞检测方法及装置 | |
CN113079151A (zh) | 一种异常处理方法、装置、电子设备及可读存储介质 | |
CN108073499A (zh) | 应用程序的测试方法及装置 | |
CN105528546A (zh) | 一种挖掘漏洞的方法、装置及电子设备 | |
CN105553775B (zh) | 一种测试系统中信息的获取方法、装置及测试系统 | |
CN110830500A (zh) | 网络攻击追踪方法、装置、电子设备及可读存储介质 | |
JP5613000B2 (ja) | アプリケーション特性解析装置およびプログラム | |
CN116166536A (zh) | 一种测试方法、装置、电子设备及存储介质 | |
CN113839948B (zh) | 一种dns隧道流量检测方法、装置、电子设备和存储介质 | |
CN111190813B (zh) | 基于自动化测试的安卓应用网络行为信息提取系统及方法 | |
CN116155519A (zh) | 威胁告警信息处理方法、装置、计算机设备和存储介质 | |
CN115174192A (zh) | 应用安全防护方法及装置、电子设备和存储介质 | |
CN114546799A (zh) | 埋点日志校验方法、装置、电子设备、存储介质及产品 | |
CN105279432A (zh) | 一种软件监控处理方法以及装置 | |
CN113297090B (zh) | 系统测试方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20181207 Address after: Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Patentee after: Zhuhai Leopard Technology Co.,Ltd. Address before: 519070, six level 601F, 10 main building, science and technology road, Tangjia Bay Town, Zhuhai, Guangdong. Co-patentee before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd. Patentee before: Zhuhai Juntian Electronic Technology Co.,Ltd. |