CN113111351A - 测试方法、装置和计算机可读存储介质 - Google Patents
测试方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN113111351A CN113111351A CN202010024109.4A CN202010024109A CN113111351A CN 113111351 A CN113111351 A CN 113111351A CN 202010024109 A CN202010024109 A CN 202010024109A CN 113111351 A CN113111351 A CN 113111351A
- Authority
- CN
- China
- Prior art keywords
- cluster
- algorithm
- data
- variation
- selecting
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 97
- 238000010998 test method Methods 0.000 title claims abstract description 14
- 230000035772 mutation Effects 0.000 claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 24
- 230000008569 process Effects 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 9
- 238000013101 initial test Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000010187 selection method Methods 0.000 description 2
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开涉及一种测试方法、装置和计算机可读存储介质,涉及计算机技术领域。本公开的方法包括:获取测试过程中的待变异数据;根据待变异数据的长度,从第一簇选取第一变异算法的次数,以及从第二簇选取第二变异算法的次数,确定从第一簇选取第一变异算法或从第二簇选取第二变异算法,作为当前选取方式;其中,第一簇包括多个第一变异算法,利用第一变异算法对待变异数据进行变异后数据的长度改变,第二簇包括多个第二变异算法,利用第二变异算法对待变异数据进行变异后数据的长度不变;根据当前选取方式选取一个变异算法对待变异数据进行变异;利用变异后的数据测试是否发现新路径。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种测试方法、装置和计算机可读存储介质。
背景技术
模糊测试(Fuzzing),是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。
模糊测试的效果取决于模糊测试执行的覆盖度,在执行机性能一定的情况下,执行的覆盖度取决于模糊测试引擎产生输入数据的有效性。输入的数据有效性越高则发现新路径的概率越高,覆盖度越大。
现有模糊测试主要通过优化变异算法来提高模糊测试产生输入数据的有效性。
发明内容
发明人发现:变异算法趋于成熟,通过优化变异算法提高输入数据有效性趋于瓶颈。模糊测试引擎中变异算法调度方法采用随机调度的方式,导致产生的变异后的数据有效性低,大量变异后的数据为无效的数据,无法发现新路径。
本公开所要解决的一个技术问题是:如何提高模糊测试中变异后的数据的有效性,提高模糊测试执行的覆盖度。
根据本公开的一些实施例,提供的一种测试方法,包括:获取测试过程中的待变异数据;根据待变异数据的长度,从第一簇选取第一变异算法的次数,以及从第二簇选取第二变异算法的次数,确定从第一簇选取第一变异算法或从第二簇选取第二变异算法,作为当前选取方式;其中,第一簇包括多个第一变异算法,利用第一变异算法对待变异数据进行变异后数据的长度改变,第二簇包括多个第二变异算法,利用第二变异算法对待变异数据进行变异后数据的长度不变;根据当前选取方式选取一个变异算法对待变异数据进行变异;利用变异后的数据测试是否发现新路径。
在一些实施例中,从第一簇选取第一变异算法的次数相对于从第二簇选取第二变异算法的次数越大,待变异数据的长度越长,从第二簇选取第二变异算法的概率越大。
在一些实施例中,根据待变异数据的长度,从第一簇选取第一变异算法的次数,以及从第二簇选取第二变异算法的次数,确定从第一簇选取第一变异算法或从第二簇选取第二变异算法包括:根据从第二簇选取第二变异算法的次数和预设值,确定从第一簇选取第一变异算法的第一权重;根据从第一簇选取第一变异算法的次数和待变异数据的长度,确定从第二簇选取第二变异算法的第二权重;根据第一权重和第二权重,确定从第一簇选取第一变异算法或从第二簇选取第二变异算法。
在一些实施例中,第一权重为从第二簇选取第二变异算法的次数和预设值的乘积;第二权重为第一变异算法的次数、待变异数据的长度和预设系数的乘积;根据第一权重和第二权重,确定从第一簇选取第一变异算法或从第二簇选取第二变异算法包括:从0到第一权重和第二权重之和的闭区间内,随机选取一个数值;在数值小于第一权重的情况下,确定从第一簇选取第一变异算法;在数值大于等于第一权重的情况下,确定从第二簇选取第二变异算法;其中,预设系数与待变异数据的长度的乘积与预设值的比值大于预设比值。
在一些实施例中,根据当前选取方式选取一个变异算法对待变异数据进行变异;利用变异后的数据测试是否发现新路径包括:每次根据当前选取方式选取一个变异算法对待变异数据进行变异,利用变异后的数据测试是否发现新路径,直至发现新路径或者达到第一预设次数。
在一些实施例中,还包括:获取测试开始时的输入数据;每次随机从第一簇和第二簇中选取一个变异算法,对输入数据进行变异,利用变异后的数据测试是否发现新路径,直至达到第二预设次数或发现新路径。
根据本公开的另一些实施例,提供的一种测试装置,包括:获取模块,用于获取测试过程中的待变异数据;确定模块,用于根据待变异数据的长度,从第一簇选取第一变异算法的次数,以及从第二簇选取第二变异算法的次数,确定从第一簇选取第一变异算法或从第二簇选取第二变异算法,作为当前选取方式;其中,第一簇包括多个第一变异算法,利用第一变异算法对待变异数据进行变异后数据的长度改变,第二簇包括多个第二变异算法,利用第二变异算法对待变异数据进行变异后数据的长度不变;变异模块,用于根据当前选取方式选取一个变异算法对待变异数据进行变异;测试模块,用于利用变异后的数据测试是否发现新路径。
在一些实施例中,从第一簇选取第一变异算法的次数相对于从第二簇选取第二变异算法的次数越大,待变异数据的长度越长,从第二簇选取第二变异算法的概率越大。
在一些实施例中,确定模块用于根据从第二簇选取第二变异算法的次数和预设值,确定从第一簇选取第一变异算法的第一权重;根据从第一簇选取第一变异算法的次数和待变异数据的长度,确定从第二簇选取第二变异算法的第二权重;根据第一权重和第二权重,确定从第一簇选取第一变异算法或从第二簇选取第二变异算法。
在一些实施例中,第一权重为从第二簇选取第二变异算法的次数和预设值的乘积;第二权重为第一变异算法的次数、待变异数据的长度和预设系数的乘积;确定模块用于从0到第一权重和第二权重之和的闭区间内,随机选取一个数值;在数值小于第一权重的情况下,确定从第一簇选取第一变异算法;在数值大于等于第一权重的情况下,确定从第二簇选取第二变异算法;其中,预设系数与待变异数据的长度的乘积与预设值的比值大于预设比值。
在一些实施例中,变异模块用于每次根据当前选取方式选取一个变异算法对待变异数据进行变异;测试模块用于每次利用变异后的数据测试是否发现新路径,直至发现新路径或者达到第一预设次数。
在一些实施例中,还包括:初始测试模块,用于获取测试开始时的输入数据;每次随机从第一簇和第二簇中选取一个变异算法,对输入数据进行变异,利用变异后的数据测试是否发现新路径,直至达到第二预设次数或发现新路径。
根据本公开的又一些实施例,提供的一种测试装置,包括:处理器;以及耦接至处理器的存储器,用于存储指令,指令被处理器执行时,使处理器执行如前述任意实施例的测试方法。
根据本公开的再一些实施例,提供的一种非瞬时性计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意实施例测试方法的步骤。
本公开根据变异算法对数据长度是否改变将变异算法划分为第一簇和第二簇,针对待变异数据,根据待变异数据的长度,从第一簇选取第一变异算法的次数,以及从第二簇选取第二变异算法的次数,确定当前选取方式,根据当前选取方式选取一个变异算法对待变异数据进行变异,并利用变异后的数据测试是否发现新路径。本公开提出了一种模糊测试中变异算法调度方法,引入待变异数据长度因子,并根据不同变异算法的选取次数实现变异算法的动态调度,由于不同的变异算法变换调度,可以提高变异数据的有效性,提高发现新路径的概率,提高模糊测试执行的覆盖度。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开的一些实施例的测试方法的流程示意图。
图2示出本公开的另一些实施例的测试方法的流程示意图。
图3示出本公开的一些实施例的测试装置的结构示意图。
图4示出本公开的另一些实施例的测试装置的结构示意图。
图5示出本公开的又一些实施例的测试装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开提出一种测试方法,可以对模糊测试中的变异算法进行动态调度,下面结合图1进行描述。
图1为本公开测试方法一些实施例的流程图。如图1所示,该实施例的方法包括:步骤S102~S108。
在步骤S102中,获取测试过程中的待变异数据。
模糊测试过程中会循环执行多次测试,例如,通常模糊测试会执行150万次以上,每次测试将待变异数据进行变异后,利用变异后的数据进行测试。待变异数据可以是前一次测试中变异后的数据。
在步骤S104中,根据待变异数据的长度,从第一簇选取第一变异算法的次数,以及从第二簇选取第二变异算法的次数,确定从第一簇选取第一变异算法或从第二簇选取第二变异算法,作为当前选取方式。
例如,第一簇包括多个第一变异算法,利用第一变异算法对待变异数据进行变异后数据的长度改变,第二簇包括多个第二变异算法,利用第二变异算法对待变异数据进行变异后数据的长度不变。第一变异算法例如为InsertByte(插入字节)、DeleteByt(删除字节)算法,这些算法会随机对待变异数据进行增删等变异操作。第二变异算法例如为SwapByte(交换字节)、ChangeWord(改变字)等算法,主要对待变异数据进行字节、字等变换等变异操作。
在一些实施例中,从第一簇选取第一变异算法的次数相对于从第二簇选取第二变异算法的次数越大,待变异数据的长度越长,从第二簇选取第二变异算法的概率越大。
在一些实施例中,根据从第二簇选取第二变异算法的次数和预设值,确定从第一簇选取第一变异算法的第一权重;根据从第一簇选取第一变异算法的次数和待变异数据的长度,确定从第二簇选取第二变异算法的第二权重;根据第一权重和第二权重,确定从第一簇选取第一变异算法或从第二簇选取第二变异算法。
预设值例如为Linux系统中定义的最大路径(MAX_PATH)值4096,也可以根据实际需求设置其他值,例如,1024,2048等。选取第二变异算法的次数越大,第一权重越大。选取第一变异算法的次数越大,待变异数据的长度越长,第二权重越大。第一权重越大选取第一变异算法的概率越高,第二权重越大选取第二变异算法的概率越高。
在一些实施例中,第一权重为从第二簇选取第二变异算法的次数和预设值的乘积;第二权重为第一变异算法的次数、待变异数据的长度和预设系数的乘积。例如,第一簇记为:C={A1,A2…Ap},A1,A2…Ap分别表示不同的第一变异算法;第二簇,记为UC={B1,B2…Bq},B1,B2…Bq分别表示不同的第二变异算法。从C中选取第一变异算法的次数记为l,从UC中选取第二变异算法发的次数记为m,预设值记为k‘,预设系数记为α,待变异数据的长度记为k。第一权重可以用m*k‘表示,第二权重可以用α*l*k表示。第一权重和第二权重也可以采用其他表示方式,例如,第一权重表示为 第二权重表示为预设系数与待变异数据的长度的乘积与预设值的比值大于预设比值。预设比值例如为1/10,使得预设系数与待变异数据的长度的乘积与预设值的数量级相差不是很大,预设系数和预设值的取值可以根据实际需求进行设置。
进一步,从0到第一权重和第二权重之和的闭区间内,随机选取一个数值;在数值小于第一权重的情况下,确定从第一簇选取第一变异算法;在数值大于等于第一权重的情况下,确定从第二簇选取第二变异算法。
例如,随机选取的数值可以记为sed=Rand(m*k’+α*l*k),Rand()表示选取随机数。如果sed<m*k’,则确定从第一簇选取第一变异算法作为当前选取方式。如果sed≥m*k’,则确定从第二簇选取第二变异算法作为当前选取方式。
在步骤S106中,根据当前选取方式选取一个变异算法对待变异数据进行变异。
例如,如果当前选取方式是从第一簇选取第一变异算法,则选取一个第一变异算法,利用选取的第一变异算法对待变异数据进行变异,相反的,则利用选取的第二变异算法对待变异数据进行变异。
在步骤S108中,利用变异后的数据测试是否发现新路径。
由于模糊测试中执行的测试的次数很多,为了避免每次都执行步骤S102~S104确定选取方式,造成算法调度开销很大。因此,可以根据当前选取方式执行多次选取一个变异算法对待变异数据进行变异,并利用变异后的数据测试的步骤。每次根据当前选取方式选取一个变异算法对待变异数据进行变异,利用变异后的数据测试是否发现新路径,重复该步骤直至发现新路径或者达到第一预设次数。第一预设次数例如为500~1500次,可以根据实际测试结果或需求进行设置。
上述实施例的方法根据变异算法对数据长度是否改变将变异算法划分为第一簇和第二簇,针对待变异数据,根据待变异数据的长度,从第一簇选取第一变异算法的次数,以及从第二簇选取第二变异算法的次数,确定当前选取方式,根据当前选取方式选取一个变异算法对待变异数据进行变异,并利用变异后的数据测试是否发现新路径。上述实施例提出了一种模糊测试中变异算法调度方法,引入待变异数据长度因子,并根据不同变异算法的选取次数实现变异算法的动态调度,由于不同的变异算法变换调度,可以提高变异数据的有效性,提高发现新路径的概率,提高模糊测试执行的覆盖度。
下面结合图2描述本公开的测试方法的另一些实施例。
图2为本公开测试方法另一些实施例的流程图。如图2所示,该实施例的方法包括:步骤S202~S218。
在步骤S202中,获取测试开始时的输入数据。
测试开始时的输入数据即第一次测试的待变异数据。
在步骤S204中,随机从第一簇和第二簇中选取一个变异算法,对输入数据进行变异。
由于测试开始时,从第一簇选取第一变异算法的次数,以及从第二簇选取第二变异算法的次数均为0,因此,随机从第一簇和第二簇中的所有变异算法总选取一个变异算法。
在步骤S206中,利用变异后的数据测试是否发现新路径,如果是,则本次路径探索完成,否则执行步骤S208。
在步骤S208中,判断是否达到第二预设次数,如果是,则执行步骤S210,否则返回步骤S204重新开始执行。
执行第二预设次数的变异和测试,变异测量为随机从第一簇和第二簇中选取一个变异算法,对输入数据进行变异,可以表示为random(C+UC)。
在步骤S210中,将当前变异后的数据作为当前待变异数据。
在步骤S212中,根据当前待变异数据的长度,从第一簇选取第一变异算法的次数,以及从第二簇选取第二变异算法的次数,确定从第一簇选取第一变异算法或从第二簇选取第二变异算法,作为当前选取方式。
在步骤S214中,根据当前选取方式选取一个变异算法对待变异数据进行变异。
在步骤S216中,利用变异后的数据测试是否发现新路径,如果是,则本次路径探索完成,否则执行步骤S218。
在步骤S218中,判断是否达到第一预设次数,如果是,则返回步骤S210重新开始执行,否则返回步骤S214重新开始执行。
例如,sed=Rand(m*k’+α*l*k),如果ed<m*k’,则执行1000次random(C),如果sed≥m*k’,则执行1000次random(UC)。
完成一次路径探索之后,可以返回步骤S202重新开始下一次路径探索。
上述实施例的方法通过动态变异算法的调度,能够提高模糊测试中变异后的数据的有效性,提高模糊测试的效果和效率。
本公开还提供一种测试装置,下面结合图3进行描述。
图3为本公开测试装置的一些实施例的结构图。如图3所示,该实施例的装置30包括:获取模块310,确定模块320,变异模块330,测试模块340。
获取模块310用于获取测试过程中的待变异数据。
确定模块320用于根据待变异数据的长度,从第一簇选取第一变异算法的次数,以及从第二簇选取第二变异算法的次数,确定从第一簇选取第一变异算法或从第二簇选取第二变异算法,作为当前选取方式;其中,第一簇包括多个第一变异算法,利用第一变异算法对待变异数据进行变异后数据的长度改变,第二簇包括多个第二变异算法,利用第二变异算法对待变异数据进行变异后数据的长度不变。
在一些实施例中,从第一簇选取第一变异算法的次数相对于从第二簇选取第二变异算法的次数越大,待变异数据的长度越长,从第二簇选取第二变异算法的概率越大。
在一些实施例中,确定模块320用于根据从第二簇选取第二变异算法的次数和预设值,确定从第一簇选取第一变异算法的第一权重;根据从第一簇选取第一变异算法的次数和待变异数据的长度,确定从第二簇选取第二变异算法的第二权重;根据第一权重和第二权重,确定从第一簇选取第一变异算法或从第二簇选取第二变异算法。
在一些实施例中,第一权重为从第二簇选取第二变异算法的次数和预设值的乘积;第二权重为第一变异算法的次数、待变异数据的长度和预设系数的乘积;确定模块320用于从0到第一权重和第二权重之和的闭区间内,随机选取一个数值;在数值小于第一权重的情况下,确定从第一簇选取第一变异算法;在数值大于等于第一权重的情况下,确定从第二簇选取第二变异算法;其中,预设系数与待变异数据的长度的乘积与预设值的比值大于预设比值。
变异模块330用于根据当前选取方式选取一个变异算法对待变异数据进行变异。
在一些实施例中,变异模块330用于每次根据当前选取方式选取一个变异算法对待变异数据进行变异;测试模块用于每次利用变异后的数据测试是否发现新路径,直至发现新路径或者达到第一预设次数。
测试模块340用于利用变异后的数据测试是否发现新路径。
在一些实施例中,还包括:初始测试模块350,用于获取测试开始时的输入数据;每次随机从第一簇和第二簇中选取一个变异算法,对输入数据进行变异,利用变异后的数据测试是否发现新路径,直至达到第二预设次数或发现新路径。
本公开的实施例中的测试装置可各由各种计算设备或计算机系统来实现,下面结合图4以及图5进行描述。
图4为本公开测试装置的一些实施例的结构图。如图4所示,该实施例的装置40包括:存储器410以及耦接至该存储器410的处理器420,处理器420被配置为基于存储在存储器410中的指令,执行本公开中任意一些实施例中的测试方法。
其中,存储器410例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
图5为本公开测试装置的另一些实施例的结构图。如图5所示,该实施例的装置50包括:存储器510以及处理器520,分别与存储器410以及处理器420类似。还可以包括输入输出接口530、网络接口540、存储接口550等。这些接口530,540,550以及存储器510和处理器520之间例如可以通过总线560连接。其中,输入输出接口530为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口540为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口550为SD卡、U盘等外置存储设备提供连接接口。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (14)
1.一种测试方法,包括:
获取测试过程中的待变异数据;
根据所述待变异数据的长度,从第一簇选取第一变异算法的次数,以及从第二簇选取第二变异算法的次数,确定从所述第一簇选取第一变异算法或从所述第二簇选取第二变异算法,作为当前选取方式;其中,所述第一簇包括多个第一变异算法,利用所述第一变异算法对待变异数据进行变异后数据的长度改变,所述第二簇包括多个第二变异算法,利用所述第二变异算法对待变异数据进行变异后数据的长度不变;
根据当前选取方式选取一个变异算法对所述待变异数据进行变异;
利用变异后的数据测试是否发现新路径。
2.根据权利要求1所述的测试方法,其中,
从第一簇选取第一变异算法的次数相对于从第二簇选取第二变异算法的次数越大,所述待变异数据的长度越长,从所述第二簇选取第二变异算法的概率越大。
3.根据权利要求1所述的测试方法,其中,
所述根据所述待变异数据的长度,从第一簇选取第一变异算法的次数,以及从第二簇选取第二变异算法的次数,确定从所述第一簇选取第一变异算法或从所述第二簇选取第二变异算法包括:
根据从第二簇选取第二变异算法的次数和预设值,确定从所述第一簇选取第一变异算法的第一权重;
根据从第一簇选取第一变异算法的次数和所述待变异数据的长度,确定从所述第二簇选取第二变异算法的第二权重;
根据所述第一权重和所述第二权重,确定从所述第一簇选取第一变异算法或从所述第二簇选取第二变异算法。
4.根据权利要求3所述的测试方法,其中,
所述第一权重为从第二簇选取第二变异算法的次数和预设值的乘积;所述第二权重为第一变异算法的次数、所述待变异数据的长度和预设系数的乘积;
所述根据所述第一权重和所述第二权重,确定从所述第一簇选取第一变异算法或从所述第二簇选取第二变异算法包括:
从0到所述第一权重和所述第二权重之和的闭区间内,随机选取一个数值;
在所述数值小于第一权重的情况下,确定从所述第一簇选取第一变异算法;
在所述数值大于等于第一权重的情况下,确定从所述第二簇选取第二变异算法;
其中,所述预设系数与所述待变异数据的长度的乘积与所述预设值的比值大于预设比值。
5.根据权利要求1所述的测试方法,其中,
所述根据当前选取方式选取一个变异算法对所述待变异数据进行变异;利用变异后的数据测试是否发现新路径包括:
每次根据当前选取方式选取一个变异算法对所述待变异数据进行变异,利用变异后的数据测试是否发现新路径,直至发现新路径或者达到第一预设次数。
6.根据权利要求1所述的测试方法,还包括:
获取测试开始时的输入数据;
每次随机从所述第一簇和所述第二簇中选取一个变异算法,对所述输入数据进行变异,利用变异后的数据测试是否发现新路径,直至达到第二预设次数或发现新路径。
7.一种测试装置,包括:
获取模块,用于获取测试过程中的待变异数据;
确定模块,用于根据所述待变异数据的长度,从第一簇选取第一变异算法的次数,以及从第二簇选取第二变异算法的次数,确定从所述第一簇选取第一变异算法或从所述第二簇选取第二变异算法,作为当前选取方式;其中,所述第一簇包括多个第一变异算法,利用所述第一变异算法对待变异数据进行变异后数据的长度改变,所述第二簇包括多个第二变异算法,利用所述第二变异算法对待变异数据进行变异后数据的长度不变;
变异模块,用于根据当前选取方式选取一个变异算法对所述待变异数据进行变异;
测试模块,用于利用变异后的数据测试是否发现新路径。
8.根据权利要求7所述的测试装置,其中,
从第一簇选取第一变异算法的次数相对于从第二簇选取第二变异算法的次数越大,所述待变异数据的长度越长,从所述第二簇选取第二变异算法的概率越大。
9.根据权利要求7所述的测试装置,其中,
所述确定模块用于根据从第二簇选取第二变异算法的次数和预设值,确定从所述第一簇选取第一变异算法的第一权重;根据从第一簇选取第一变异算法的次数和所述待变异数据的长度,确定从所述第二簇选取第二变异算法的第二权重;根据所述第一权重和所述第二权重,确定从所述第一簇选取第一变异算法或从所述第二簇选取第二变异算法。
10.根据权利要求9所述的测试装置,其中,
所述第一权重为从第二簇选取第二变异算法的次数和预设值的乘积;所述第二权重为第一变异算法的次数、所述待变异数据的长度和预设系数的乘积;
所述确定模块用于从0到所述第一权重和所述第二权重之和的闭区间内,随机选取一个数值;在所述数值小于第一权重的情况下,确定从所述第一簇选取第一变异算法;在所述数值大于等于第一权重的情况下,确定从所述第二簇选取第二变异算法;其中,所述预设系数与所述待变异数据的长度的乘积与所述预设值的比值大于预设比值。
11.根据权利要求7所述的测试装置,其中,
所述变异模块用于每次根据当前选取方式选取一个变异算法对所述待变异数据进行变异;
所述测试模块用于每次利用变异后的数据测试是否发现新路径,直至发现新路径或者达到第一预设次数。
12.根据权利要求7所述的测试装置,还包括:
初始测试模块,用于获取测试开始时的输入数据;每次随机从所述第一簇和所述第二簇中选取一个变异算法,对所述输入数据进行变异,利用变异后的数据测试是否发现新路径,直至达到第二预设次数或发现新路径。
13.一种测试装置,包括:
处理器;以及
耦接至所述处理器的存储器,用于存储指令,所述指令被所述处理器执行时,使所述处理器执行如权利要求1-6任一项所述的测试方法。
14.一种非瞬时性计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现权利要求1-6任一项所述测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010024109.4A CN113111351B (zh) | 2020-01-10 | 2020-01-10 | 测试方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010024109.4A CN113111351B (zh) | 2020-01-10 | 2020-01-10 | 测试方法、装置和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113111351A true CN113111351A (zh) | 2021-07-13 |
CN113111351B CN113111351B (zh) | 2023-10-17 |
Family
ID=76708639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010024109.4A Active CN113111351B (zh) | 2020-01-10 | 2020-01-10 | 测试方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113111351B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778879A (zh) * | 2021-09-13 | 2021-12-10 | 上海幻电信息科技有限公司 | 接口的模糊测试方法及装置 |
CN115941358A (zh) * | 2023-01-29 | 2023-04-07 | 国家工业信息安全发展研究中心 | 漏洞挖掘方法、装置、终端设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080307006A1 (en) * | 2007-06-05 | 2008-12-11 | Dong Hyun Lee | File mutation method and system using file section information and mutation rules |
CN109032942A (zh) * | 2018-07-24 | 2018-12-18 | 北京理工大学 | 一种基于afl的模糊测试框架 |
US20180365139A1 (en) * | 2017-06-15 | 2018-12-20 | Microsoft Technology Licensing, Llc | Machine learning for constrained mutation-based fuzz testing |
CN109062795A (zh) * | 2018-07-24 | 2018-12-21 | 北京理工大学 | 一种模糊测试用例选择方法和装置 |
CN109117367A (zh) * | 2018-07-24 | 2019-01-01 | 北京理工大学 | 一种模糊测试变异数量确定方法和装置 |
CN110147310A (zh) * | 2019-04-02 | 2019-08-20 | 中国科学院信息工程研究所 | 一种基于变异策略的并行模糊测试调度方法及装置 |
-
2020
- 2020-01-10 CN CN202010024109.4A patent/CN113111351B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080307006A1 (en) * | 2007-06-05 | 2008-12-11 | Dong Hyun Lee | File mutation method and system using file section information and mutation rules |
US20180365139A1 (en) * | 2017-06-15 | 2018-12-20 | Microsoft Technology Licensing, Llc | Machine learning for constrained mutation-based fuzz testing |
CN109032942A (zh) * | 2018-07-24 | 2018-12-18 | 北京理工大学 | 一种基于afl的模糊测试框架 |
CN109062795A (zh) * | 2018-07-24 | 2018-12-21 | 北京理工大学 | 一种模糊测试用例选择方法和装置 |
CN109117367A (zh) * | 2018-07-24 | 2019-01-01 | 北京理工大学 | 一种模糊测试变异数量确定方法和装置 |
CN110147310A (zh) * | 2019-04-02 | 2019-08-20 | 中国科学院信息工程研究所 | 一种基于变异策略的并行模糊测试调度方法及装置 |
Non-Patent Citations (1)
Title |
---|
LEI ZHANG ET AL.: "Improvement of the Sample Mutation Strategy Based on Fuzzing Framework Peach", 《2018 INTERNATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE AND BIG DATA(ICAIBD)》, pages 33 - 37 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778879A (zh) * | 2021-09-13 | 2021-12-10 | 上海幻电信息科技有限公司 | 接口的模糊测试方法及装置 |
CN113778879B (zh) * | 2021-09-13 | 2024-03-08 | 上海幻电信息科技有限公司 | 接口的模糊测试方法及装置 |
CN115941358A (zh) * | 2023-01-29 | 2023-04-07 | 国家工业信息安全发展研究中心 | 漏洞挖掘方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113111351B (zh) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200167366A1 (en) | Data processing method and device | |
CN110347651B (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
US7581052B1 (en) | Approach for distributing multiple interrupts among multiple processors | |
US8572621B2 (en) | Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria | |
US11349824B2 (en) | Block sequencing method and system based on tree-graph structure, and data processing terminal | |
CN111723073B (zh) | 数据存储处理方法、装置、处理系统以及存储介质 | |
CN104090806A (zh) | 升级包、升级请求的处理方法及装置 | |
CN105989015B (zh) | 一种数据库扩容方法和装置以及访问数据库的方法和装置 | |
CN113111351B (zh) | 测试方法、装置和计算机可读存储介质 | |
CN113342500B (zh) | 任务执行方法、装置、设备及存储介质 | |
CN107301090B (zh) | 在存储服务器中为应用设置数据处理路径的方法及装置 | |
CN109213774B (zh) | 数据的存储方法及装置、存储介质、终端 | |
CN109033295B (zh) | 超大数据集的合并方法及装置 | |
CN111522811A (zh) | 数据库的处理方法及装置、存储介质、终端 | |
CN107992358B (zh) | 一种适用于核外图处理系统的异步io执行方法及系统 | |
CN113037791A (zh) | 运维方法和系统、计算机可读存储介质 | |
CN113094899B (zh) | 一种随机潮流计算方法、装置、电子设备及存储介质 | |
CN115208938B (zh) | 用户行为管控方法及装置、计算机可读存储介质 | |
CN109165325B (zh) | 用于切分图数据的方法、装置、设备以及计算机可读存储介质 | |
CN116303418A (zh) | 基于物联网平台的海量规则处理方法、系统及存储介质 | |
CN112783417A (zh) | 数据缩减的方法、装置、计算设备和存储介质 | |
CN114880157A (zh) | 一种故障注入方法及装置 | |
US20210103566A1 (en) | Graph data abbreviation method and apparatus thereof | |
CN113127694A (zh) | 一种数据存储方法、装置、电子设备及存储介质 | |
CN111611231A (zh) | 设备运行数据的清洗方法、装置、可读介质及电子设备 |
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 | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20210713 Assignee: Tianyiyun Technology Co.,Ltd. Assignor: CHINA TELECOM Corp.,Ltd. Contract record no.: X2024110000020 Denomination of invention: Testing methods, devices, and computer-readable storage media Granted publication date: 20231017 License type: Common License Record date: 20240315 |