Software defect prediction—— LSTM

本文探讨了传统代码缺陷预测方法的局限性,并提出一种基于树结构长短期记忆网络的新模型,该模型能直接匹配源代码的抽象语法树,从而更好地捕捉语法、语义和结构位置信息,提高缺陷预测准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 介绍

过去的传统方法常常关注在设计特性,希望通过行数、词频数、复杂度度量等来预测出缺陷,但是往往忽略了语法和语义方面的捕捉,这样一来会使得某些情况下设计特性不能够准确反映出源代码的缺陷

缺陷的定义

代码运行时,软件系统可能会表现出来的问题(比如栈溢出、内存泄漏等)

传统方法的局限所在

  1. 代码度量相同,语义不相同:比如包含了一模一样代码的、没有缺陷的两个代码段,如果在语法无误的情况下对调某一行的位置,是有可能出现两种不同语义的代码段的。也就是说,变化后的代码段可能蕴含了缺陷。
  2. 词与词频相同,语义不相同:原理同上。
  3. 词与词频不同,语义相同:比如java中 while 和 for代表的语义是相似的,互相替换不影响语义的情况下,传统检测方法会把二者区别开来,这会影响后续判断。

新的模型

Tree-structured Long Short Term Memory network which directly matches with the Abstract Syntax Tree representation of source code structure.

它的优点

  • 保存了语法、语义、结构位置的信息。更准确的预测,弥补之前仅提取代码特征的预测能力的不足。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值