[发明专利]一种缺陷处理方法及缺陷处理装置有效
申请号: | 201310516392.2 | 申请日: | 2013-10-28 |
公开(公告)号: | CN103559127B | 公开(公告)日: | 2017-03-29 |
发明(设计)人: | 王雅文;宫云战;金大海;黄俊飞;王前 | 申请(专利权)人: | 北京邮电大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F17/30 |
代理公司: | 北京派特恩知识产权代理有限公司11270 | 代理人: | 张振伟,王黎延 |
地址: | 100876 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 缺陷 处理 方法 装置 | ||
技术领域
本发明涉及静态测试技术,尤其涉及一种缺陷处理方法及缺陷处理器。
背景技术
静态代码缺陷分析技术通过对代码进行静态分析来推测程序运行时的表现行为,从而发现代码中可能存在的缺陷。这类技术主要包括抽象解释、定理证明、模型检测、符号执行和基于缺陷模式的代码检查等。
基于缺陷模式的代码检查主要包括以下步骤:首先,对已有代码中出现过的缺陷进行总结并提炼出“缺陷模式知识”;然后,采用静态分析的方法对待检测的代码进行缺陷模式匹配以确定待检测的代码是否包含“缺陷模式知识”中的缺陷,并把匹配结果以缺陷检测报告的形式呈现给用户。采用上述方法的典型缺陷静态分析工具为FindBugs、PMD、Hammurapi等。
然而,对于现有的基于缺陷模式的代码检查的缺陷静态分析工具,用户往往希望能够扩充“缺陷模式知识”,以使工具能够支持对自己所关注的“代码缺陷”进行检测。但大多数缺陷静态分析工具并没有为用户提供“添加新缺陷模式”的功能,或者,部分缺陷静态分析工具虽然支持用户扩充缺陷模式知识,但其扩展方式在易用性方面还存在很大不足。
发明内容
有鉴于此,本发明的主要目的在于提供一种缺陷处理方法及缺陷处理器,能够便捷地扩充与用户相关的缺陷模式,并且通过该缺陷模式进行有效的缺陷检测,提升了用户的体验。
为达到上述目的,本发明的技术方案是这样实现的:
一种缺陷处理方法,所述方法包括:
通过表达式值静态默认描述语言SDDL-EXP生成语法类缺陷模式;其中,所述SDDL-EXP为预定的值相关缺陷模式语言;
根据所述语法类缺陷模式,在被测代码中查找检测点,并将所述语法类缺陷模式中的缺陷发生的条件实例化;
根据预设的规范化策略,将所述被测代码中的变量及表达式进行转换;
对转换后的被测代码进行后向的数据流分析,根据实例化的条件验证在所述检测点处是否有缺陷发生。
所述通过SDDL-EXP,生成语法类缺陷模式,包括:
基于可扩展标记语言XML生成根标签<Default>,以及所述根标签<Default>的一级子标签:<Pattern>、<Operand>以及<Condition>,以及所述一级子标签<Operand>的二级子标签:<Order>和<Symbol>;
在所述一级子标签<Pattern>中,以伪代码形式生成缺陷模式相关表达式;
在所述二级子标签<Order>中,生成待检测的变量在所述缺陷模式相关表达式中的位置;
在所述二级子标签<Symbol>中,为所述待检测变量生成标识符;
在所述一级子标签<Condition>中,以所述标识符形式生成所述待检测变量发生缺陷的条件。
所述方法还包括:基于XML生成根标签<Default>、以及所述根标签<Default>的一级子标签:<Pattern>、<Operand>以及<Condition>时,还生成所述根标签<Default>的一级子标签:<Description>、以及所述第一子标签<Description>的二级子标签:<Name>、<Date>、<Language>以及<Example>;
在所述二级子标签<Name>中,生成缺陷模式的名称;
在所述二级子标签<Date>中,生成缺陷模式的创建时间;
在所述二级子标签<Language>中,生成被检测代码的语言类型;
在所述二级子标签<Example>中,生成示例代码。
所述根据所述语法类缺陷模式,在被测代码中查找检测点,并将所述语法类缺陷模式中的缺陷发生的条件实例化,包括:
解析所述一级子标签<Pattern>中的伪代码,确定出缺陷模式相关表达式的类型;
在所述被测代码中查找与所述缺陷模式相关表达式的类型相匹配的表达式,并作为检测点;
依据所述二级子标签<Order>,在所匹配的表达式中提取待检测的变量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310516392.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:双滚筒液压自动张紧无极绳绞车
- 下一篇:照明控制系统