指令集测试方法、装置、设备及存储介质制造方法及图纸

技术编号:37319864 阅读:14 留言:0更新日期:2023-04-21 23:00
本公开提供了一种指令集测试方法、装置、设备及存储介质,通过对待测指令集进行静态分析,得到所述待测指令集的程序数据;对所述待测指令集的程序数据进行约束求解,生成路径约束集合;基于所述路径约束集合,生成多个测试用例,并根据所述多个测试用例执行所述待测指令集,得到各个测试用例的测试结果;根据所述各个测试用例的测试结果,确定所述待测指令集的漏洞信息。的漏洞信息。的漏洞信息。

【技术实现步骤摘要】
指令集测试方法、装置、设备及存储介质


[0001]本公开涉及计算机
,尤其涉及一种指令集测试方法、装置、设备及存储介质。

技术介绍

[0002]协议测试指的是按照协议标准,通过控制和观察被测协议实现的外部行为对其进行评价的测试,是属于软件界面与应用服务器间通信规则的测试,因此,软件产品在上线之前,测试软件产品的协议漏洞是一个必不可少的重要环节。
[0003]协议中的底层指令一般较为复杂,由于程序缺少包含语义和语法的类型信息,现阶段针对指令集的测试一般都关注在上层算法本身,而忽略了指令集的测试,现阶段针对指令集的测试也基本停留在功能测试和函数单元测试阶段,这些测试虽然能判断出其执行的任务是否成功,但是当任务执行失败时,却不能确定失败的真正原因,比如指令集中出现内存泄漏、数据溢出等方面的原因。

技术实现思路

[0004]本公开提供了一种指令集测试方法、装置、设备及存储介质,以至少解决相关技术中存在的以上技术问题。
[0005]根据本公开的第一方面,提供了一种指令集测试方法,所述方法包括:
[0006]对待测指令集进行静态分析,得到所述待测指令集的程序数据,其中,所述程序数据用于显示所述指令集内的程序及程序间的执行路径;
[0007]对所述待测指令集的程序数据进行约束求解,生成路径约束集合,其中,所述路径约束集合包含测试用例执行的所有执行路径;
[0008]基于所述路径约束集合,生成多个测试用例,并根据所述多个测试用例执行所述待测指令集,得到各个测试用例的测试结果;
[0009]根据所述各个测试用例的测试结果,确定所述待测指令集的漏洞信息。
[0010]在一可实施方式中,所述基于所述路径约束集合,生成多个测试用例,包括:
[0011]获取所述测试用例的路径约束条件,其中,所述路径约束条件用于限定测试种子的生成范围,其中,所述测试种子用于衍生多个测试用例;
[0012]基于所述路径约束集合和所述测试用例的路径约束条件,生成多个测试用例。
[0013]在一可实施方式中,所述获取所述测试用例的路径约束条件,包括:
[0014]根据所述待测指令集的类型,确定易产生漏洞信息的测试种子,并根据所述易产生漏洞信息的测试种子生成第一路径约束条件。
[0015]在一可实施方式中,所述基于所述路径约束集合,生成多个测试用例,并根据所述多个测试用例执行所述待测指令集,得到各个测试用例的测试结果,包括:
[0016]基于所述路径约束集合和具有打分机制类型的模糊测试,生成多个测试用例,并基于测试分数评判标准,根据所述多个测试用例执行所述待测指令集,得到各个测试用例
的测试结果和各个测试用例的测试分数,其中,所述测试分数评判标准根据测试速度阈值、测试结果阈值以及到达所述待测指令集的路径深度阈值来确定。
[0017]在一可实施方式中,所述获取所述测试用例的路径约束条件,包括:
[0018]接收所述各个测试用例的测试分数的反馈信息,生成第二路径约束条件,并确定多个新的测试用例,其中,所述第二路径约束条件为采用测试分数高于分数阈值的测试用例所对应的测试种子;根据所述多个新的测试用例执行所述待测指令集以进行新一轮测试,直至累计进行测试的测试用例个数满足预设测试个数,结束测试。
[0019]根据本公开的第二方面,提供了一种指令集测试装置,所述装置包括:
[0020]静态分析模块,用于对待测指令集进行静态分析,得到所述待测指令集的程序数据,其中,所述程序数据用于显示所述指令集内的程序及程序间的执行路径;
[0021]生成模块,用于对所述待测指令集的程序数据进行约束求解,生成路径约束集合,其中,所述路径约束集合包含测试用例执行的所有执行路径;
[0022]模糊测试模块,用于基于所述路径约束集合,生成多个测试用例,并根据所述多个测试用例执行所述待测指令集,得到各个测试用例的测试结果;
[0023]漏洞确定模块,用于根据所述各个测试用例的测试结果,确定所述待测指令集的漏洞信息。
[0024]在一可实施方式中,所述模糊测试模块具体用于:
[0025]获取所述测试用例的路径约束条件,其中,所述路径约束条件用于限定测试种子的生成范围,其中,所述测试种子用于衍生多个测试用例;
[0026]基于所述路径约束集合和所述测试用例的路径约束条件,生成多个测试用例。
[0027]在一可实施方式中,所述模糊测试模块,具体用于:
[0028]根据所述待测指令集的类型,确定易产生漏洞信息的测试种子,并根据所述易产生漏洞信息的测试种子生成第一路径约束条件。
[0029]在一可实施方式中,所述模糊测试模块具体用于:
[0030]基于具有打分机制类型的模糊测试和测试分数评判标准,根据所述多个测试用例执行所述待测指令集,得到各个测试用例的测试结果和各个测试用例的测试分数,其中,所述测试分数评判标准根据测试速度阈值、测试结果阈值以及到达所述待测指令集的路径深度阈值来确定。
[0031]在一可实施方式中,所述模糊测试模块具体用于:
[0032]接收所述各个测试用例的测试分数的反馈信息,生成第二路径约束条件,并确定多个新的测试用例,其中,所述第二路径约束条件为采用测试分数高于分数阈值的测试用例所对应的测试种子;根据所述多个新的测试用例执行所述待测指令集以进行新一轮测试,直至累计进行测试的测试用例个数满足预设测试个数,结束测试。
[0033]根据本公开的第三方面,提供了一种电子设备,包括:
[0034]至少一个处理器;以及
[0035]与所述至少一个处理器通信连接的存储器;其中,
[0036]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开所述的方法。
[0037]根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储
介质,所述计算机指令用于使所述计算机执行本公开所述的方法。
[0038]本公开的指令集测试方法、装置、设备及存储介质,通过对待测指令集进行静态分析,得到所述待测指令集的程序数据,其中,所述程序数据用于显示所述指令集内的程序及程序间的执行路径;对所述待测指令集的程序数据进行约束求解,生成路径约束集合,其中,所述路径约束集合包含测试用例执行的所有执行路径;基于所述路径约束集合,生成多个测试用例,并根据所述多个测试用例执行所述待测指令集,得到各个测试用例的测试结果;根据所述各个测试用例的测试结果,确定所述待测指令集的漏洞信息,能够避免无效用例的漏洞检测,提高漏洞检测的检测效率。
[0039]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0040]通过参考附图阅读下文的详细描述,本公开示例性实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种指令集测试方法,其特征在于,所述方法包括:对待测指令集进行静态分析,得到所述待测指令集的程序数据,其中,所述程序数据用于显示所述指令集内的程序及程序间的执行路径;对所述待测指令集的程序数据进行约束求解,生成路径约束集合,其中,所述路径约束集合包含测试用例执行的所有执行路径;基于所述路径约束集合,生成多个测试用例,并根据所述多个测试用例执行所述待测指令集,得到各个测试用例的测试结果;根据所述各个测试用例的测试结果,确定所述待测指令集的漏洞信息。2.根据权利要求1所述的方法,其特征在于,所述基于所述路径约束集合,生成多个测试用例,包括:获取所述测试用例的路径约束条件,其中,所述路径约束条件用于限定测试种子的生成范围,其中,所述测试种子用于衍生多个测试用例;基于所述路径约束集合和所述测试用例的路径约束条件,生成多个测试用例。3.根据权利要求2所述的方法,其特征在于,所述获取所述测试用例的路径约束条件,包括:根据所述待测指令集的类型,确定易产生漏洞信息的测试种子,并根据所述易产生漏洞信息的测试种子生成第一路径约束条件。4.根据权利要求2或3所述的方法,其特征在于,所述基于所述路径约束集合,生成多个测试用例,并根据所述多个测试用例执行所述待测指令集,得到各个测试用例的测试结果,包括:基于所述路径约束集合和具有打分机制类型的模糊测试,生成多个测试用例,并基于测试分数评判标准,根据所述多个测试用例执行所述待测指令集,得到各个测试用例的测试结果和各个测试用例的测试分数,其中,所述测试分数评判标准根据测试速度阈值、测试结果阈值以及到达所述待测指令集的路径深度阈值来确定。5.根据权利要求4所述的方法,其特征在于,所述获取所述测试用例的路径约束条件,包括:接收所述各个测试用例的测试分数的反馈信息,生成第二路径约束条件,并确定多个新的测试用例,其中,所述第二路径约束条件为采用测试...

【专利技术属性】
技术研发人员:金辉王云浩
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:

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

1