CN112486816B - 测试方法、装置、电子设备及存储介质 - Google Patents
测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112486816B CN112486816B CN202011358649.2A CN202011358649A CN112486816B CN 112486816 B CN112486816 B CN 112486816B CN 202011358649 A CN202011358649 A CN 202011358649A CN 112486816 B CN112486816 B CN 112486816B
- Authority
- CN
- China
- Prior art keywords
- data
- test
- variation
- target
- group
- 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.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 268
- 238000010998 test method Methods 0.000 title claims description 13
- 230000035772 mutation Effects 0.000 claims abstract description 50
- 230000006870 function Effects 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 14
- 240000005809 Prunus persica Species 0.000 claims description 10
- 235000006040 Prunus persica var persica Nutrition 0.000 claims description 10
- 230000006798 recombination Effects 0.000 claims description 5
- 238000005215 recombination Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000013499 data model Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013101 initial test Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种测试方法、装置、电子设备及存储介质中,该电子设备在预设测试工具生成的测试数据的基础上,对测试数据做进一步的变异,以提高测试数据的变异程度,将提高变异程度后的变异测试数据用于对目标待测系统进行测试。因此,通过上述方式,该变异测试数据的变异程度更高,继而能够提高发现漏洞的概率。
Description
技术领域
本申请涉及软件测试领域,具体而言,涉及一种测试方法、装置、电子设备及存储介质。
背景技术
模糊测试(Fuzzing),是一种通过向目标待测系统提供非预期的输入,并根据目标待测系统输出的异常结果来发现软件漏洞的方法。
目前,主要通过模糊测试工具生成测试数据,用于测试目标待测系统,然而,目前的模糊测试工具所生成的测试数据,在发掘深层次漏洞时,效果欠佳。
发明内容
第一方面,本申请实施例提供一种测试方法,应用于电子设备,所述方法包括:
获取至少一组测试数据,其中,所述至少一组测试数据为预设测试工具基于测试样本的输出结果;
调整所述至少一组测试数据的数据内容和/或数据结构,获得至少一组变异测试数据;
将所述至少一组变异测试数据分别输入至目标待测系统,获得测试结果。
在一种可能的实现方式中,所述调整所述至少一组测试数据的数据内容和/或数据结构,获得至少一组变异测试数据,包括:
针对每组目标测试数据,调整所述目标测试数据中数据内容之间的排列顺序,获得至少一组第一变异数据;其中,所述目标测试数据为所述测试数据中的一部分;
和/或针对每组目标第一数据,将测试字典插入到所述目标第一数据中,获得至少一组第二变异数据,其中,所述测试字典为预先收集的测试数据,所述目标第一数据为所述第一变异数据中的一部分;
和/或针对多组目标第二数据,将所述多组目标第二数据进行数据重组,获得至少一组第三变异数据,其中,所述目标第二数据为所述第二变异数据中的一部分;
将所述至少一组第一变异数据、所述至少一组第二变异数据和/或所述至少一组第三变异数据作为所述至少一组变异测试数据。
在一种可能的实现方式中,所述测试结果包括目标函数的调用记录,所述将所述变异测试数据输入至目标待测系统之前,所述方法还包括:
确定所述目标函数在系统源代码中的位置,其中,所述系统源代码为所述目标待测系统的源代码;
根据所述目标函数的位置,对所述目标函数进行标记。
在一种可能的实现方式中,所述测试结果包括被调用指令的指令数量,所述电子设备记录有历史指令数量,所述方法还包括:
针对每组所述变异测试数据,检测所述变异测试数据对应的指令数量是否大于所述历史指令数量;
若是,则将所述变异测试数据作为测试样本。
在一种可能的实现方式种,所述预设测试工具为Peach模糊测试工具,所述获取至少一组测试数据之前,所述方法还包括:
基于预设的配置文件以及所述测试样本,通过所述Peach模糊测试工具获得所述至少一组测试数据。
第二方面,本申请实施例提供一种测试装置,所述测试装置包括:
数据获取模块,用于获取至少一组测试数据,其中,所述至少一组测试数据为预设测试工具基于测试样本的输出结果;
数据变异模块,用于调整所述至少一组测试数据的数据内容和/或数据结构,获得至少一组变异测试数据;
数据测试模块,用于将所述至少一组变异测试数据分别输入至目标待测系统,获得测试结果。
在一种可能的实现方式中,所述数据变异模块具体用于:
针对每组目标测试数据,调整所述目标测试数据中数据内容之间的排列顺序,获得至少一组第一变异数据;其中,所述目标测试数据为所述测试数据中的一部分;
和/或针对每组目标第一数据,将测试字典插入到所述目标第一数据中,获得至少一组第二变异数据,其中,所述测试字典为预先收集的测试数据,所述目标第一数据为所述第一变异数据中的一部分;
和/或针对多组目标第二数据,将所述多组目标第二数据进行数据重组,获得至少一组第三变异数据,其中,所述目标第二数据为所述第二变异数据中的一部分;
将所述至少一组第一变异数据、所述至少一组第二变异数据和/或所述至少一组第三变异数据作为所述至少一组变异测试数据。
在一种可能的实现方式中,所述测试结果包括被调用指令的指令数量,所述数据测试模块,还用于:
针对每组所述变异测试数据,检测所述变异测试数据对应的指令数量是否大于历史指令数量;
若是,则将所述变异测试数据作为测试样本。
第三方面,本申请实施例提供一种电子设备,所述电子设备包括处理器以及存储器,所述存储器存储有计算机程序,所述计算机程序中的计算机课执行指令被所述处理器执行时,实现所述的测试方法。
第四方面,本申请实施例提供一种存储介质,所述存储介质存储计算机程序,所述计算机程序中的计算机课执行指令被处理器执行时,实现所述的测试方法。
相对于现有技术而言,本申请具有以下有益效果:
本申请实施例提供的测试方法、装置、电子设备及存储介质中,该电子设备在预设测试工具生成的测试数据的基础上,对测试数据做进一步的变异,以提高测试数据的变异程度,将提高变异程度后的变异测试数据用于对目标待测系统进行测试。因此,通过上述方式,该变异测试数据的变异程度更高,继而能够提高发现漏洞的概率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的电子设备的结构示意图;
图2为本申请实施例提供的测试方法的流程示意图;
图3为本申请实施例提供的Peach模糊测试工具流程示意图;
图4为本申请实施例提供的测试装置的结构示意图。
图标:120-存储器;130-处理器;200-待测设备;1101-数据获取模块;1102-数据变异模块;1103-数据测试模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
相关技术中,主要通过模糊测试工具生成测试数据,用于测试目标待测系统,然而,目前的模糊测试工具所生成的测试数据,在发掘深层次漏洞时,效果欠佳。
例如,WINAFL是一款基于覆盖引导(Coverage-guided)的模糊测试工具,它通过记录输入样本的代码覆盖率,从而调整输入样本以提高覆盖率,增加发现漏洞的概率。
其中,该测试工具的测试流程包括,测试设备从源码编译程序时进行插桩,以记录代码覆盖率(Code Coverage);选择一些输入文件,作为初始测试集加入输入队列;将队列中的文件按一定的策略进行“突变”;如果经过变异文件更新了覆盖范围,则将其保留添加到队列中;上述过程会一直循环进行,期间触发了crash的文件会被记录下来。
然而,WINAFL不能通过模板对测试样本进行数据突变,而是对输入的测试样本进行变异,进而对于输入数据为格式化文件(例如,图片文件、视频文件、字符文件)的目标待测系统,WINAFL对数据的变异效果欠佳,所变异出的测试数据无法发现一些特别的程序路径以及一些深层次的漏洞。
鉴于此,本申请实施例提供一种测试方法,应用于电子设备。该电子设备通过对预设模糊测试工具生成的测试数据做进一步的变异,将变异出的变异测试数据,用于对目标待测系统进行测试。由于,相较于预设模糊测试工具生成的测试数据,该变异测试数据的变异程度更高,继而能够提高测试出深层次漏洞的概率。
其中,上述电子设备可以是,但不限于服务器、个人电脑(Personal Computer,PC)等。
如图1所示,为本申请实施例提供的该电子设备一种可能的结构示意图,该电子设备包括存储器120、处理器130。该存储器120、处理器130以及可能的其他各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,该存储器120可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器120用于存储程序,该处理器130在接收到执行指令后,执行该程序。
该处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
请参照图2,图2为应用于图1所示的电子设备的一种测试方法的流程图,以下将对该方法包括各个步骤进行详细阐述。如图2所示,该测试方法,包括:
步骤S101,获取至少一组测试数据。
其中,至少一组测试数据为预设测试工具基于测试样本的输出结果。
本申请实施例提供的一种可能的实现方式中,该预设测试工具可以是Peach模糊测试工具。如图3所示,Peach模糊测试工具根据测试样本以及XML模板,生成至少一个chunk数据,即至少一组测试数据。其中,该配置文件为Peach模糊测试工具提供的XML模板,用户可以根据Peach模糊测试工具提供的配置规则,编辑XML模板中的DataModel标签,配置需要生成的chunk数据。其中,该DataModel标签用于描述chunk数据的数据结构。
例如,若该目标待测系统的输入数据为PNG格式的图片。其中,PNG格式的图片,包括的数据块如下表所示:
符号 | 数据块名称 | 符号 | 数据块名称 |
IHDR | 文件头数据块 | tRNS | 图像透明数据块 |
cHRM | 基色和白色点数据块 | oFFs | 专用公共数据块 |
gAMA | 图像γ数据块 | pHYs | 物理像素尺寸数据块 |
sBIT | 样本有效位数据块 | sCAL | 专用公共数据块 |
PLTE | 调色板数据块 | IDAT | 图像数据块 |
bKGD | 背景颜色数据块 | tIME | 图像最后修改时间数据块 |
hIST | 图像直方图数据块 | tEXt | 文本信息数据块 |
zTXt | 压缩文本数据块 | fRAc | 专用公共数据块 |
gIFg | 专用公共数据块 | gIFt | 专用公共数据块 |
gIFx | 专用公共数据块 | IEND | 像结束数据 |
用户通过对DataModel标签进行编辑,使得Peach模糊测试工具基于编辑后的XML模板生成至少一组chunk数据。其中,该chunk数据为缺失部分数据块的PNG图片,即该chunk数据仅包括上述数据块中的一部分。
因此,该chunk数据为非标准的PNG图片,将其输入值目标待测系统,对其进行测试。由于该chunk数据为非标准的PNG图片,继而可能会触发目标待测系统中的漏洞。
步骤S102,调整至少一组测试数据的数据内容和/或数据结构,获得至少一组变异测试数据。
由于预设测试工具所生成的测试数据,数据的变异程度较低,难以发掘深层次的漏洞。因此,本申请实施例中,将测试数据做进一步的变异,达到进一步扰乱测试数据的数据内容和/或数据结构的目的。
作为一种可能的实现方式,电子设备将针对每组目标测试数据,调整目标测试数据中数据内容之间的排列顺序,获得至少一组第一变异数据;其中,目标测试数据为测试数据中的一部分。
进一步地,基于所获得的第一变异数据,该电子设备可以针对每组目标第一数据,将测试字典插入到目标第一数据中,获得至少一组第二变异数据,其中,测试字典为预先收集的测试数据,目标第一数据为第一变异数据中的一部分。
进一步地,针对第二变异数据,该电子设备可以针对多组目标第二数据,将多组目标第二数据进行数据重组,获得至少一组第三变异数据,其中,目标第二数据为第二变异数据中的一部分。
因此,在对目标待测系统进行测试时,该电子设备可以将至少一组第一变异数据、至少一组第二变异数据和/或至少一组第三变异数据作为至少一组变异测试数据。
同样以Peach模糊测试工具为例,请再次参照图3,电子设备对chunk数据进行随机变异,扰乱chunk数据中数据内容的排列方式,获得第一chunk数据,即第一变异数据。
然后,该电子设备将测试字典插入到第一chunk数据中,获得第二chunk数据,即第二变异数据;其中,该测试字典为收集的测试数据。即用户在长期的使用过程中,收集的能够高频触发漏洞的字符。例如,解析第二chunk数据,获得其中各数据块的属性参数。该参数可以包括PNG图片的长、宽,或者某个数据块长度以及该数据块在chunk数据中的偏移。其中,针对占用2个字节的属性参数占,可以使用字典0xFFFF进行替换;针对占用1个字节的属性参数,可以使用字典0xFF进行替换。当然,其他字节长度的属性参数,本领域技术人员可以通过上述方式进行适应性调整,其基于本申请实施例不需要做出创造性的贡献。
由于上述字典的基础上加1,则会导致数据的溢出,因此,常用于检查溢出型漏洞。本申请实施例中,由于能够解析出各数据块的属性参数,继而能够对chunk数据的属性参数进行有针对性的变异。
进一步地,该电子设备将第二chunk数据进行重组,获得第三chunk数据,即第三变异数据。
同样以PNG图片为例,由于随机变异后的第一chunk数据,仅包括一部分PNG的数据块,因此,电子设备可以统计各第二chunk数据所包括的数据类。并基于对测试需求对第二chunk数据进行重组。例如,根据测试需求,需要包括IHDR、cHRM以及gAMA数据块的测试数据,则电子设备将不包括上述数据块的第二chunk数据进行重组,使得重组后的第三chunk数据满足测试需求。
另外,基于实际测试需要,电子设备可以将上述第一chunk数据、第二chunk数据以及第三chunk数据均输入到待测试设备,其中,该待测设备200运行有目标待测系统;也可以仅输入其中的一部分,本申请实施例不做具体的限定。
步骤S103,将至少一组变异测试数据分别输入至目标待测系统,获得测试结果。
因此,该电子设备在预设测试工具生成的测试数据的基础上,对测试数据做进一步的变异,以提高测试数据的变异程度,将提高变异程度后的变异测试数据用于对目标待测系统进行测试。因此,通过上述方式,该变异测试数据的变异程度更高,继而能够提高发现漏洞的概率。
另外,常见的系统漏洞主要包括溢出型漏洞、UAF(UseAfter Free)型漏洞以及Double Free型漏洞。
其中,UAF型漏洞主要表现为针对同一片内存区域,由于第一程序使用该内存区域之后,并未对其进行释放;而第二程序同样申请到该内存区域之后,第一程序还可以通过该内存区域的地址对其进行访问,继而导致程序运行出现异常。
其中,Double Free型漏洞主要表现为,针对同一片内存区域,在使用完之后,程序对其进行两次释放,继而导致程序运行出现异常。
目前,对目标待测系统输入测试数据,主要用于测试溢出型漏洞,对UAF(UseAfterFree)型漏洞以及Double Free型漏洞的测试效果欠佳。因此,本申请实施例中,电子设备将变异测试数据输入至目标待测系统之前,确定目标函数在系统源代码中的位置,其中,系统源代码为目标待测系统的源代码;并根据目标函数的位置,对目标函数进行标记。
其中,上述目标函数可以是malloc()以及free()函数,其中,malloc()用于从内存空间中申请内存区域,free()函数用于将申请的内存区域进行释放。因此,作为一种可能的实现方式,本申请实施例中,将目标待测系统中的所有的malloc()函数以及free()函数进行标记,继而可以在通过变异测试数据对目标待测系统进行测试时,跟踪malloc()函数与free()函数,继而获得两函数的调用记录。
由于malloc()函数与free()函数通常是成对存在的,即调用了malloc()函数,则需要调用free()函数对malloc()函数申请的内存区域进行释放。因此,根据调用记录可以发现上述UAF型漏洞以及Double Free型漏洞。
本申请实施例中,还可以在通过变异数据对目标待测系统进行测试时,统计被调用指令的指令数量。其中,指令数量越多,表明测试效果越好。因此,该电子设备记录有历史指令数量,针对每组变异测试数据,检测变异测试数据对应的指令数量是否大于历史指令数量;若是,则将变异测试数据作为测试样本。
其中,该指令可以是汇编指令,还可以是操作系统API,本领域技术人员可以根据实际需求进行适应性调整,其基于本申请实施例并不需要做出创造性的贡献。
以汇编指令为例,本申请实施例中,通过bitmap对汇编指令的执行数量进行统计。例如,该汇编指令的历史指令数量为50,当有一组变异测试数据对目标待测系统进行测试时,该组变异测试数据导致目标待测系统执行了80条汇编指令,则说明该组变异测试数据的测试效果较好,可以作为测试样本继续生成更多的测试数据。
基于相同的发明构思,本申请实施例还提供一种测试装置。该测试装置包括至少一个可以软件形式存储于存储器120中的功能模块。请参照图4,从功能上划分,测试装置可以包括:
数据获取模块1101,用于获取至少一组测试数据,其中,至少一组测试数据为预设测试工具基于测试样本的输出结果。
本申请实施中,该数据获取模块1101对应的计算机可执行指令被处理器执行时,实现如图2所示的步骤S101,关于该数据获取模块1101的详细描述,可以参考步骤S101的详细描述。
数据变异模块1102,用于调整至少一组测试数据的数据内容和/或数据结构,获得至少一组变异测试数据。
本申请实施中,该数据变异模块1102对应的计算机可执行指令被处理器执行时,实现如图2所示的步骤S102,关于该数据变异模块1102的详细描述,可以参考步骤S102的详细描述。
数据测试模块1103,用于将至少一组变异测试数据分别输入至目标待测系统,获得测试结果。
本申请实施中,该数据测试模块1103对应的计算机可执行指令被处理器执行时,实现如图2所示的步骤S103,关于该数据测试模块1103的详细描述,可以参考步骤S103的详细描述。
在一种可能的实现方式中,数据变异模块1102具体用于:
针对每组目标测试数据,调整目标测试数据中数据内容之间的排列顺序,获得至少一组第一变异数据;其中,目标测试数据为测试数据中的一部分;
和/或针对每组目标第一数据,将测试字典插入到目标第一数据中,获得至少一组第二变异数据,其中,测试字典为预先收集的测试数据,目标第一数据为第一变异数据中的一部分;
和/或针对多组目标第二数据,将多组目标第二数据进行数据重组,获得至少一组第三变异数据,其中,目标第二数据为第二变异数据中的一部分;
将至少一组第一变异数据、至少一组第二变异数据和/或至少一组第三变异数据作为至少一组变异测试数据。
在一种可能的实现方式中,测试结果包括被调用指令的指令数量,数据测试模块1103,还用于:
针对每组变异测试数据,检测变异测试数据对应的指令数量是否大于历史指令数量;
若是,则将变异测试数据作为测试样本。
本申请实施例还提供一种电子设备,电子设备包括处理器以及存储器,存储器存储有计算机程序,计算机程序中的计算机课执行指令被处理器执行时,实现的测试方法。
本申请实施例还提供一种存储介质,存储介质存储计算机程序,计算机程序中的计算机课执行指令被处理器执行时,实现的测试方法。
综上所述,本申请实施例提供的测试方法、装置、电子设备及存储介质中,该电子设备在预设测试工具生成的测试数据的基础上,对测试数据做进一步的变异,以提高测试数据的变异程度,将提高变异程度后的变异测试数据用于对目标待测系统进行测试。因此,通过上述方式,该变异测试数据的变异程度更高,继而能够提高发现漏洞的概率。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的各种实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (6)
1.一种测试方法,其特征在于,应用于电子设备,所述电子设备记录有历史指令数量,所述方法包括:
获取至少一组测试数据,其中,所述至少一组测试数据为预设测试工具基于测试样本的输出结果;
调整所述至少一组测试数据的数据内容和/或数据结构,获得至少一组变异测试数据,包括:
针对每组目标测试数据,调整所述目标测试数据中数据内容之间的排列顺序,获得至少一组第一变异数据;其中,所述目标测试数据为所述测试数据中的一部分;
针对每组目标第一数据,将测试字典插入到所述目标第一数据中,获得至少一组第二变异数据,其中,所述测试字典为预先收集的测试数据,所述目标第一数据为所述第一变异数据中的一部分;
针对多组目标第二数据,将所述多组目标第二数据进行数据重组,获得至少一组第三变异数据,其中,所述目标第二数据为所述第二变异数据中的一部分;
将所述至少一组第一变异数据、所述至少一组第二变异数据和所述至少一组第三变异数据作为所述至少一组变异测试数据;
将所述至少一组变异测试数据分别输入至目标待测系统,获得测试结果,所述测试结果包括被调用指令的指令数量;
针对每组所述变异测试数据,检测所述变异测试数据对应的指令数量是否大于所述历史指令数量;
若是,则将所述变异测试数据作为测试样本,用于继续生成更多的测试数据。
2.根据权利要求1所述的测试方法,其特征在于,所述测试结果包括目标函数的调用记录,所述将所述变异测试数据输入至目标待测系统之前,所述方法还包括:
确定所述目标函数在系统源代码中的位置,其中,所述系统源代码为所述目标待测系统的源代码;
根据所述目标函数的位置,对所述目标函数进行标记。
3.根据权利要求1所述的测试方法,其特征在于,所述预设测试工具为Peach模糊测试工具,所述获取至少一组测试数据之前,所述方法还包括:
基于预设的配置文件以及所述测试样本,通过所述Peach模糊测试工具获得所述至少一组测试数据。
4.一种测试装置,其特征在于,所述测试装置包括:
数据获取模块,用于获取至少一组测试数据,其中,所述至少一组测试数据为预设测试工具基于测试样本的输出结果;
数据变异模块,用于调整所述至少一组测试数据的数据内容和/或数据结构,获得至少一组变异测试数据,所述数据变异模块还具体用于:
针对每组目标测试数据,调整所述目标测试数据中数据内容之间的排列顺序,获得至少一组第一变异数据;其中,所述目标测试数据为所述测试数据中的一部分;
针对每组目标第一数据,将测试字典插入到所述目标第一数据中,获得至少一组第二变异数据,其中,所述测试字典为预先收集的测试数据,所述目标第一数据为所述第一变异数据中的一部分;
针对多组目标第二数据,将所述多组目标第二数据进行数据重组,获得至少一组第三变异数据,其中,所述目标第二数据为所述第二变异数据中的一部分;
将所述至少一组第一变异数据、所述至少一组第二变异数据和所述至少一组第三变异数据作为所述至少一组变异测试数据;
数据测试模块,用于将所述至少一组变异测试数据分别输入至目标待测系统,获得测试结果,所述测试结果包括被调用指令的指令数量;
针对每组所述变异测试数据,检测所述变异测试数据对应的指令数量是否大于历史指令数量;
若是,则将所述变异测试数据作为测试样本,用于继续生成更多的测试数据。
5.一种电子设备,其特征在于,所述电子设备包括处理器以及存储器,所述存储器存储有计算机程序,所述计算机程序中的计算机课执行指令被所述处理器执行时,实现权利要求1-3任意一项所述的测试方法。
6.一种存储介质,其特征在于,所述存储介质存储计算机程序,所述计算机程序中的计算机课执行指令被处理器执行时,实现权利要求1-3任意一项所述的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011358649.2A CN112486816B (zh) | 2020-11-27 | 2020-11-27 | 测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011358649.2A CN112486816B (zh) | 2020-11-27 | 2020-11-27 | 测试方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112486816A CN112486816A (zh) | 2021-03-12 |
CN112486816B true CN112486816B (zh) | 2024-04-02 |
Family
ID=74936290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011358649.2A Active CN112486816B (zh) | 2020-11-27 | 2020-11-27 | 测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112486816B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032927A (zh) * | 2018-06-26 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 一种漏洞挖掘方法及装置 |
CN109716346A (zh) * | 2016-07-18 | 2019-05-03 | 河谷生物组学有限责任公司 | 分布式机器学习系统、装置和方法 |
CN110191019A (zh) * | 2019-05-28 | 2019-08-30 | 北京百度网讯科技有限公司 | 车辆can总线的测试方法、装置、计算机设备和存储介质 |
CN111818011A (zh) * | 2020-05-29 | 2020-10-23 | 中国平安财产保险股份有限公司 | 异常访问行为识别方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1204048A1 (en) * | 2000-11-03 | 2002-05-08 | Sun Microsystems, Inc. | Method and apparatus for handling scenarios in spreadsheet documents |
-
2020
- 2020-11-27 CN CN202011358649.2A patent/CN112486816B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109716346A (zh) * | 2016-07-18 | 2019-05-03 | 河谷生物组学有限责任公司 | 分布式机器学习系统、装置和方法 |
CN109032927A (zh) * | 2018-06-26 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 一种漏洞挖掘方法及装置 |
CN110191019A (zh) * | 2019-05-28 | 2019-08-30 | 北京百度网讯科技有限公司 | 车辆can总线的测试方法、装置、计算机设备和存储介质 |
CN111818011A (zh) * | 2020-05-29 | 2020-10-23 | 中国平安财产保险股份有限公司 | 异常访问行为识别方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112486816A (zh) | 2021-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110506271B (zh) | 针对隐私敏感用户内容的可配置注释 | |
US20220207020A1 (en) | Anomaly detection | |
US9361457B1 (en) | Use of decoy data in a data store | |
CN105262760A (zh) | 一种防止恶意访问登录/注册接口的行为的方法和装置 | |
CN110008743B (zh) | 一种块链式账本中的数据属性标识方法、装置及设备 | |
CN110113315B (zh) | 一种业务数据的处理方法及设备 | |
CN110113393B (zh) | 一种消息推送方法、装置、电子设备及介质 | |
CN110362829B (zh) | 结构化病历数据的质量评估方法、装置及设备 | |
CN107911397B (zh) | 一种威胁评估方法及装置 | |
US20180137149A1 (en) | De-identification data generation apparatus, method, and non-transitory computer readable storage medium thereof | |
CN111092880B (zh) | 一种网络流量数据提取方法及装置 | |
CN112181430A (zh) | 代码变更统计方法、装置、电子设备及存储介质 | |
CN113868698A (zh) | 一种文件脱敏方法及设备 | |
US9154515B1 (en) | Systems and methods identifying and reacting to potentially malicious activity | |
CN112486816B (zh) | 测试方法、装置、电子设备及存储介质 | |
CN110516258B (zh) | 数据校验方法及装置、存储介质、电子装置 | |
CN110059087B (zh) | 一种块链式账本中的数据属性标识方法、装置及设备 | |
CN111124883A (zh) | 一种基于树形表格的测试用例库引入方法、系统及设备 | |
CN113923190B (zh) | 设备标识跳变的识别方法及装置、服务器及存储介质 | |
CN115481106A (zh) | 基于MongoDB数据库的分析方法、装置、设备及介质 | |
CN114328171A (zh) | 测试用例库的生成方法、装置、设备及存储介质 | |
CN111460273B (zh) | 信息推送方法和装置 | |
CN116647412B (zh) | 一种Web服务器的安全防御方法和系统 | |
CN108664497B (zh) | 数据匹配的方法和装置 | |
CN116702146B (zh) | 一种Web服务器的注入漏洞扫描方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |