一种改进的基于符号执行的软件静态测试方法及工具技术

技术编号:6956586 阅读:439 留言:0更新日期:2012-04-11 18:40
本发明专利技术公布了一种改进的基于符号执行的软件静态测试方法及工具,有如下步骤:1、第一阶段分析。其中包括:1.1)将被测代码输入测试工具中;1.2)根据C语言文法自定义一个关键词列表进行词法分析;1.3)根据C语言文法自定义函数结构模块及算法对代码进行语法分析得到程序静态分析树;2、第二阶段分析。其中包括:2.1)根据步骤(1.2)中词法分析结果,以结构体的形式(包含变量名称及变量的符号值)建立变量列表、以链表的形式存储当前路径条件;2.2)根据步骤(1.3)中语法分析结果,对程序静态分析树进行中序遍历,将步骤(2.1)中存储的路径条件进行约束求解得到可执行路径,得到变量最终的符号执行结果。本发明专利技术能够克服在其他静态测试中不能确定程序中变量的值的问题。

【技术实现步骤摘要】

本专利技术涉及一种改进的基于符号执行的软件静态测试方法及工具,属于软件的静态测试

技术介绍
软件测试技术通常分为静态测试和动态测试。动态测试就是执行程序,再观察其行为是否满足要求。既可由用户直接观察,也可以使用一定的辅助工具。静态测试是不执行程序代码而寻找程序代码中可能存在的缺陷或评估程序代码的过程,程序静态测试的目标不是证明程序完全正确,而是作为动态测试的补充,在程序运行前尽可能多的发现其中隐含的错误,提高程序的可靠性和健壮性,静态测试在更高的抽象层次上对程序的某些属性进行考察,而不是对程序的某一个特定输入的考察。现在国内对于静态测试中的符号执行方法方面的研究并不是很充分,国内比较著名的是北京航空航天大学软件研究所开发的Mfeftx) C/C++, SafePro C/C++提供多选窗口单驱动的用户工作环境,支持若干种测试信息的快速关联分析,提供了图文并茂的软件测试结果报告,同时支持静态和动态测试。在这些已有的软件静态测试理论和测试工具中,一般仍然或多或少存在以下不足(1)对符号执行功能模块没有得到充分重视和实现;(2)对隐含的代码错误测试效果不好,如果再次测试将花费大本文档来自技高网...

【技术保护点】
1.一种改进的基于符号执行的软件静态测试方法及工具,已经开发包含该方法的面向宿主的软件自动化测试工具,其特征在于包括如下步骤:1、第一阶段分析。其中包括:1.1)将被测代码输入测试工具中;1.2)根据C语言文法自定义一个关键词列表,并对照关键词列表对被测试代码进行词法分析;1.3)根据C语言文法自定义函数结构模块、构造抽象语法树的生成算法,并对照词法分析的结果,利用“自下而上”的方法(即从从语法树的末端开始,步步向上“归约”),对被测代码进行语法分析,最终得到程序静态分析树(PAT)作为一个中间表示形式,并且利用文档进行存储,且利用树型控件进行显示;2、第二阶段分析。其中包括:2.1)根据第一...

【技术特征摘要】
1. 一种改进的基于符号执行的软件静态测试方法及工具,已经开发包含该方法的面向宿主的软件自动化测试工具,其特征在于包括如下步骤1、第一阶段分析。其中包括1.1)将被测代码输入测试工具中;1. 2)根据C语言文法自定义一个关键词列表,并对照关键词列表对被测试代码进行词法分析;1.3)根据C语言文法自定义函数结构模块、构造抽象语法树的生成算法,并对照词法分析的结果,利用“自下而上”的方法(即从从语法树的末端开始,步步向上“归约”),对被测代码进行语法分析,最终得到程序静态分析树(PAT)作为一个中间表示形式,并且利用文档进行存储,且利用树型控件进行显示;2、第二阶段分析。其中包括2. 1)...

【专利技术属性】
技术研发人员:刘久富娄坚波李金奎王伟苏青琴陈魁
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:84

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

1