CN106557412A - 一种模糊测试的方法及装置 - Google Patents

一种模糊测试的方法及装置 Download PDF

Info

Publication number
CN106557412A
CN106557412A CN201510622250.3A CN201510622250A CN106557412A CN 106557412 A CN106557412 A CN 106557412A CN 201510622250 A CN201510622250 A CN 201510622250A CN 106557412 A CN106557412 A CN 106557412A
Authority
CN
China
Prior art keywords
test data
measurand
test
code
type
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
Application number
CN201510622250.3A
Other languages
English (en)
Other versions
CN106557412B (zh
Inventor
符阳辉
任洪平
彭晶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201510622250.3A priority Critical patent/CN106557412B/zh
Publication of CN106557412A publication Critical patent/CN106557412A/zh
Application granted granted Critical
Publication of CN106557412B publication Critical patent/CN106557412B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种模糊测试的方法,包括:获取被测对象测试入口的类型;从已建立的测试数据与测试入口的类型的对应关系中,确定所述被测对象测试入口对应的测试数据的类型;向所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试。本发明实施例提供的模糊测试的方法,从已建立的测试数据与测试入口的类型的对应关系中,确定所述被测对象测试入口对应的测试数据的类型,向所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试的方式,有针对性的进行模糊测试,从而提高了测试的针对性和测试效率。

Description

一种模糊测试的方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种模糊测试的方法及装置。
背景技术
模糊测试(fuzz testing,简称为“fuzzing”)是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。其核心思想是自动或半自动的生成随机数据输入到一个程序中,并监视程序异常,如崩溃,断言失败,日志异常等,以发现可能的程序错误。
现有模糊测试技术每次都是使用海量数据进行测试,导致测试时针对性差,测试效率低下。
发明内容
为了解决现有技术中模糊测试时针对性差,测试效率低下的问题,本发明实施例提供一种模糊测试的方法,可以使用已建立的测试数据与测试入口的类型的对应关系有针对性的进行模糊测试,从而提高了测试的针对性和测试效率。本发明实施例还提供了相应的装置。
本发明第一方面提供一种模糊测试的方法,包括:
获取被测对象测试入口的类型;
从已建立的测试数据与测试入口的类型的对应关系中,确定所述被测对象测试入口对应的测试数据的类型;
向所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试。
本发明第二方面提供一种模糊测试的装置,包括:
获取单元,用于获取被测对象测试入口的类型;
确定单元,用于从已建立的测试数据与测试入口的类型的对应关系中,确定所述获取单元获取的所述被测对象测试入口对应的测试数据的类型;
测试单元,用于向所述确定单元确定的所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试。
本发明实施例采用从已建立的测试数据与测试入口的类型的对应关系中,确定所述被测对象测试入口对应的测试数据的类型,向所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试的方式,有针对性的进行模糊测试,从而提高了测试的针对性和测试效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中模糊测试的方法的一实施例示意图;
图2是本发明实施例中模糊测试的方法的另一实施例示意图;
图3是本发明实施例中模糊测试的方法的另一实施例示意图;
图4是本发明实施例中模糊测试的一示例示意图;
图5是本发明实施例中模糊测试的装置的一实施例示意图;
图6是本发明实施例中模糊测试的装置的另一实施例示意图;
图7是本发明实施例中模糊测试的装置的另一实施例示意图;
图8是本发明实施例中模糊测试的装置的另一实施例示意图;
图9是本发明实施例中模糊测试的装置的另一实施例示意图;
图10是本发明实施例中模糊测试的装置的另一实施例示意图。
具体实施方式
本发明实施例提供一种模糊测试的方法,可以使用已建立的测试数据与测试入口的类型的对应关系有针对性的进行模糊测试,从而提高了测试的针对性和测试效率。本发明实施例还提供了相应的装置。以下分别进行详细说明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1,本发明实施例提供的模糊测试的方法的一实施例包括:
101、获取被测对象测试入口的类型。
本发明实施例中被测对象为程序,测试入口的类型可以是程序中各个源文件的接口参数。
102、从已建立的测试数据与测试入口的类型的对应关系中,确定所述被测对象测试入口对应的测试数据的类型。
本发明实施例中,测试数据与测试入口的类型的对应关系可以是通过的海量数据测试收集起来的。
103、向所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试。
本发明实施例中,采用从已建立的测试数据与测试入口的类型的对应关系中,确定所述被测对象测试入口对应的测试数据的类型,向所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试的方式,有针对性的进行模糊测试,从而提高了测试的针对性和测试效率。
可选地,在上述图1对应的实施例的基础上,本发明实施例提供的模糊测试的方法的第一个可选实施例中,所述向所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试时,所述方法还可以包括:
确定所述对应类型的测试数据所测试的所述被测对象中的代码行;
根据所测试的所述代码行的数量,计算所述对应类型的测试数据对所述被测对象的代码覆盖率,所述代码覆盖率用于评估所述对应类型的测试数据对所述被测对象的测试范围。
本发明实施例中,在模糊测试过程中,对应类型的测试数据在被测对象中可能执行其中的一行或多行代码,也可能不执行任何一行代码,如果不执行任何一行代码,则代码覆盖率为零,如果执行一行或多行代码,则可以根据所执行代码的行数和被测对象代码的总行数,计算出该测试数据对应的代码覆盖率。代码覆盖率可以量化的看出测试数据对被测对象的影响,可以从开始初始化测试时,就不断的计算各测试数据对被测对象的代码覆盖率,当连续的两个测试数据在测试时重复测试了相同的代码行时,对重复的代码行不进行记录,只记录有差异的代码行,这样就可以通过累加各测试数据的代码覆盖率来计算总的代码覆盖率。总的代码覆盖率可以反映出被测对象在模糊测试过程中被测试的程度,如果一个被测对象最后测试完的总的代码覆盖率达到95%,则可以说明该被测对象没被检测的盲区已经很少了,当然,如果总的代码覆盖可以达到100%,那么模糊测试就可以实现漏洞的完全检测了。
可选地,在上述模糊测试的第一个可选实施例的基础上,本发明实施例提供的模糊测试的方法的第二个可选实施例中,所述方法还可以包括:
建立所述对应类型的测试数据与被测对象的入口类型、所述代码行的行号与所述代码覆盖率之间的对应关系;
将建立的所述对应关系添加到测试数据库中。
本发明实施例中,在模糊测试的过程中,同时再不断的建立测试数据与被测对象的入口类型、所述代码行的行号与所述代码覆盖率之间的对应关系,将新建的该对应关系添加到测试数据库中,可以为后面的被测对象提供更多的参考,从而进一步提升后面被测对象的测试效率。
可选地,在上述图1对应的模糊测试的实施例、第一个可选实施例或第二个可选实施例的基础上,本发明实施例提供的模糊测试的方法的第三个可选实施例中,所述确定所述被测对象测试入口对应的测试数据的类型之后,所述方法还可以包括:
根据所述对应的测试数据的类型,使用测试数据规则库中的规则,生成所述对应类型的测试数据。
本发明实施例中,考虑到模糊测试需要的测试数据具有海量、不确定性等特点,将这些数据的生成规则总结出来,形成多个生成规则,构建测试数据规则库,在需要测试数据时,根据测试数据的类型即可以从测试数据规则库中获取相应的规则,通过对生成规则的排列组合方式,生成需要的测试数据。
测试数据生成规则库中的规则可以包括:分隔符:各种分隔符的汇总,例如,\r,\n,,=,>,<等,随机数:包括各种长度的随机数,二进制数据量:各种二进制数据流的组合,字符型,包括ascii、unicode在内的各种字符型数据,bit类型,byte类型,float类型等。
可选地,在上述模糊测试的第一个可选实施例或第二个可选实施例的基础上,本发明实施例提供的模糊测试的方法的第四个可选实施例中,所述获取被测对象测试入口的类型之前,所述方法还可以包括:
对所述被测对象中的代码行添加标记,所述标记用于统计所述对应类型的测试数据是否执行该行代码;
所述确定所述对应类型的测试数据所测试的所述被测对象中的代码行,可以包括:
根据所述标记的变化确定所述对应类型的测试数据所测试的代码行。
本发明实施例中,可以通过插桩的方式对被测对象进行预处理,也就是对被测对象的代码行添加标记,通常在代码行的起始位置和结束位置分别添加标记,这样,就可以通过起始位置和结束位置标记的变化来确定测试数据是否执行该行代码。
参阅图2,本发明实施例提供的模糊测试的另一实施例包括:
如图2所示,模糊测试的过程包括测试数据生成、测试执行、覆盖率计算、覆盖率变化判断、结果收集等环节。
测试数据的生成和执行,是整个模糊测试运行的起点,通过海量测试数据的执行达到覆盖被测对象中更多代码的目的。
在测试执行的过程中,结合源代码和覆盖率工具进行覆盖率计算。
从模糊测试系统的角度来看,如图3所示,可以包括:测试数据生成与执行管理模块1、覆盖率计算与分析管理模块2和基线库管理模块3,以及被测对象4。
测试数据生成与执行管理模块1可包括:测试数据生成器11和测试数据执行器12。
测试数据生成器11用于根据测试数据的类型即可以从测试数据规则库中获取相应的规则,通过对生成规则的排列组合方式,生成需要的测试数据。
测试数据生成规则库中的规则可以包括:分隔符:各种分隔符的汇总,例如,\r,\n,,=,>,<等,随机数:包括各种长度的随机数,二进制数据量:各种二进制数据流的组合,字符型,包括ascii、unicode在内的各种字符型数据,bit类型,byte类型,float类型等。
同时,测试数据生成规则是可以动态扩充的,可以不断的完善。
基线库管理模块3可以看成是一种特殊的测试数据生成规则库。只是它与特殊的被测系统绑定,随着该系统的变化而更新。
测试数据执行器12用于在测试数据生成之后,根据被测对象4的协议或者接口,进行测试数据的注入,该执行器集中管理各种被测对象协议的解析和数据包的封装,是测试数据进入被测对象的必经之路。
覆盖率计算分析管理模块2包括源代码处理器21、覆盖率计算器22和覆盖率分析器23。
源代码处理器21用于在测试执行之前,对被测对象源代码进行插桩。根据被测对象使用的编程语言的不同,插桩的过程会有不同,例如C++的gcc编译器,通过makefile编译选项的修改进行插桩。
覆盖率计算器22用于在测试执行过程中,对每一个测试数据执行的代码覆盖率文件进行收集,然后计算代码覆盖率。根据被测对象使用的编程语言的不同,收集过程会有不同,例如C++的gcov工具。通过生成的gcov文件进行代码覆盖行的判断和代码覆盖率数据的收集和计算。
覆盖率分析器23
覆盖率分析器结合被测对象源代码和覆盖率收集器22的代码覆盖率数据文件,进行该测试数据对源代码影响范围的评估。具体流程如下:
获取代码源文件
获取该条测试数据生成的覆盖率文件,例如图4。其中的标注区域的数字表示该行代码被执行的次数。”-”表示该行未被覆盖。
对比顺次执行的两个测试数据A、B产生的覆盖率文件的差异。如果某行代码被执行次数从无到有,则表明B测试数据的执行覆盖了该代码行。如果某行代码被执行次数本来不为0,结果增加了次数。那么,表明A、B两个用例对该代码行均进行了覆盖。
基线库管理模块3包括基线库31。
基线库31主要是对覆盖率收集分析管理2中的结果进行保存。例如一个http接口A的某个参数B,对应的测试数据执行过后,覆盖了源文件M的第N行代码,使整个测试过程总的代码覆盖率提高了Q%。那么存储的该条基线为以下5元组:(A,B,M,N,Q%)。
基线库建立之后,当下次再遇到A接口的B参数类型的测试入口的时候,先直接调用基线库的数据进行测试而不需要再进行测试数据的构造。
通过测试数据对代码覆盖率变化的快速感知,建立测试数据与代码行之间的关联关系,并存储为该被测对象的基线库,达到沉淀模糊测试有效测试数据的目的。
参阅图5,本发明实施例提供的模糊测试的装置50的一实施例包括:
获取单元501,用于获取被测对象测试入口的类型;
确定单元502,用于从已建立的测试数据与测试入口的类型的对应关系中,确定所述获取单元501获取的所述被测对象测试入口对应的测试数据的类型;
测试单元503,用于向所述确定单元502确定的所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试。
本发明实施例中,获取单元501获取被测对象测试入口的类型,确定单元502从已建立的测试数据与测试入口的类型的对应关系中,确定所述获取单元501获取的所述被测对象测试入口对应的测试数据的类型;测试单元503向所述确定单元502确定的所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试。与现有技术无法针对性测试,测试效率低下相比,本发明实施例提供的模糊测试的方法,可以采用从已建立的测试数据与测试入口的类型的对应关系中,确定所述被测对象测试入口对应的测试数据的类型,向所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试的方式,有针对性的进行模糊测试,从而提高了测试的针对性和测试效率。
可选地,在上述图5对应的实施例的基础上,参阅图6,本发明实施例提供的模糊测试的装置50的第一个可选实施例中,所述装置50还包括计算单元504,
所述确定单元502,还用于在所述测试单元对所述被测对象进行模糊测试时,确定所述对应类型的测试数据所测试的所述被测对象中的代码行;
所述计算单元503,用于根据所述确定单元502确定的所测试的所述代码行的数量,计算所述对应类型的测试数据对所述被测对象的代码覆盖率,所述代码覆盖率用于评估所述对应类型的测试数据对所述被测对象的测试范围。
可选地,在上述图6对应的实施例的基础上,参阅图7,本发明实施例提供的模糊测试的装置50的第二个可选实施例中,所述装置50还包括建立单元505和添加单元506,
所述建立单元505,用于建立所述对应类型的测试数据与被测对象的入口类型、所述确定单元502确定的代码行的行号与所述计算单元计算的所述代码覆盖率之间的对应关系;
所述添加单元506,用于将所述建立单元505建立的所述对应关系添加到测试数据库中。
可选地,在上述图5对应的实施例的基础上,参阅图8,本发明实施例提供的模糊测试的装置50的第三个可选实施例中,所述装置50还包括生成单元507,
所述生成单元507,用于根据所述确定单元502确定的所述对应的测试数据的类型,使用测试数据规则库中的规则,生成所述对应类型的测试数据。
实际上,在图6或图7对应的实施例的基础上,也可以包括生成单元507,本处不一一罗列。
可选地,在上述图6对应的实施例的基础上,参阅图9,本发明实施例提供的模糊测试的装置50的第四个可选实施例中,所述装置50还包括处理单元508,
所述处理单元508,用于对所述被测对象中的代码行添加标记,所述标记用于统计所述对应类型的测试数据是否执行该行代码;
所述确定单元502,用于根据所述处理单元508添加的标记的变化确定所述对应类型的测试数据所测试的代码行。
实际上,在图7对应的实施例的基础上,也可以包括处理单元508,本处不一一罗列。
图10是本发明实施例提供的模糊测试的装置50的结构示意图。模糊测试的装置50包括处理器510、存储器550和输入/输出I/O设备530,存储器550可以包括只读存储器和随机存取存储器,并向处理器510提供操作指令和数据。存储器550的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,存储器550存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
在本发明实施例中,通过调用存储器550存储的操作指令(该操作指令可存储在操作系统中),
获取被测对象测试入口的类型;
从已建立的测试数据与测试入口的类型的对应关系中,确定所述被测对象测试入口对应的测试数据的类型;
向所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试。
本发明实施例采用从已建立的测试数据与测试入口的类型的对应关系中,确定所述被测对象测试入口对应的测试数据的类型,向所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试的方式,有针对性的进行模糊测试,从而提高了测试的针对性和测试效率。
处理器510控制模糊测试的装置50的操作,处理器510还可以称为CPU(Central Processing Unit,中央处理单元)。存储器550可以包括只读存储器和随机存取存储器,并向处理器510提供指令和数据。存储器550的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中模糊测试的装置50的各个组件通过总线系统520耦合在一起,其中总线系统520除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统520。
上述本发明实施例揭示的方法可以应用于处理器510中,或者由处理器510实现。处理器510可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器510中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器510可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器550,处理器510读取存储器550中的信息,结合其硬件完成上述方法的步骤。
可选地,处理器510还用于:
确定所述对应类型的测试数据所测试的所述被测对象中的代码行;
根据所测试的所述代码行的数量,计算所述对应类型的测试数据对所述被测对象的代码覆盖率,所述代码覆盖率用于评估所述对应类型的测试数据对所述被测对象的测试范围。
可选地,处理器510还用于:
建立所述对应类型的测试数据与被测对象的入口类型、所述代码行的行号与所述代码覆盖率之间的对应关系;
将建立的所述对应关系添加到测试数据库中。
可选地,处理器510还用于:
根据所述对应的测试数据的类型,使用测试数据规则库中的规则,生成所述对应类型的测试数据。
可选地,处理器510还用于:
对所述被测对象中的代码行添加标记,所述标记用于统计所述对应类型的测试数据是否执行该行代码;
根据所述标记的变化确定所述对应类型的测试数据所测试的代码行。
图10对应的实施例或任一可选实施例中可以参阅图1至图4部分的相关描述进行理解,本处不做过多赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的模糊测试的方法以及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种模糊测试的方法,其特征在于,包括:
获取被测对象测试入口的类型;
从已建立的测试数据与测试入口的类型的对应关系中,确定所述被测对象测试入口对应的测试数据的类型;
向所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试。
2.根据权利要求1所述的方法,其特征在于,所述向所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试时,所述方法还包括:
确定所述对应类型的测试数据所测试的所述被测对象中的代码行;
根据所测试的所述代码行的数量,计算所述对应类型的测试数据对所述被测对象的代码覆盖率,所述代码覆盖率用于评估所述对应类型的测试数据对所述被测对象的测试范围。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
建立所述对应类型的测试数据与被测对象的入口类型、所述代码行的行号与所述代码覆盖率之间的对应关系;
将建立的所述对应关系添加到测试数据库中。
4.根据权利要求1-3任一所述的方法,其特征在于,所述确定所述被测对象测试入口对应的测试数据的类型之后,所述方法还包括:
根据所述对应的测试数据的类型,使用测试数据规则库中的规则,生成所述对应类型的测试数据。
5.根据权利要求2或3所述的方法,其特征在于,所述获取被测对象测试入口的类型之前,所述方法还包括:
对所述被测对象中的代码行添加标记,所述标记用于统计所述对应类型的测试数据是否执行该行代码;
所述确定所述对应类型的测试数据所测试的所述被测对象中的代码行,包括:
根据所述标记的变化确定所述对应类型的测试数据所测试的代码行。
6.一种模糊测试的装置,其特征在于,包括:
获取单元,用于获取被测对象测试入口的类型;
确定单元,用于从已建立的测试数据与测试入口的类型的对应关系中,确定所述获取单元获取的所述被测对象测试入口对应的测试数据的类型;
测试单元,用于向所述确定单元确定的所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括计算单元,
所述确定单元,还用于在所述测试单元对所述被测对象进行模糊测试时,确定所述对应类型的测试数据所测试的所述被测对象中的代码行;
所述计算单元,用于根据所述确定单元确定的所测试的所述代码行的数量,计算所述对应类型的测试数据对所述被测对象的代码覆盖率,所述代码覆盖率用于评估所述对应类型的测试数据对所述被测对象的测试范围。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括建立单元和添加单元,
所述建立单元,用于建立所述对应类型的测试数据与被测对象的入口类型、所述确定单元确定的代码行的行号与所述计算单元计算的所述代码覆盖率之间的对应关系;
所述添加单元,用于将所述建立单元建立的所述对应关系添加到测试数据库中。
9.根据权利要求6-8任一所述的装置,其特征在于,所述装置还包括生成单元,
所述生成单元,用于根据所述确定单元确定的所述对应的测试数据的类型,使用测试数据规则库中的规则,生成所述对应类型的测试数据。
10.根据权利要求7或8所述的装置,其特征在于,所述装置还包括处理单元,
所述处理单元,用于对所述被测对象中的代码行添加标记,所述标记用于统计所述对应类型的测试数据是否执行该行代码;
所述确定单元,用于根据所述处理单元添加的标记的变化确定所述对应类型的测试数据所测试的代码行。
CN201510622250.3A 2015-09-25 2015-09-25 一种模糊测试的方法及装置 Active CN106557412B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510622250.3A CN106557412B (zh) 2015-09-25 2015-09-25 一种模糊测试的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510622250.3A CN106557412B (zh) 2015-09-25 2015-09-25 一种模糊测试的方法及装置

Publications (2)

Publication Number Publication Date
CN106557412A true CN106557412A (zh) 2017-04-05
CN106557412B CN106557412B (zh) 2019-07-05

Family

ID=58414519

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510622250.3A Active CN106557412B (zh) 2015-09-25 2015-09-25 一种模糊测试的方法及装置

Country Status (1)

Country Link
CN (1) CN106557412B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109213671A (zh) * 2017-06-30 2019-01-15 中国航发商用航空发动机有限责任公司 软件测试方法及其平台
CN111830928A (zh) * 2020-06-08 2020-10-27 杭州电子科技大学 一种工业控制设备固件的模糊测试方法
CN111858307A (zh) * 2020-06-18 2020-10-30 三星(中国)半导体有限公司 模糊测试方法和设备
US11868238B2 (en) 2020-06-18 2024-01-09 Samsung Electronics Co., Ltd. Method and apparatus for fuzz testing based on resource access feedback

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100058475A1 (en) * 2008-08-26 2010-03-04 Nec Laboratories America, Inc. Feedback-guided fuzz testing for learning inputs of coma
US7926114B2 (en) * 2007-05-31 2011-04-12 Microsoft Corporation Testing software applications with schema-based fuzzing
CN103812729A (zh) * 2014-02-19 2014-05-21 北京理工大学 一种网络协议模糊测试方法和装置
CN104298587A (zh) * 2013-07-15 2015-01-21 腾讯科技(深圳)有限公司 一种代码覆盖测试方法、装置和系统
CN104320312A (zh) * 2014-11-20 2015-01-28 国家电网公司 网络应用安全测试工具及模糊测试用例生成方法和系统
CN104573523A (zh) * 2013-10-24 2015-04-29 深圳市腾讯计算机系统有限公司 文件漏洞挖掘的实现方法和装置
CN104573524A (zh) * 2014-12-19 2015-04-29 中国航天科工集团第二研究院七〇六所 一种基于静态检测的模糊测试方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7926114B2 (en) * 2007-05-31 2011-04-12 Microsoft Corporation Testing software applications with schema-based fuzzing
US20100058475A1 (en) * 2008-08-26 2010-03-04 Nec Laboratories America, Inc. Feedback-guided fuzz testing for learning inputs of coma
CN104298587A (zh) * 2013-07-15 2015-01-21 腾讯科技(深圳)有限公司 一种代码覆盖测试方法、装置和系统
CN104573523A (zh) * 2013-10-24 2015-04-29 深圳市腾讯计算机系统有限公司 文件漏洞挖掘的实现方法和装置
CN103812729A (zh) * 2014-02-19 2014-05-21 北京理工大学 一种网络协议模糊测试方法和装置
CN104320312A (zh) * 2014-11-20 2015-01-28 国家电网公司 网络应用安全测试工具及模糊测试用例生成方法和系统
CN104573524A (zh) * 2014-12-19 2015-04-29 中国航天科工集团第二研究院七〇六所 一种基于静态检测的模糊测试方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
孙哲,刘大光,武学礼,文伟平: "基于模糊测试的网络协议自动化漏洞挖掘工具设计与实现", 《信息网络安全》 *
李彤,黄轩,黄睿: "模糊测试中测试用例生成方法", 《计算机系统应用》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109213671A (zh) * 2017-06-30 2019-01-15 中国航发商用航空发动机有限责任公司 软件测试方法及其平台
CN111830928A (zh) * 2020-06-08 2020-10-27 杭州电子科技大学 一种工业控制设备固件的模糊测试方法
CN111830928B (zh) * 2020-06-08 2021-07-30 杭州电子科技大学 一种工业控制设备固件的模糊测试方法
CN111858307A (zh) * 2020-06-18 2020-10-30 三星(中国)半导体有限公司 模糊测试方法和设备
US11868238B2 (en) 2020-06-18 2024-01-09 Samsung Electronics Co., Ltd. Method and apparatus for fuzz testing based on resource access feedback
CN111858307B (zh) * 2020-06-18 2024-04-19 三星(中国)半导体有限公司 模糊测试方法和设备

Also Published As

Publication number Publication date
CN106557412B (zh) 2019-07-05

Similar Documents

Publication Publication Date Title
CN102567200A (zh) 基于函数调用图的并行化安全漏洞检测方法
Lakhotia et al. Automated test data generation for coverage: Haven't we solved this problem yet?
CN106294148B (zh) 基于扩展符号变迁系统的c语言程序软件验证方法及装置
KR20140006862A (ko) 흐름 분석 계측
CN106557412A (zh) 一种模糊测试的方法及装置
CN102799529A (zh) 一种动态的二进制代码测试用例生成方法
Walkinshaw et al. Automated comparison of state-based software models in terms of their language and structure
Delahaye et al. Explanation-based generalization of infeasible path
Lin et al. Recovering fitness gradients for interprocedural Boolean flags in search-based testing
Xu et al. Melton: a practical and precise memory leak detection tool for C programs
CN103218297B (zh) 测试数据的筛选方法及装置
CN111753306A (zh) 一种智能合约漏洞检测方法、装置、电子设备及存储介质
CN115659335A (zh) 基于混合模糊测试的区块链智能合约漏洞检测方法及装置
CN107451058A (zh) 一种软件开发方法和装置
Hao et al. Constructing benchmarks for supporting explainable evaluations of static application security testing tools
Ding et al. Detection of infeasible paths: Approaches and challenges
CN112579440A (zh) 一种虚拟测试依赖对象的确定方法及装置
CN102467583B (zh) 追踪不确定信号的方法和装置
CN106294053A (zh) 一种内存性能测试方法及装置
Gerlich et al. Random testing: From the classical approach to a global view and full test automation
CN105718373B (zh) 满足do-178c的代码覆盖率生成方法
CN113688403A (zh) 一种基于符号执行验证的智能合约漏洞检测方法及装置
CN113434385A (zh) 一种针对软件模型检查工具的测试用例自动生成方法和系统
US8856755B2 (en) Dominant-state-based coverage metric
Sagdeo et al. Using automatically generated invariants for regression testing and bug localization

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
TR01 Transfer of patent right

Effective date of registration: 20211009

Address after: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors

Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

TR01 Transfer of patent right