一种测试样本生成方法及装置制造方法及图纸

技术编号:24455554 阅读:34 留言:0更新日期:2020-06-10 15:26
本申请提供了一种测试样本生成方法及装置,在本申请中,利用基于强化学习的有效变异位置预测模型对目标样本的变异位置进行预测,可以降低变异位置选取的盲目性,提高变异位置的有效性,依据有效性较高的变异位置,对目标样本进行有效的变异,并基于有效变异的目标样本,生成有效性较高的测试样本,减少无效测试样本的生成,提高测试的效率。

A method and device for generating test samples

【技术实现步骤摘要】
一种测试样本生成方法及装置
本申请涉及程序测试领域,特别涉及一种测试样本生成方法及装置。
技术介绍
现有技术中,Learn&fuzz提出了一种利用深度学习来自动生成测试样本的技术。测试样本为用于对某个任务(如,某个程序)进行测试的样本。但是,上述利用深度学习来自动生成测试样本的技术,会产生较多无效的测试样本,导致测试的效率下降。
技术实现思路
为解决上述技术问题,本申请实施例提供一种测试样本生成方法及装置,以达到减少无效测试样本的生成,提高测试的效率的目的,技术方案如下:一种测试样本生成方法,包括:将目标样本输入基于强化学习的有效变异位置预测模型,得到所述基于强化学习的有效变异位置预测模型输出的变异位置,所述基于强化学习的有效变异位置预测模型为利用训练样本、所述训练样本的不同变异位置及表征所述训练样本的不同变异位置的有效性的指标训练得到的;对所述目标样本中位于所述变异位置的字符进行变异,并将所述目标样本中变异后的字符及所述变异后的字符之后的字符作为片段,将所述片段输入基于深度学习的测试样本生成模型,得到所述基于深度学习的测试样本生成模型输出的测试样本;所述基于深度学习的测试样本生成模型为利用不同语法格式的训练样本作为输入,满足设定语法格式的训练样本作为输出训练得到的。优选的,所述基于强化学习的有效变异位置预测模型的训练过程,包括:初始化DDPG模型;将训练样本输入所述DDPG模型,得到所述DDPG模型输出的变异位置,对所述训练样本中位于所述DDPG模型输出的变异位置的字符进行变异,并将所述训练样本中变异后的字符及所述变异后的字符作为训练片段;将所述训练片段输入基于深度学习的测试样本生成模型,得到所述基于深度学习的测试样本生成模型输出的测试样本,作为目标测试样本;基于处理器跟踪的程序控制流提取与分析技术,跟踪所述目标测试样本的执行过程,得到所述目标测试样本的执行路径;分析所述执行路径距离设定脆弱点的长度;利用所述执行路径距离设定脆弱点的长度,更新所述DDPG模型的参数,并返回执行所述将训练样本输入所述DDPG模型的步骤,直至。。停止训练,将训练完成的DDPG模型作为基于强化学习的有效变异位置预测模型。优选的,所述基于处理器跟踪的程序控制流提取与分析技术为基于IPT的程序控制流提取与分析技术。优选的,所述基于深度学习的测试样本生成模型为多层BLSTM模型与注意力机制结合得到的模型。优选的,所述多层BLSTM模型与注意力机制结合得到的模型,包括:n层BLSTM模型和n个注意力机制模块,且每层BLSTM模型匹配一个注意力机制模块,每层BLSTM模型匹配的注意力机制模块各不相同,所述n为大于1的整数;其中,第i层BLSTM模型的输出作为与所述i层BLSTM模型匹配的第i个注意力机制模块的输入,与所述i层BLSTM模型匹配的第i个注意力机制模块的输出作为第i+1层BLSTM模型的输入,所述i为{1,2,…,n}中的任意一个数。优选的,所述将所述片段输入基于深度学习的测试样本生成模型,得到所述基于深度学习的测试样本生成模型输出的测试样本,包括:将所述片段输入基于深度学习的测试样本生成模型,得到所述基于深度学习的测试样本生成模型输出的下一个字符的分布概率;从所述下一个字符的分布概率中随机采样出一个概率,作为第一概率,并生成一个随机数,所述随机数大于0且小于1;若所述随机数大于预先设定的变异概率阈值且所述第一概率大于预先设定的置信度阈值,则将所述下一个字符的分布概率中最小概率对应的字符作为待输出字符,并输出所述待输出字符;判断所述待输出字符是否为结尾字符;若否,返回执行所述将所述片段输入基于深度学习的测试样本生成模型,得到所述基于深度学习的测试样本生成模型输出的下一个字符的分布概率的步骤;若是,将各个所述待输出字符组合,得到测试样本。一种测试样本生成装置,包括:变异位置预测模块,用于将目标样本输入基于强化学习的有效变异位置预测模型,得到所述基于强化学习的有效变异位置预测模型输出的变异位置,所述基于强化学习的有效变异位置预测模型为利用训练样本、所述训练样本的不同变异位置及表征所述训练样本的不同变异位置的有效性的指标训练得到的;测试样本生成模块,用于对所述目标样本中位于所述变异位置的字符进行变异,并将所述目标样本中变异后的字符及所述变异后的字符之后的字符作为片段,将所述片段输入基于深度学习的测试样本生成模型,得到所述基于深度学习的测试样本生成模型输出的测试样本;所述基于深度学习的测试样本生成模型为利用不同语法格式的训练样本作为输入,满足设定语法格式的训练样本作为输出训练得到的。优选的,所述装置还包括:第一训练模块,用于:初始化DDPG模型;将训练样本输入所述DDPG模型,得到所述DDPG模型输出的变异位置,对所述训练样本中位于所述DDPG模型输出的变异位置的字符进行变异,并将所述训练样本中变异后的字符及所述变异后的字符作为训练片段;将所述训练片段输入基于深度学习的测试样本生成模型,得到所述基于深度学习的测试样本生成模型输出的测试样本,作为目标测试样本;基于处理器跟踪的程序控制流提取与分析技术,跟踪所述目标测试样本的执行过程,得到所述目标测试样本的执行路径;分析所述执行路径距离设定脆弱点的长度;利用所述执行路径距离设定脆弱点的长度,更新所述DDPG模型的参数,并返回执行所述将训练样本输入所述DDPG模型的步骤,直至在达到设定条件时停止训练,将训练完成的DDPG模型作为基于强化学习的有效变异位置预测模型。优选的,所述基于处理器跟踪的程序控制流提取与分析技术为基于IPT的程序控制流提取与分析技术。优选的,所述基于深度学习的测试样本生成模型为多层BLSTM模型与注意力机制结合得到的模型。优选的,所述多层BLSTM模型与注意力机制结合得到的模型,包括:n层BLSTM模型和n个注意力机制模块,且每层BLSTM模型匹配一个注意力机制模块,每层BLSTM模型匹配的注意力机制模块各不相同,所述n为大于1的整数;其中,第i层BLSTM模型的输出作为与所述i层BLSTM模型匹配的第i个注意力机制模块的输入,与所述i层BLSTM模型匹配的第i个注意力机制模块的输出作为第i+1层BLSTM模型的输入,所述i为{1,2,…,n}中的任意一个数。优选的,所述测试样本生成模块具体用于:将所述片段输入基于深度学习的测试样本生成模型,得到所述基于深度学习的测试样本生成模型输出的下一个字符的分布概率;从所述下一个字符的分布概率中随机采样出一个概率,作为第一概率,并生成一个随机数,所述随机数大于0且小于1;若所述随机数大于预先设定的变异概率阈值且所述第一概率大于预先设定的置信度阈值,则将所述下一个字符的分布概率中最小概率本文档来自技高网...

【技术保护点】
1.一种测试样本生成方法,其特征在于,包括:/n将目标样本输入基于强化学习的有效变异位置预测模型,得到所述基于强化学习的有效变异位置预测模型输出的变异位置,所述基于强化学习的有效变异位置预测模型为利用训练样本、所述训练样本的不同变异位置及表征所述训练样本的不同变异位置的有效性的指标训练得到的;/n对所述目标样本中位于所述变异位置的字符进行变异,并将所述目标样本中变异后的字符及所述变异后的字符之后的字符作为片段,将所述片段输入基于深度学习的测试样本生成模型,得到所述基于深度学习的测试样本生成模型输出的测试样本;/n所述基于深度学习的测试样本生成模型为利用不同语法格式的训练样本作为输入,满足设定语法格式的训练样本作为输出训练得到的。/n

【技术特征摘要】
1.一种测试样本生成方法,其特征在于,包括:
将目标样本输入基于强化学习的有效变异位置预测模型,得到所述基于强化学习的有效变异位置预测模型输出的变异位置,所述基于强化学习的有效变异位置预测模型为利用训练样本、所述训练样本的不同变异位置及表征所述训练样本的不同变异位置的有效性的指标训练得到的;
对所述目标样本中位于所述变异位置的字符进行变异,并将所述目标样本中变异后的字符及所述变异后的字符之后的字符作为片段,将所述片段输入基于深度学习的测试样本生成模型,得到所述基于深度学习的测试样本生成模型输出的测试样本;
所述基于深度学习的测试样本生成模型为利用不同语法格式的训练样本作为输入,满足设定语法格式的训练样本作为输出训练得到的。


2.根据权利要求1所述的方法,其特征在于,所述基于强化学习的有效变异位置预测模型的训练过程,包括:
初始化DDPG模型;
将训练样本输入所述DDPG模型,得到所述DDPG模型输出的变异位置,对所述训练样本中位于所述DDPG模型输出的变异位置的字符进行变异,并将所述训练样本中变异后的字符及所述变异后的字符作为训练片段;
将所述训练片段输入基于深度学习的测试样本生成模型,得到所述基于深度学习的测试样本生成模型输出的测试样本,作为目标测试样本;
基于处理器跟踪的程序控制流提取与分析技术,跟踪所述目标测试样本的执行过程,得到所述目标测试样本的执行路径;
分析所述执行路径距离设定脆弱点的长度;
利用所述执行路径距离设定脆弱点的长度,更新所述DDPG模型的参数,并返回执行所述将训练样本输入所述DDPG模型的步骤,直至在达到设定条件时停止训练,将训练完成的DDPG模型作为基于强化学习的有效变异位置预测模型。


3.根据权利要求2所述的方法,其特征在于,所述基于处理器跟踪的程序控制流提取与分析技术为基于IPT的程序控制流提取与分析技术。


4.根据权利要求1-3任意一项所述的方法,其特征在于,所述基于深度学习的测试样本生成模型为多层BLSTM模型与注意力机制结合得到的模型。


5.根据权利要求4所述的方法,其特征在于,所述多层BLSTM模型与注意力机制结合得到的模型,包括:
n层BLSTM模型和n个注意力机制模块,且每层BLSTM模型匹配一个注意力机制模块,每层BLSTM模型匹配的注意力机制模块各不相同,所述n为大于1的整数;
其中,第i层BLSTM模型的输出作为与所述i层BLSTM模型匹配的第i个注意力机制模块的输入,与所述i层BLSTM模型匹配的第i个注意力机制模块的输出作为第i+1层BLSTM模型的输入,所述i为{1,2,…,n}中的任意一个数。


6.根据权利要求1所述的方法,其特征在于,所述将所述片段输入基于深度学习的测试样本生成模型,得到所述基于深度学习的测试样本生成模型输出的测试样本,包括:

【专利技术属性】
技术研发人员:马金鑫张利吴润浦王欣陈晨
申请(专利权)人:中国信息安全测评中心
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1