代码测试方法及系统技术方案

技术编号:40280051 阅读:23 留言:0更新日期:2024-02-07 20:34
本申请提供一种代码测试方法及系统,涉及软件分析技术领域。所述方法包括:获取目标隐式流变量;所述目标隐式流变量为合并符号执行状态后的隐式流变量;基于所述目标隐式流变量进行约束求解确定隐式流入口点的输入值;基于所述输入值测试所述输入值对应的代码分支。本申请实施例提供的代码测试方法及系统,可以探索更多代码分支路径,提高代码覆盖度。

【技术实现步骤摘要】

本申请涉及软件分析,尤其涉及一种代码测试方法及系统


技术介绍

1、符号执行是一种重要的形式化方法和软件分析技术。通过使用符号执行,将程序中变量的值表示为符号值和常量组成的计算表达式,并随着程序后续代码对变量的修改将输出表示为输入符号值的函数。在遇到分支时,将分支条件加入路径约束,并最终约束求解,从而得到执行路径对应的输入。混合符号执行(concolic执行)是一种动态符号执行,其需要具体的输入,并让符号执行随着输入对应的执行路径进行。

2、混合符号执行会受到隐式流的阻碍。当程序中的输入能够影响控制流,而控制流的变化进一步改变了一些变量的值时,这些变量与输入之间存在隐式流,这些变量被称为隐式流变量。在混合符号执行时,随着前期执行路径的确定,隐式流变量的范围缩小,可能导致相关路径约束无法被求解,并进一步导致代码覆盖度的降低。因此,需要对这种情况处理。


技术实现思路

1、本申请提供一种代码测试方法及系统,可以探索更多代码分支路径,提高代码覆盖度。

2、第一方面,本申请实施例提供一种代码测试本文档来自技高网...

【技术保护点】

1.一种代码测试方法,其特征在于,包括:

2.根据权利要求1所述的代码测试方法,其特征在于,所述获取目标隐式流变量之前,还包括:

3.根据权利要求2所述的代码测试方法,其特征在于,所述获取目标隐式流变量,包括:

4.根据权利要求2所述的代码测试方法,其特征在于,所述基于所述目标隐式流变量进行约束求解确定隐式流入口点的输入值,包括:

5.根据权利要求4所述的代码测试方法,其特征在于,所述基于所述目标隐式流变量确定第一路径约束,包括:

6.根据权利要求5所述的代码测试方法,其特征在于,所述基于对所述初始隐式流变量进行符号分配得到第二...

【技术特征摘要】

1.一种代码测试方法,其特征在于,包括:

2.根据权利要求1所述的代码测试方法,其特征在于,所述获取目标隐式流变量之前,还包括:

3.根据权利要求2所述的代码测试方法,其特征在于,所述获取目标隐式流变量,包括:

4.根据权利要求2所述的代码测试方法,其特征在于,所述基于所述目标隐式流变量进行约束求解确定隐式流入口点的输入值,包括:

5.根据权利要求4所述的代码测试方法,其特征在于,所述基于所述目标隐式流变量确定第一路径约束,包括:

6.根据权利要求5所述的代码测试方法,其特征在于,...

【专利技术属性】
技术研发人员:朱红松曾怡诚宋站威李志于楠孙利民
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:

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

1