数据测试的方法及装置、电子设备与流程

本公开涉及数据处理,尤其涉及一种数据测试的方法及装置、电子设备。
背景技术:
1、常见的图形化网络应用程序接口(web appl ication programming interface,web api)通常使用在万维网(world wide web,web)浏览器中进行图形渲染的方式,以及使用javascript编写3d和2d图形应用程序的方式来进行图形化,由于图形化web api通常运行在网络中,因此需要处理来自不同来源和未知来源的数据,增加了图形化web api面临安全漏洞和攻击的风险。
2、由于图形化web api允许潜在的恶意远程用户访问本机图形堆栈,其中,chrome浏览器和firefox浏览器都有一些关于图像处理单元(graphics processing unit,gpu)模型的不能访问的应用程序编程接口(application programming interface,api)列表,例如:调用会引发本地软件堆栈报错的api或者api使用某些参数等,这种针对每个错误的解决方案,不适合跨用户空间的场景应用,另外若是内核空间的数百万行代码软件,潜在攻击面将非常大。
3、因此,可以通过模糊测试技术来帮助开发人员发现和修复图形化web api应用程序中的安全漏洞,增强其安全性,模糊测试技术是一种安全测试技术,通过向软件应用程序输入随机、无效或异常数据来检测潜在的漏洞和错误,在图形化web api应用程序中,模糊测试可以用来发现潜在的内存泄漏、类型错误、缓冲区溢出、整数溢出和其他安全漏洞,通过将不同类型的随机数据输入到图形化web api应用程序中,可以测试图形化web api应用程序对错误的处理方式,并帮助开发人员发现和修复可能存在的安全漏洞。
4、然而,现有技术中的模糊测试技术通常只对输入数据进行随机化和变异,缺乏对数据上下文的理解和分析,导致数据测试的结果准确性较差。
技术实现思路
1、本公开提供了一种数据测试的方法及装置、电子设备。其主要目的在于解决现有技术中的模糊测试技术通常只对输入数据进行随机化和变异,缺乏对数据上下文的理解和分析,导致数据测试的结果准确性较差的问题。
2、根据本公开的第一方面,提供了一种数据测试的方法,其中,包括:
3、对待测试数据进行信息提取处理,得到第一报错信息,并根据所述第一报错信息以及所述待测试数据进行参数提取处理,得到所述待测试数据中的目标错误参数;
4、根据所述第一报错信息从所述待测试数据中进行数据匹配处理,得到所述第一报错信息对应的初始接口数据,并对所述初始接口数据进行数据更新处理,得到目标接口数据;
5、将所述目标错误参数以及所述目标接口数据输入至预设模糊测试器进行用例生成处理,得到目标测试用例;
6、通过所述目标测试用例对所述待测试数据进行数据测试处理,得到数据测试结果。
7、可选的,所述对待测试数据进行信息提取处理,得到第一报错信息包括:
8、对待测试数据进行数据编译处理,得到目标数据文件,并根据所述目标数据文件确定所述待测试数据的每个程序入口点;其中,所述待测试数据包含有多个程序数据,所述程序入口点为所述待测试数据中每个程序数据的初始函数;
9、根据所述程序入口点以及所述目标数据文件,通过预设数据分析算法进行数据构建处理,得到控制流图数据,并根据所述控制流图数据进行数据提取处理,得到工作列表数据;
10、对所述工作列表数据进行数据查找处理,得到调用语句数据;其中,所述调用语句数据中每个调用语句均携带有错误标识;
11、遍历所述调用语句数据,并对所述调用语句数据进行信息提取处理,得到所述第一报错信息。
12、可选的,所述根据所述第一报错信息以及所述待测试数据进行参数提取处理,得到所述待测试数据中的目标错误参数包括:
13、对所述待测试数据进行参数符号化处理,得到符号化后的待测试数据;
14、通过所述预设模糊测试器进行用例生成处理,得到随机测试用例,并通过所述随机测试用例对所述符号化后的待测试数据进行数据测试处理,得到第二报错信息;其中,所述随机测试用例为将随机数据输入至所述预设模糊测试器中生成的测试用例;
15、根据所述第一报错信息以及所述第二报错信息进行信息提取处理,得到目标错误数据;
16、根据所述目标错误数据中的参数路径条件确定所述待测试数据中每个参数与所述第一报错信息以及所述第二报错信息之间的参数依赖关系,并根据所述参数依赖关系以及所述目标错误数据进行数据推断处理,得到所述目标错误参数。
17、可选的,所述根据所述第一报错信息从所述待测试数据中进行数据匹配处理,得到所述第一报错信息对应的初始接口数据包括:
18、对所述第一报错信息进行数据分析处理,得到第一变量,对所述待测试数据进行数据分析处理,得到第二变量;
19、通过预设动态数据流算法确定所述第一报错信息的报错路径条件以及所述待测试数据的接口调用信息,并根据所述报错路径条件以及所述接口调用信息,确定所述第一报错信息与所述待测试数据之间的关联关系;
20、根据所述关联关系建立所述第一变量与所述第二变量之间的映射关系;
21、基于所述映射关系,将所述第二变量在所述待测试数据关联的接口数据作为所述第一报错信息对应的所述初始接口数据。
22、可选的,所述对所述初始接口数据进行数据更新处理,得到目标接口数据包括:
23、将所述目标接口数据输入至所述预设模糊测试器中,分析所述目标接口数据与预设前置条件之间的依赖关系,得到无效依赖项;其中,所述无效依赖项为所述目标接口数据中与所述预设前置条件之间不存在依赖关系的接口数据;
24、根据所述无效依赖项的数据类型以及数据特性从预设策略数据库中进行匹配处理,得到目标修复策略,其中,所述无效依赖项包含所述无效依赖项的数据类型以及数据特性,所述预设策略数据库中包含多个修复策略;
25、通过所述目标修复策略对所述无效依赖项进行数据修复处理,得到所述目标接口数据。
26、可选的,所述将所述目标错误参数以及所述目标接口数据输入至预设模糊测试器进行用例生成处理,得到目标测试用例包括:
27、提取所述第一报错信息的报错类型、报错结构以及报错内容;
28、根据所述报错类型、报错结构以及报错内容从预设变异方式数据库中进行匹配处理,得到目标变异方式,其中,所述预设变异方式数据库中包含多种参数变异方式;
29、通过所述目标变异方式对所述目标错误参数进行参数变异处理,得到变异后的目标错误参数;
30、根据所述目标错误参数以及所述目标接口数据进行用例生成处理,得到所述目标测试用例。
31、可选的,所述通过所述目标测试用例对所述待测试数据进行数据测试处理,得到数据测试结果包括:
32、根据预设处理单元并行进行通过所述目标测试用例对所述待测试数据进行数据测试处理,得到数据测试结果的过程。
33、可选的,所述将所述目标错误参数以及所述目标接口数据输入至预设模糊测试器进行用例生成处理,得到目标测试用例包括:
34、根据所述预设处理单元并行进行将所述目标错误参数以及所述目标接口数据输入至预设模糊测试器进行用例生成处理,得到所述目标测试用例的过程。
35、根据本公开的第二方面,提供了一种数据测试的装置,包括:
36、第一提取单元,用于对待测试数据进行信息提取处理,得到第一报错信息;
37、第二提取单元,用于根据所述第一报错信息以及所述待测试数据进行参数提取处理,得到所述待测试数据中的目标错误参数;
38、匹配单元,用于根据所述第一报错信息从所述待测试数据中进行数据匹配处理,得到所述第一报错信息对应的初始接口数据;
39、更新单元,用于对所述初始接口数据进行数据更新处理,得到目标接口数据;
40、生成单元,用于将所述目标错误参数以及所述目标接口数据输入至预设模糊测试器进行用例生成处理,得到目标测试用例;
41、测试单元,用于通过所述目标测试用例对所述待测试数据进行数据测试处理,得到数据测试结果。
42、可选的,所述第一提取单元包括:
43、编译模块,用于对待测试数据进行数据编译处理,得到目标数据文件,并根据所述目标数据文件确定所述待测试数据的每个程序入口点;其中,所述待测试数据包含有多个程序数据,所述程序入口点为所述待测试数据中每个程序数据的初始函数;
44、构建模块,用于根据所述程序入口点以及所述目标数据文件,通过预设数据分析算法进行数据构建处理,得到控制流图数据;
45、提取模块,用于根据所述控制流图数据进行数据提取处理,得到工作列表数据;
46、查找模块,用于对所述工作列表数据进行数据查找处理,得到调用语句数据;其中,所述调用语句数据中每个调用语句均携带有错误标识;
47、所述提取模块还用于,遍历所述调用语句数据,并对所述调用语句数据进行信息提取处理,得到所述第一报错信息。
48、可选的,所述第二提取单元包括:
49、处理模块,用于对所述待测试数据进行参数符号化处理,得到符号化后的待测试数据;
50、所述处理模块还用于,通过所述预设模糊测试器进行用例生成处理,得到随机测试用例,并通过所述随机测试用例对所述符号化后的待测试数据进行数据测试处理,得到第二报错信息;其中,所述随机测试用例为将随机数据输入至所述预设模糊测试器中生成的测试用例;
51、提取模块,用于根据所述第一报错信息以及所述第二报错信息进行信息提取处理,得到目标错误数据;
52、确定模块,用于根据所述目标错误数据中的参数路径条件确定所述待测试数据中每个参数与所述第一报错信息以及所述第二报错信息之间的参数依赖关系;
53、所述处理模块还用于,根据所述参数依赖关系以及所述目标错误数据进行数据推断处理,得到所述目标错误参数。
54、可选的,所述匹配单元包括:
55、分析模块,用于对所述第一报错信息进行数据分析处理,得到第一变量,对所述待测试数据进行数据分析处理,得到第二变量;
56、确定模块,用于通过预设动态数据流算法确定所述第一报错信息的报错路径条件以及所述待测试数据的接口调用信息,并根据所述报错路径条件以及所述接口调用信息,确定所述第一报错信息与所述待测试数据之间的关联关系;
57、建立模块,用于根据所述关联关系建立所述第一变量与所述第二变量之间的映射关系;
58、所述确定模块还用于,基于所述映射关系,将所述第二变量在所述待测试数据关联的接口数据作为所述第一报错信息对应的所述初始接口数据。
59、可选的,所述更新单元包括:
60、分析模块,用于将所述目标接口数据输入至所述预设模糊测试器中,分析所述目标接口数据与预设前置条件之间的依赖关系,得到无效依赖项;其中,所述无效依赖项为所述目标接口数据中与所述预设前置条件之间不存在依赖关系的接口数据;
61、匹配模块,用于根据所述无效依赖项的数据类型以及数据特性从预设策略数据库中进行匹配处理,得到目标修复策略,其中,所述无效依赖项包含所述无效依赖项的数据类型以及数据特性,所述预设策略数据库中包含多个修复策略;
62、修复模块,用于通过所述目标修复策略对所述无效依赖项进行数据修复处理,得到所述目标接口数据。
63、可选的,所述生成单元包括:
64、提取模块,用于提取所述第一报错信息的报错类型、报错结构以及报错内容;
65、匹配模块,用于根据所述报错类型、报错结构以及报错内容从预设变异方式数据库中进行匹配处理,得到目标变异方式,其中,所述预设变异方式数据库中包含多种参数变异方式;
66、变异模块,用于通过所述目标变异方式对所述目标错误参数进行参数变异处理,得到变异后的目标错误参数;
67、生成模块,用于根据所述目标错误参数以及所述目标接口数据进行用例生成处理,得到所述目标测试用例。
68、可选的,所述测试单元还用于,根据预设处理单元并行进行通过所述目标测试用例对所述待测试数据进行数据测试处理,得到数据测试结果的过程。
69、可选的,所述生成单元还用于,根据所述预设处理单元并行进行将所述目标错误参数以及所述目标接口数据输入至预设模糊测试器进行用例生成处理,得到所述目标测试用例的过程。
70、根据本公开的第三方面,提供了一种电子设备,包括:
71、至少一个处理器;以及
72、与所述至少一个处理器通信连接的存储器;其中,
73、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面所述的方法。
74、根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行前述第一方面所述的方法。
75、根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如前述第一方面所述的方法。
76、本公开提供的数据测试的方法及装置、电子设备,对待测试数据进行信息提取处理,得到第一报错信息,并根据所述第一报错信息以及所述待测试数据进行参数提取处理,得到所述待测试数据中的目标错误参数;根据所述第一报错信息从所述待测试数据中进行数据匹配处理,得到所述第一报错信息对应的初始接口数据,并对所述初始接口数据进行数据更新处理,得到目标接口数据;将所述目标错误参数以及所述目标接口数据输入至预设模糊测试器进行用例生成处理,得到目标测试用例;通过所述目标测试用例对所述待测试数据进行数据测试处理,得到数据测试结果。与相关技术相比,本公开实施例通过获取待测试数据的报错信息相关的目标错误参数,以及报错信息对应的待测试数据中的目标接口数据来生成目标测试用例,并通过生成的目标测试用例对待测试数据进行数据测试处理,可以加强对待测试数据上下文的理解和分析,提高了数据测试的结果的准确性。
77、应当理解,本部分所描述的内容并非旨在标识本技术的实施例的关键或重要特征,也不用于限制本技术的范围。本技术的其它特征将通过以下的说明书而变得容易理解。
技术研发人员:付祖贤,杨晟
技术所有人:中移(苏州)软件技术有限公司
备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明 :此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除