[发明专利]一种程序不可达路径的自动检测方法在审
申请号: | 201510843266.7 | 申请日: | 2015-11-26 |
公开(公告)号: | CN105446881A | 公开(公告)日: | 2016-03-30 |
发明(设计)人: | 唐郑熠;王金水;薛醒思;洪茂雄;胡文瑜;刘建华 | 申请(专利权)人: | 福建工程学院 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市商泰律师事务所 11255 | 代理人: | 王晓彬 |
地址: | 350118 福*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序 不可 路径 自动检测 方法 | ||
1.一种程序不可达路径的自动检测方法,其特征在于,包括如下步骤:
步骤1)将待检测的计算机程序转化为控制流图;
步骤2)通过改进的广度优先搜索策略将控制流图转化为程序模型;
步骤3)分析每个状态是否可达,寻找程序中的不可达路径,方法为:验证程序模型中的每个状态s是否存在一条包含s的状态序列;若对于某个状态s,不存在包含s的状态序列,则此状态为不可达状态;
步骤4)采用模型检测技术自动检测步骤2)中的程序模型,得到不可达状态的集合;
步骤5)根据不可达状态的集合,搜索程序路径是否包含不可达状态,得到不可达路径集合。
2.如权利要求1所述的程序不可达路径的自动检测方法,其特征在于,所述步骤2)中,程序模型为包含状态、迁移和迁移标号三大要素的形式化模型,且不包含状态、迁移和标号三大要素以外的性质要素。
3.如权利要求1所述的程序不可达路径的自动检测方法,其特征在于,所述改进的广度优先搜索策略具体为:
3.1)遍历控制流图中的每个节点,若该节点是一个赋值语句,则创建一个新的状态,并以该赋值语句为迁移标号,创建一个从前驱状态到新状态的迁移;若该节点是一个判定语句,则创建两个新的状态,分别表示判定条件为真和假两种情况,并依据判定语句的真假两种取值情况生成迁移标号;
3.2)若当前节点的后继节点是遍历过的节点,则创建一个从当前节点到后继节点的前一节点的空标号迁移;
3.3)记录每个节点所对应的状态。
4.如权利要求1所述的程序不可达路径的自动检测方法,其特征在于,所述步骤5)中,采用递归策略搜索程序路径是否包含不可达状态。
5.如权利要求4所述的程序不可达路径的自动检测方法,其特征在于,采用递归策略搜索程序不可达路径的方法具体为:搜索程序模型的所有状态,若搜索到的状态为终止状态则递归终止,并判断当前生成的路径中是否包含不可达状态,若包含,则当前生成的路径是不可达路径;若搜索到的状态不是终止状态,则将当前状态加入到程序路径中,并检查当前状态的所有后继状态,若后继状态未出现在程序路径中,则对该后继状态继续进行递归。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建工程学院,未经福建工程学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510843266.7/1.html,转载请声明来源钻瓜专利网。