[发明专利]一种用于灰盒模糊测试的样本格式保护方法及装置有效
申请号: | 201810082824.6 | 申请日: | 2018-01-29 |
公开(公告)号: | CN108171064B | 公开(公告)日: | 2021-03-19 |
发明(设计)人: | 朱俊虎;赵世斌;周天阳;林宏阳;李睿;彭建山;许航 | 申请(专利权)人: | 中国人民解放军战略支援部队信息工程大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F11/36 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 450001 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种用于灰盒模糊测试的样本格式保护方法及装置,包括:训练机器学习模型以使该模型可以识别测试语料的格式的正确性;对程序进行模糊测试时,从语料集中获取初始语料,对初始语料变异得到测试语料;应用测试语料对程序进行模糊测试,在模糊测试的过程中通过该模型确定测试语料的格式是否正确。当测试语料的格式正确且覆盖了已有测试语料没有覆盖的程序代码时,将该测试语料添加到语料集中,并重复这个过程。由此,将每轮模糊测试确定出的格式正确的语料添加到语料集中,最大程度的保证了语料集中语料的格式的正确性,提高了模糊测试效率。并且,通过位置集合对初始语料的变异进行指导,避免了无用的变异操作,进一步提高了测试效率。 | ||
搜索关键词: | 一种 用于 模糊 测试 样本 格式 保护 方法 装置 | ||
从语料集中获取初始语料;
对所述初始语料进行变异,得到测试语料;
将所述测试语料输入到程序中,对所述程序进行模糊测试,并在模糊测试的过程中通过预设的机器学习模型确定所述测试语料的格式是否正确;所述预设的机器学习模型已通过训练语料的预设的特征数据进行了训练;
在所述测试语料的格式为正确的情况下,查看所述测试语料是否覆盖了已有测试语料没有覆盖的程序代码;
若所述测试语料覆盖了已有测试语料没有覆盖的程序代码,将所述测试语料添加到所述初始语料中。
2.根据权利要求1所述的方法,其特征在于,所述从语料集中获取测试语料,包括:创建临时工作集合;
从所述程序的EDGE中随机选取一个目标EDGE,所述目标EDGE为所述临时工作集中的测试语料未覆盖到的所述程序的EDGE;
从所述语料集中选取执行所述目标EDGE时代价最小的语料;
判断所述程序的EDGE中是否包含所述临时工作集合中的语料未覆盖到的EDGE;
若包含,返回执行从所述程序的EDGE中随机选取一个目标EDGE,所述目标EDGE为所述临时工作集中的测试语料未覆盖到的所述程序的EDGE;
若不包含,将所述临时工作集输出为初始语料。
3.根据权利要求1所述的方法,其特征在于,所述在模糊测试的过程中通过预设的机器学习模型获取所述测试语料的格式是否正确,包括:在模糊测试的过程中,获取所述测试语料对应的特征数据;
将所述特征数据输入到预设的机器学习模型中,获取所述测试语料的格式是否正确的结果。
4.根据权利要求1所述的方法,其特征在于,所述对所述初始语料进行变异,得到测试语料,包括:读取所述初始语料的变异位置;
判断预设的位置集合中是否包含所述变异位置;
若所述预设的位置集合中包含所述变异位置,阻止对所述当前的变异位置发生变异。
5.根据权利要求4所述的方法,其特征在于,还包括:若所述测试语料为格式错误的语料,将所述测试语料的变异位置添加到位置集合中。
6.根据权利要求1到5中任意一项的方法,其特征在于,机器学习模型的训练过程包括:获取格式正确的训练语料;
将所述正确的训练语料输入到预设的训练程序中,以对所述训练程序进行模糊测试,并在模糊测试的过程中提取所述训练语料的特征数据;
将所述训练语料的特征数据输入到预设的贝叶斯分类器中进行分类学习。
7.根据权利要求6所述的方法,其特征在于,所述预设的特征包括:所述程序EDGE的种类数、EDGE的总数、程序执行时间、EDGE的方差、EDGE的均值、EDGE的最大值、EDGE的中位数、被判断为错误处理EDGE占程序全部错误处理EDGE的比例。8.一种用于灰盒模糊测试的数据格式保护装置,其特征在于,包括:获取单元,用于从语料集中获取初始语料;
变异单元,用于对所述初始语料进行变异,得到测试语料;
识别单元,用于将所述测试语料输入到程序中,对所述程序进行模糊测试,并在模糊测试的过程中通过预设的机器学习模型确定所述测试语料的格式是否正确;所述预设的机器学习模型已通过训练语料的预设的特征数据进行了训练;
判断单元,用于在所述测试语料的格式为正确的情况下,查看所述测试语料是否覆盖了已有测试语料没有覆盖的程序代码;
更新单元,用于若所述测试语料覆盖了已有测试语料没有覆盖的程序代码,将所述测试语料添加到所述初始语料中。
9.根据权利要求8所述的方法,其特征在于,所述获取单元,包括:创建子单元,用于创建临时工作集合;
第一选取子单元,用于从所述程序的EDGE中随机选取一个目标EDGE,所述目标EDGE为所述临时工作集中的测试语料未覆盖到的所述程序的EDGE;
第二选取子单元,用于从所述语料集中选取执行所述目标EDGE时代价最小的语料;
第一判断子单元,用于判断所述程序的EDGE中是否包含所述临时工作集合中的语料未覆盖到的EDGE;
返回执行单元,用于若包含,返回执行从所述程序的EDGE中随机选取一个目标EDGE,所述目标EDGE为所述临时工作集中的测试语料未覆盖到的所述程序的EDGE;
第一输出子单元,用于若不包含,将所述临时工作集输出为初始语料。
10.根据权利要求8所述的装置,其特征在于,所述变异单元,包括:读取子单元,用于读取所述初始语料的变异位置;
第二判断子单元,用于判断预设的位置集合中是否包含所述变异位置;
阻止子单元,用于若所述预设的位置集合中包含所述变异位置,阻止对所述当前的变异位置发生变异。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军战略支援部队信息工程大学,未经中国人民解放军战略支援部队信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810082824.6/,转载请声明来源钻瓜专利网。