应用程序测试方法、装置、计算机可读介质及电子设备制造方法及图纸

技术编号:22594496 阅读:25 留言:0更新日期:2019-11-20 10:59
本公开提供了一种应用程序测试方法、应用程序测试装置、计算机可读介质及电子设备,涉及计算机技术领域。该方法包括:修剪初始样本,以使得修剪后的初始样本的样本体积小于修剪前的初始样本的样本体积;根据修剪后的初始样本生成多个测试样本;控制待测试应用程序执行多个测试样本,以获得执行结果;根据执行结果从多个测试样本中确定出导致待测试应用程序异常的目标样本,以及目标样本对应的执行路径;通过目标样本和执行路径确定待测试应用程序中的待修复内容。本公开中的应用程序测试方法能够一定程度上克服人工测试应用程序效率较低的问题,进而提升对应用程序的测试效率。

Application testing methods, devices, computer-readable media and electronic equipment

The invention provides an application program testing method, an application program testing device, a computer-readable medium and an electronic device, and relates to the field of computer technology. The method includes: pruning the initial sample so that the sample volume of the pruned initial sample is smaller than that of the pre pruned initial sample; generating multiple test samples based on the pruned initial sample; controlling the application to be tested to execute multiple test samples to obtain the execution results; determining the application to be tested from multiple test samples based on the execution results The abnormal target sample and the corresponding execution path of the target sample determine the content to be repaired in the application to be tested through the target sample and execution path. The application test method in the disclosure can overcome the problem of low efficiency of artificial test application to a certain extent, thereby improving the test efficiency of application.

【技术实现步骤摘要】
应用程序测试方法、装置、计算机可读介质及电子设备
本公开涉及计算机
,具体而言,涉及一种应用程序测试方法、应用程序测试装置、计算机可读介质及电子设备。
技术介绍
目前,出于对安全问题的考虑,通常在软件发布之前都会进行安全测试,以通过漏洞挖掘尽可能提前发现漏洞并进行修复。漏洞挖掘通常采用模糊测试方式;模糊测试(Fuzzing),是一种通过向目标系统提供非预期的输入并监视异常结果来发现应用程序漏洞的方法,也可以理解为,不断使用随机坏数据输入目标程序,以通过观察程序行为监视程序异常(如,崩溃、断言失败或日志异常等)。目前,用于模糊测试的产品主要应用于Linux、Windows或Mac操作系统,而对于IOS平台的应用程序,通常是采用人工进行逆向工程的方式进行人工测试的,以挖掘应用程序中的漏洞。但是,采用人工进行应用程序测试的方式存在着效率较低的问题。需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
本公开的目的在于提供一种应用程序测试方法、应用程序测试装置、计算机可读介质及电子设备,进而至少在一定程度上克服人工测试应用程序效率较低的问题,进而提升对应用程序的测试效率。本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。本公开的第一方面提供了一种应用程序测试方法,包括:修剪初始样本,以使得修剪后的初始样本的样本体积小于修剪前的初始样本的样本体积;根据修剪后的初始样本生成多个测试样本;控制待测试应用程序执行多个测试样本,以获得执行结果;根据执行结果从多个测试样本中确定出导致待测试应用程序异常的目标样本,以及目标样本对应的执行路径;通过目标样本和执行路径确定待测试应用程序中的待修复内容。在本公开的一种示例性实施例中,修剪初始样本,包括:修剪初始样本中的待修剪部分;控制待测试应用程序执行初始样本,并确定与初始样本对应的第一执行路径;控制待测试应用程序执行修剪后的初始样本,并确定与修剪后的初始样本对应的第二执行路径;若第二执行路径与第一执行路径相同,则继续修剪初始样本,直到初始样本的样本体积达到预设最小样本体积为止。在本公开的一种示例性实施例中,根据修剪后的初始样本生成多个测试样本,包括:将修剪后的初始样本通过变异处理生成多个测试样本。在本公开的一种示例性实施例中,控制待测试应用程序执行多个测试样本,包括:控制待测试应用程序并行执行和/或串行执行多个测试样本。在本公开的一种示例性实施例中,修剪初始样本,包括:对初始样本进行去噪处理,其中,所述初始样本为图像样本;将去噪后的初始样本进行折叠,并对折叠后的初始样本每隔预设位像素修剪一次,每次修剪面积为预设位像素的面积和。在本公开的一种示例性实施例中,该应用程序测试方法还包括:将多个测试样本加载至待测试应用程序的样本缓冲区。根据本公开的第二方面,提供一种应用程序测试装置,包括初始样本修剪单元、测试样本生成单元、测试样本执行单元、目标样本确定单元以及待修复内容确定单元,其中:初始样本修剪单元,用于修剪初始样本,以使得修剪后的初始样本的样本体积小于修剪前的初始样本的样本体积;测试样本生成单元,用于根据修剪后的初始样本生成多个测试样本;测试样本执行单元,用于控制待测试应用程序执行多个测试样本,以获得执行结果;目标样本确定单元,用于根据执行结果从多个测试样本中确定出导致待测试应用程序异常的目标样本,以及目标样本对应的执行路径;待修复内容确定单元,用于通过目标样本和执行路径确定待测试应用程序中的待修复内容。在本公开的一种示例性实施例中,初始样本修剪单元修剪初始样本的方式具体为:初始样本修剪单元修剪初始样本中的待修剪部分;初始样本修剪单元控制待测试应用程序执行初始样本,并确定与初始样本对应的第一执行路径;初始样本修剪单元控制待测试应用程序执行修剪后的初始样本,并确定与修剪后的初始样本对应的第二执行路径;若第二执行路径与第一执行路径相同,初始样本修剪单元继续修剪初始样本,直到初始样本的样本体积达到预设最小样本体积为止。在本公开的一种示例性实施例中,测试样本生成单元根据修剪后的初始样本生成多个测试样本的方式具体为:测试样本生成单元将修剪后的初始样本通过变异处理生成多个测试样本。在本公开的一种示例性实施例中,测试样本执行单元控制待测试应用程序执行多个测试样本的方式具体为:测试样本执行单元控制待测试应用程序并行执行或串行执行多个测试样本。在本公开的一种示例性实施例中,初始样本修剪单元修剪初始样本的方式具体为:初始样本修剪单元初始样本修剪单元对初始样本进行去噪处理,其中,初始样本为图像样本;初始样本修剪单元将去噪后的初始样本进行折叠,并对折叠后的初始样本每隔预设位像素修剪一次,每次修剪面积为预设位像素的面积和。在本公开的一种示例性实施例中,该应用程序测试装置还可以包括:样本加载单元,用于将多个测试样本加载至待测试应用程序的样本缓冲区。根据本公开的第三方面,提供了一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现如上述实施例中第一方面所述的应用程序测试方法。根据本公开的第四方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上述实施例中第一方面所述的应用程序测试方法。本公开提供的技术方案可以包括以下有益效果:在本公开的实施例所提供的技术方案中,终端设备或服务器可以对初始样本进行修剪,以使得修剪后的初始样本体积小于修剪前的初始样本体积,进而根据修剪后的初始样本生成多个测试样本,控制待测试的应用程序执行多个测试样本,进而可以获得执行结果,如果存在导致待测试应用程序异常的某个测试样本,那么,这个测试样本则会被确定为目标样本,进一步地,通过目标样本以及待测试应用程序执行目标样本时的执行路径,可以确定出待测试应用程序中的待修复内容,即,漏洞。依据上述方案描述,本公开一方面能够通过修剪初始样本,降低初始样本的样本体积,进而减少测试样本的数量,以提高测试效率;此外,另一方面能够通过待测试应用程序执行多个测试样本,进而提升捕获应用程序异常或崩溃的概率,进而提升对于待测试应用程序的测试效果。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1示出了根据本公开一示例性实施例的一种应用程序测试方法的流程示意图;图2示出了根据本公开一示例性实施例的应用程序测试装置的结构框图;图3示本文档来自技高网...

【技术保护点】
1.一种应用程序测试方法,其特征在于,包括:/n修剪初始样本,以使得修剪后的初始样本的样本体积小于修剪前的所述初始样本的样本体积;/n根据修剪后的初始样本生成多个测试样本;/n控制待测试应用程序执行所述多个测试样本,以获得执行结果;/n根据所述执行结果从所述多个测试样本中确定出导致所述待测试应用程序异常的目标样本,以及所述目标样本对应的执行路径;/n通过所述目标样本和所述执行路径确定所述待测试应用程序中的待修复内容。/n

【技术特征摘要】
1.一种应用程序测试方法,其特征在于,包括:
修剪初始样本,以使得修剪后的初始样本的样本体积小于修剪前的所述初始样本的样本体积;
根据修剪后的初始样本生成多个测试样本;
控制待测试应用程序执行所述多个测试样本,以获得执行结果;
根据所述执行结果从所述多个测试样本中确定出导致所述待测试应用程序异常的目标样本,以及所述目标样本对应的执行路径;
通过所述目标样本和所述执行路径确定所述待测试应用程序中的待修复内容。


2.根据权利要求1所述的方法,其特征在于,修剪初始样本,包括:
修剪初始样本中的待修剪部分;
控制所述待测试应用程序执行所述初始样本,并确定与所述初始样本对应的第一执行路径;
控制待测试应用程序执行修剪后的初始样本,并确定与修剪后的初始样本对应的第二执行路径;
若所述第二执行路径与所述第一执行路径相同,则继续修剪所述初始样本,直到所述初始样本的样本体积达到预设最小样本体积为止。


3.根据权利要求1所述的方法,其特征在于,根据修剪后的初始样本生成多个测试样本,包括:
将修剪后的初始样本通过变异处理生成多个测试样本。


4.根据权利要求1所述的方法,其特征在于,控制待测试应用程序执行所述多个测试样本,包括:
控制待测试应用程序并行执行或串行执行所述多个测试样本。


5.根据权利要求1所述的方法,其特征在于,修剪初始样本,包括:
对初始样本进行去噪处理,其中,所述初始样本为图像样本;
将去噪后的初始样本进行折叠,并对折叠后的初始样本每隔预设位像素修剪一次,每次修剪面积为预设位像素的面积和。


6.根据权利要求1所述的方法,其特征在于,还包括:
将所述多个测...

【专利技术属性】
技术研发人员:姜若芾
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东;44

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

1