CN106681901B - 一种测试样本生成的方法和装置 - Google Patents
一种测试样本生成的方法和装置 Download PDFInfo
- Publication number
- CN106681901B CN106681901B CN201510760884.5A CN201510760884A CN106681901B CN 106681901 B CN106681901 B CN 106681901B CN 201510760884 A CN201510760884 A CN 201510760884A CN 106681901 B CN106681901 B CN 106681901B
- Authority
- CN
- China
- Prior art keywords
- sample
- grammar
- sample seed
- test
- label
- 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
Landscapes
- Machine Translation (AREA)
Abstract
本发明公开了一种测试样本生成的方法和装置,其中方法包括:判断样本种子文本的样本种子类型;根据样本种子类型选择相应的语法解析算法,对样本种子文本进行解析,得到样本种子文本的语法结构;根据语法结构从规则库中获取语法规则;根据语法规则识别样本种子文本的可变异点;将可变异点替换为标签,以生成样本种子母版;从相应的测试数据集中按照预定规则选择测试数据作为标签替换值;利用标签替换值对标签进行替换,以生成测试样本。本发明通过可变异点的识别,针对性的生成测试样本,使得可以根据测试需求生成测试样本,避免了大量无效测试样本的产生,提高了测试效率。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种测试样本生成的方法和装置。
背景技术
在系统的安全测试领域中采用的模糊测试方法,通过向目标系统输入大量的测试样本,来发现目标系统的漏洞。
现有技术中在测试样本生成时,采用基于变异的安全测试样本生成方法,即通过对样本种子文本的二进制文本数据进行随机改变,随机生成大量测试样本。该方法会造成大量无效测试样本的产生,这就带来了测试样本对安全漏洞无针对性,致使安全测试效率低下的问题。
发明内容
本发明的发明人发现了上述现有技术中存在问题,并因此针对上述问题中的至少一个问题提出了一种新的技术方案。本发明提供了一种测试样本生成的方法和装置,通过可变异点的识别,针对性的生成测试样本,使得可以根据测试需求生成测试样本,避免了大量无效测试样本的产生,提高了测试效率。
根据本发明的一个方面,提供了一种测试样本生成的方法,包括:
判断样本种子文本的样本种子类型;
根据样本种子类型选择相应的语法解析算法,对样本种子文本进行解析,得到样本种子文本的语法结构;
根据语法结构从规则库中获取语法规则;
根据语法规则识别样本种子文本的可变异点;
将可变异点替换为标签,以生成样本种子母版;
从相应的测试数据集中按照预定规则选择测试数据作为标签替换值;
利用标签替换值对标签进行替换,以生成测试样本。
在一个实施例中,根据语法规则识别样本种子文本的可变异点的步骤包括:
从语法结构中提取元信息;
将元信息与语法规则进行匹配;
若匹配成功,则将元信息作为可变异点。
在一个实施例中,元信息包括名称、语法成分类型和上下文结构。
在一个实施例中,若匹配成功,则将元信息作为可变异点的步骤包括:
若匹配成功,则将元信息作为可变异点并保存可变异点的位置和类型;
将可变异点替换为标签,以生成样本种子母版的步骤包括:
根据可变异点的位置和类型,将可变异点替换为相应类型的标签,以生成样本种子母版;
从相应的测试数据集中按照预定规则选择测试数据作为标签替换值的步骤包括:
根据标签的类型,从相应的测试数据集中按照预定规则选择测试数据作为标签替换值。
在一个实施例中,在生成测试样本后,还包括:
从相应的测试数据集中按照预定规则继续选择测试数据作为标签替换值,然后执行利用标签替换值对标签进行替换以生成测试样本的步骤。
根据本发明的另一方面,提供了一种测试样本生成的装置,包括:
语法解析单元,用于判断样本种子文本的样本种子类型;根据样本种子类型选择相应的语法解析算法,对样本种子文本进行解析,得到样本种子文本的语法结构;
可变异点识别单元,用于根据语法结构从规则库中获取语法规则;根据语法规则识别样本种子文本的可变异点;
标签标注单元,用于将可变异点替换为标签,以生成样本种子母版;
测试样本生成单元,用于从相应的测试数据集中按照预定规则选择测试数据作为标签替换值;利用标签替换值对标签进行替换,以生成测试样本。
在一个实施例中,可变异点识别单元,具体用于从语法结构中提取元信息;将元信息与语法规则进行匹配;若匹配成功,则将元信息作为可变异点。
在一个实施例中,元信息包括名称、语法成分类型和上下文结构。
在一个实施例中,可变异点识别单元,具体用于若匹配成功,则将元信息作为可变异点并保存可变异点的位置和类型;
标签标注单元,具体用于根据可变异点的位置和类型,将可变异点替换为相应类型的标签,以生成样本种子母版;
测试样本生成单元,具体用于根据标签的类型,从相应的测试数据集中按照预定规则选择测试数据作为标签替换值。
在一个实施例中,测试样本生成单元,还用于从相应的测试数据集中按照预定规则继续选择测试数据作为标签替换值,然后执行利用标签替换值对标签进行替换以生成测试样本。
本发明的一种测试样本生成的方法和装置,通过可变异点的识别,针对性的生成测试样本,使得可以根据测试需求生成测试样本,避免了大量无效测试样本的产生,提高了测试效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种测试样本生成的方法的一个实施例的示意图。
图2为本发明一种测试样本生成的方法的另一个实施例的示意图。
图3为本发明一种测试样本生成的装置的一个实施例的示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1为本发明一种测试样本生成的方法的一个实施例示意图。优选的,本实施例的方法由本发明内的测试样本生成的装置执行。如图1所示,本实施例的方法步骤如下:
步骤101,判断样本种子文本的样本种子类型。
步骤102,根据样本种子类型选择相应的语法解析算法,对样本种子文本进行解析,得到样本种子文本的语法结构。
本发明的方法可以适用于多种被测系统,通常不同类型的被测系统对应的文件类型并不相同。因此,首先判断样本种子文本的样本种子类型,根据样本种子类型选择相应的语法解析算法。
在一个实施例中,当需要对谷歌浏览器、火狐浏览器等网页浏览器进行漏洞挖掘时,使用html(HyperText Markup Language,超级文本标记语言)格式的文本作为测试文本。此时选择的样本种子文本的文件格式为html格式,即样本种子文件类型为html格式的文件。当判断样本种子文件类型为html格式的文件后,选择html的语法解析算法,对样本种子文本进行解析,从而得到样本种子文本的语法结构。例如样本种子文本为<body style=“width:90px”>时,根据html语法解析算法,得到其语法结构为<元素style=“样式类型:样式值”>。可以看出,样本种子文本中的body对应的语法结构即元素(element),body即文本本身,width为样式类型。
本领域技术人员通过本发明可以了解的是,当测试其他类型的软件、系统时,样本种子类型即为其对应的文件格式类型。
在一个实施例中,在对样本种子文本进行解析时,可以选用LR分析法等语法分析方法,对样本种子文件进行解析,得到样本种子文本的语法结构。
步骤103,根据语法结构从规则库中获取语法规则。
步骤104,根据语法规则识别样本种子文本的可变异点。
步骤105,将可变异点替换为标签,以生成样本种子母版。
例如,样本种子文本为<body style=“width:90px”>时,语法规则为,样本种子文本中所有样式类型均为可变异点,则“width”即为可变异点。将可变异点替换为标签,得到样本种子母版<body style=“<cs>:90px”>,其中cs即为一个标签。
步骤106,从相应的测试数据集中按照预定规则选择测试数据作为标签替换值。
步骤107,利用标签替换值对标签进行替换,以生成测试样本。在测试数据集中选择测试数据标签替换值替换标签,生成测试样本。例如,测试数据集中包括两个测试数据{text-align,overflow},则生成的测试样本可以是<body style=“test-align:90px”>和<body style=“overflow:90px”>,其余未识别为可变异点的文本内容不做改变。在选择测试数据作为标签替换值时,预定规则可以是随机在测试数据集中选择测试数据替换,也可以是按照预定顺序依次选择测试数据进行替换直至选择全部测试数据为止。
本发明的测试样本生成方法,通过可变异点的识别,针对性的生成测试样本,使得可以根据测试需求生成测试样本,避免了大量无效测试样本的产生,提高了测试效率。
图2为本发明一种测试样本生成的方法另一实施例示意图。优选的,本实施例的方法由本发明内的测试样本生成的装置执行。在本实施例中,以如下html格式样本种子文本为例进行说明:
如图2所示,本实施例的方法步骤如下:
步骤201,判断样本种子文本的样本种子类型为html格式样本种子类型。
步骤202,根据样本种子类型选择相应的语法解析算法,利用LR分析法对样本种子文本进行解析,得到样本种子文本的语法结构。选择html语法解析算法对样本种子文本进行解析,得到样本种子文本的语法结构如下:
——doctype
————element
——————element
————————styletype
——————————stylename:stylevalue
——————————stylename:stylevalue
——————element
————————styletype
——————————stylename:stylevalue
其中,得到的语法结构包括元信息,元信息包括名称、语法成分类型和上下文结构等内容。
步骤203,根据语法结构从规则库中获取语法规则。例如其中一条语法规则为styletype[stylename]:stylevalue。表示具有stylename:stylevalue结构的句型,其中styletype语法成分类型为父节点,可变异点是stylename,其上下文结构即为上述语法中结构。
步骤204,从语法结构中提取元信息。将上述语法结构中的元信息进行提取。
步骤205,将元信息与语法规则进行匹配。
步骤206,若匹配成功,将元信息作为可变异点并保存可变异点的位置和类型。
例如其中字段:
以及
<body style=”width:100%;”>
对应的语法结构即为:styletype[stylename]:stylevalue,在进行匹配时,元信息中,div和body style对应的语法成分类型(styletype)为父节点,position、height和width为名称(stylename),absolute、20px和100%为取值(stylevalue)。其上下文结构即为styletype[stylename]:stylevalue,其中position、height和width即为可变异点。保存position、height和width的位置和类型。
步骤207,根据可变异点的位置和类型,将可变异点替换为相应类型的标签,以生成样本种子母版。即将每个可变异点按照可变异点的类型分别标注标签。例如,根据保存的position、height和width的位置和类型将可变异点替换为相应类型的标签cs,生成如下所示的样本种子母版。
其中,cs为stylename对应的标签。
本发明中语法规则并不限定为仅对一种类型的可变异点进行标签替换,可以为多个。例如,在识别可变异点时,除了stylename作为可变异点,还可以将stylevalue也作为可变异点。当stylevalue也作为可变异点时,与stylename对应的标签不同,生成的样本种子母版如下:
其中,cs为stylename对应的标签,va为stylevalue对应的标签。
步骤208,根据标签的类型,从相应的测试数据中按照预定规则选择测试数据作为标签替换值。以stylename为可变异点为例,其对应的标签为cs,针对该类型的标签,有相应的测试数据集。在一个实施例中,测试数据集中包括测试数据text-align,overflow,其中预定规则可以为随机从测试数据集中选取测试数据作为标签替换值,也可以是依次选择,还可以按照其他的预定规则进行选取。
步骤209,利用标签替换值对标签进行替换,以生成测试样本。
例如,生成的一个测试样本如下:
然后重复步骤208,循环替换标签值,以生成大量有效的测试数据。
当存在多种类型的标签时,例如还有标签cs和va时,cs和va分别具有相应的测试数据集,选取测试数据时,分别从各自相应的测试数据集中选取测试数据进行标签替换,得到测试样本。
本发明的测试样本生成方法,通过可变异点的识别,针对性的生成测试样本,使得可以根据测试需求生成大量有效的测试样本,避免了无效测试样本的产生,从而提高了测试效率。
图3为本发明测试样本生成的装置一个实施例的示意图。如图3所示,其中具体实施例详见方法实施例中对附图1-2的描述,这里不再赘述。本实施例的测试样本生成的装置包括:
语法解析单元301用于判断样本种子文本的样本种子类型;根据样本种子类型选择相应的语法解析算法,对样本种子文本进行解析,得到样本种子文本的语法结构。
在一个实施例中,在对样本种子文本进行解析时,可以选用LR分析法等语法分析方法,对样本种子文件进行解析,得到样本种子文本的语法结构。
本领域技术人员通过本发明可以了解的是,当测试其他类型的软件、系统时,样本种子类型即为其对应的文件格式类型。
可变异点识别单元302用于根据语法结构从规则库中获取语法规则;根据语法规则识别样本种子文本的可变异点。本发明中语法规则并不限定为仅对一种类型的可变异点进行标签替换,可以为多个。
在一个实施例中,可变异点识别单元302具体用于从语法结构中提取元信息;将元信息与语法规则进行匹配;若匹配成功,则将元信息作为可变异点并保存可变异点的位置和类型。其中元信息包括名称、语法成分类型和上下文结构。
标签标注单元303用于将可变异点替换为标签,以生成样本种子母版。
在一个实施例中,标签标注单元303具体用于根据可变异点的位置和类型,将可变异点替换为相应类型的标签,以生成样本种子母版。当存在多种类型的可变异点时,将每种类型的可变异点分别替换为相应的标签,生成样本种子母版。
测试样本生成单元304用于从相应的测试数据集中按照预定规则选择测试数据作为标签替换值;利用标签替换值对标签进行替换,以生成测试样本。当存在多种类型的标签时,每种类型的标签分别具有相应的测试数据集,选取测试数据时,分别从各自相应的测试数据集中选取测试数据进行标签替换,得到测试样本。
在一个实施例中,测试样本生成单元304具体用于根据标签的类型,从相应的测试数据集中按照预定规则选择测试数据作为标签替换值。还用于从相应的测试数据集中按照预定规则继续选择测试数据作为标签替换值,然后执行利用标签替换值对标签进行替换以生成测试样本。
本发明的测试样本生成方法和装置,通过可变异点的识别,针对性的生成测试样本,使得可以根据测试需求生成大量有效的测试样本,避免了无效测试样本的产生,从而提高了测试效率。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (4)
1.一种测试样本生成的方法,其特征在于,包括:
判断样本种子文本的样本种子类型;
根据样本种子类型选择相应的语法解析算法,对样本种子文本进行解析,得到样本种子文本的语法结构;
根据语法结构从规则库中获取语法规则;
根据语法规则识别样本种子文本的可变异点;
将可变异点替换为标签,以生成样本种子母版;
从相应的测试数据集中按照预定规则选择测试数据作为标签替换值;
利用标签替换值对标签进行替换,以生成测试样本;
其中,根据语法规则识别样本种子文本的可变异点的步骤包括:
从语法结构中提取元信息,元信息包括名称、语法成分类型和上下文结构;
将元信息与语法规则进行匹配;
若匹配成功,则将元信息作为可变异点并保存可变异点的位置和类型;
其中,将可变异点替换为标签,以生成样本种子母版的步骤包括:
根据可变异点的位置和类型,将可变异点替换为相应类型的标签,以生成样本种子母版;
从相应的测试数据集中按照预定规则选择测试数据作为标签替换值的步骤包括:
根据标签的类型,从相应的测试数据集中按照预定规则选择测试数据作为标签替换值。
2.根据权利要求1所述的方法,其特征在于,在生成测试样本后,还包括:
从相应的测试数据集中按照预定规则继续选择测试数据作为标签替换值,然后执行利用标签替换值对标签进行替换以生成测试样本的步骤。
3.一种测试样本生成的装置,其特征在于,包括:
语法解析单元,用于判断样本种子文本的样本种子类型;根据样本种子类型选择相应的语法解析算法,对样本种子文本进行解析,得到样本种子文本的语法结构;
可变异点识别单元,用于根据语法结构从规则库中获取语法规则;根据语法规则识别样本种子文本的可变异点,其中从语法结构中提取元信息,所述元信息包括名称、语法成分类型和上下文结构,将元信息与语法规则进行匹配,若匹配成功,则将元信息作为可变异点并保存可变异点的位置和类型;
标签标注单元,用于将可变异点替换为标签,以生成样本种子母版,其中根据可变异点的位置和类型,将可变异点替换为相应类型的标签,以生成样本种子母版;
测试样本生成单元,用于从相应的测试数据集中按照预定规则选择测试数据作为标签替换值,其中根据标签的类型,从相应的测试数据集中按照预定规则选择测试数据作为标签替换值;利用标签替换值对标签进行替换,以生成测试样本。
4.根据权利要求3所述的装置,其特征在于,所述测试样本生成单元还用于从相应的测试数据集中按照预定规则继续选择测试数据作为标签替换值,然后执行利用标签替换值对标签进行替换以生成测试样本的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510760884.5A CN106681901B (zh) | 2015-11-10 | 2015-11-10 | 一种测试样本生成的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510760884.5A CN106681901B (zh) | 2015-11-10 | 2015-11-10 | 一种测试样本生成的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106681901A CN106681901A (zh) | 2017-05-17 |
CN106681901B true CN106681901B (zh) | 2019-12-06 |
Family
ID=58864516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510760884.5A Active CN106681901B (zh) | 2015-11-10 | 2015-11-10 | 一种测试样本生成的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106681901B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107480053B (zh) * | 2017-07-21 | 2021-08-17 | 销冠网络科技有限公司 | 一种软件测试数据生成方法及装置 |
CN109935289B (zh) * | 2019-03-15 | 2023-06-27 | 深圳安泰创新科技股份有限公司 | 病历显示方法、装置、电子设备及计算机可读存储介质 |
CN110597715B (zh) * | 2019-08-28 | 2021-04-06 | 昆明理工大学 | 一种基于模糊测试的测试样本优化方法 |
CN111258909B (zh) * | 2020-02-07 | 2024-03-15 | 中国信息安全测评中心 | 一种测试样本生成方法及装置 |
CN111428818B (zh) * | 2020-04-22 | 2023-06-02 | 浙江工业大学 | 基于神经通路激活状态的深度学习模型测试方法与装置 |
CN111913877B (zh) * | 2020-07-03 | 2021-09-28 | 中国科学院信息工程研究所 | 一种面向文本配置文件的模糊测试方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1938690A (zh) * | 2004-01-13 | 2007-03-28 | 交响乐服务公司 | 将自动测试脚本持续转换成抽象测试用例表示的方法和系统 |
CN102141959B (zh) * | 2011-03-15 | 2013-10-30 | 中国科学院研究生院 | 一种受上下文无关文法约束的测试用例生成方法 |
CN103914379A (zh) * | 2014-03-25 | 2014-07-09 | 北京邮电大学 | 故障自动注入与故障检测的方法及其系统 |
-
2015
- 2015-11-10 CN CN201510760884.5A patent/CN106681901B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1938690A (zh) * | 2004-01-13 | 2007-03-28 | 交响乐服务公司 | 将自动测试脚本持续转换成抽象测试用例表示的方法和系统 |
CN102141959B (zh) * | 2011-03-15 | 2013-10-30 | 中国科学院研究生院 | 一种受上下文无关文法约束的测试用例生成方法 |
CN103914379A (zh) * | 2014-03-25 | 2014-07-09 | 北京邮电大学 | 故障自动注入与故障检测的方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106681901A (zh) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106681901B (zh) | 一种测试样本生成的方法和装置 | |
JP6653334B2 (ja) | 情報抽出方法及び装置 | |
CN109857992B (zh) | 医疗数据结构化解析方法、装置、可读介质及电子设备 | |
US8762556B2 (en) | Displaying content on a mobile device | |
JP4427500B2 (ja) | 意味解析装置、意味解析方法および意味解析プログラム | |
US20120317472A1 (en) | Creation of data extraction rules to facilitate web scraping of unstructured data from web pages | |
US20190196811A1 (en) | Api specification generation | |
CN105095067A (zh) | 用户界面元素对象识别及自动化测试的方法和装置 | |
CN104679495B (zh) | 软件识别方法及装置 | |
WO2014114131A1 (en) | Method and apparatus for testing browser compatibility | |
CN103198069A (zh) | 抽取关系型表格的方法和装置 | |
Oliver et al. | TBXTools: a free, fast and flexible tool for automatic terminology extraction | |
CN111367595B (zh) | 数据处理方法、程序运行方法、装置及处理设备 | |
US9449114B2 (en) | Removing non-substantive content from a web page by removing its text-sparse nodes and removing high-frequency sentences of its text-dense nodes using sentence hash value frequency across a web page collection | |
KR20120051419A (ko) | 종속형 스타일 시트 규칙 추출 장치 및 방법 | |
CN106960058A (zh) | 一种网页结构变更检测方法及系统 | |
US10108590B2 (en) | Comparing markup language files | |
CN103345532A (zh) | 一种网页信息抽取方法及装置 | |
JPWO2017141893A1 (ja) | ソフトウェア分析装置及びソフトウェア分析方法 | |
CN107145591B (zh) | 一种基于标题的网页有效元数据内容提取方法 | |
CN110309364B (zh) | 一种信息抽取方法及装置 | |
CN111143642A (zh) | 网页分类方法、装置、电子设备及计算机可读存储介质 | |
CN103559202B (zh) | 一种网页内容抽取装置和方法 | |
CN111158973B (zh) | 一种web应用动态演化监测方法 | |
CN106897287B (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 |