基于SMT求解器的路径敏感程序验证
Path Sensitive Program Verification Based on SMT Solvers作者机构:武汉大学计算机学院湖北武汉430072 软件工程国家重点实验室(武汉大学)湖北武汉430072
出 版 物:《软件学报》 (Journal of Software)
年 卷 期:2012年第23卷第10期
页 面:2655-2664页
核心收录:
学科分类:08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
基 金:国家自然科学基金(90818018 91018009)
主 题:路径敏感 程序验证 抽象解释 符号执行 SMT求解器
摘 要:随着软件规模的不断扩大以及复杂度的不断增长,人们越来越关注软件的可信性问题.验证程序是否满足断言所描述的性质,是保证软件可信性的一种常见方法.路径敏感的程序验证由于不可能遍历所有的路径,需要合并路径信息,因此造成精度上的损失.提出一种基于SMT求解器的路径敏感程序验证方法,在保证精确度的前提下,有效减少路径搜索空间.其基本思想是,利用最大强连通分量压缩循环路径,然后根据目标断言对控制流图进行切片.使用一种布尔表达式方法对路径空间进行抽象,结合抽象解释和符号执行技术对路径进行验证.结合F-Soft平台和Z3工具对该方法进行了实验验证,结果表明,该方法在验证的精确度和效率上都有较好的效果.