龚丹丹,王甜甜,苏小红,马培军
(哈尔滨工业大学计算机科学与技术学院,150001 哈尔滨)
冗余代码缺陷检测方法
龚丹丹,王甜甜,苏小红,马培军
(哈尔滨工业大学计算机科学与技术学院,150001 哈尔滨)
为解决冗余代码缺陷检测复杂度较高且检测精度较低的问题,设计并实现了基于控制结构的冗余代码检测模型.通过对TOKEN序列建立复合语句结构信息表,精简了程序的控制依赖关系,并在此基础上对幂等操作、死代码以及冗余赋值3种冗余代码进行检测,有效降低了缺陷检测复杂度.通过分析Linux开源代码表明,本模型可以快速的检测大规模程序,并且具有较低的误报率和漏报率.因此本模型可以帮助程序员发现进而修正软件缺陷,维护软件可靠性.
冗余代码;TOKEN序列;代码标准化
程序中的冗余代码意味着算法设计、代码实现中存在着问题.冗余代码不仅影响软件的测试评估和运行效率,同时还存在着潜在的安全隐患,并由此而引发语义和逻辑缺陷,而这些缺陷很难被已有的软件缺陷检测工具检测到,因此,需要对程序中的冗余代码进行检测.目前的冗余代码检测算法普遍误报率较高,很多学者针对缺陷误报率,进行了广泛的研究.其中,符号执行类方法[1-5]成为当前热门的检测方法,但在遇到循环、过程调用、选择分支过多时,符号执行实现困难.文献[6-9]根据区间运算理论提高检测精度,但目前现有的区间运算理论支持的数据类型单一,并不……