【技术实现步骤摘要】
一种测试样本生成方法及装置
本申请涉及程序测试领域,特别涉及一种测试样本生成方法及装置。
技术介绍
现有技术中,Learn&fuzz提出了一种利用深度学习来自动生成测试样本的技术。测试样本为用于对某个任务(如,某个程序)进行测试的样本。但是,上述利用深度学习来自动生成测试样本的技术,会产生较多无效的测试样本,导致测试的效率下降。
技术实现思路
为解决上述技术问题,本申请实施例提供一种测试样本生成方法及装置,以达到减少无效测试样本的生成,提高测试的效率的目的,技术方案如下:一种测试样本生成方法,包括:将目标样本输入基于强化学习的有效变异位置预测模型,得到所述基于强化学习的有效变异位置预测模型输出的变异位置,所述基于强化学习的有效变异位置预测模型为利用训练样本、所述训练样本的不同变异位置及表征所述训练样本的不同变异位置的有效性的指标训练得到的;对所述目标样本中位于所述变异位置的字符进行变异,并将所述目标样本中变异后的字符及所述变异后的字符之后的字符作为片段,将所述片段输入基于深度学习的测试样本生成模型,得到所述基于深度学习的测试样本生成模型输出的测试样本;所述基于深度学习的测试样本生成模型为利用不同语法格式的训练样本作为输入,满足设定语法格式的训练样本作为输出训练得到的。优选的,所述基于强化学习的有效变异位置预测模型的训练过程,包括:初始化DDPG模型;将训练样本输入所述DDPG模型,得到所述DDPG模型输出的变异位置,对 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。