细粒度软件缺陷预测模型构建方法

文章探讨了细粒度软件缺陷预测的重要性,指出现有方法的问题在于度量元选择。通过构建基于代码语义的LSTM模型,提取AST并进行嵌入处理,训练LSTM树和分类器以提升预测性能。该模型旨在解决实际环境中细粒度预测的挑战。

        在软件缺陷预测领域,粒度指的是缺陷库中每条样本的项目粒度.其中可以分为类粒度、文件粒度或者包粒度等。不同的开发语言有不同的层级的模块粒度,在软件缺陷预测领域,一般来说,在预测效果能够满足要求的情况下,粒度越小,预测的结果的可用性越强,可用公开训练数据越少,预测模型构建难度也越高,粒度越大,预测的结果的可用性越小,可用公开训练数据越多,预测模型构建难度也越低。

        绝大多数数软件缺陷预测方法都是基于粗粒度模块进行缺陷预测的。工程实践却需要细粒度模块的预测结果。因此,细粒度软件缺陷预测有意义且十分迫切。主要从两个方面入手:一方面从现有的细粒度预测方法存在的问题入手;另一方面从优秀的粗粒度预测模型向细粒度转化入手;最终将研发出性能优秀的细粒度软件模型。

        在主要的细粒度缺陷预测方法中,Giger的研究相对成熟且其进行的实验能够复制。然而我们发现在实际环境中,Giger的研究在实际环境中性能不突出。一个缺陷预测模型的两个重要组成部分是度量元和学习模型,而具体的学习模型对缺陷预测模型影响并不大,所以导致当前细粒度缺陷预测在实际应用环境中性能不佳的最可能的原因是度量元。一般来说,对于测试人员来说,过程度量元很难获取到,所以应将重心放到重新选择产品度量元上。众多的产品度量元中,代码语义是既可行又有效的度量。在此基础上可以构建基于代码语义的细粒度软件缺陷预测模型。模型的构建过程如图1所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

plstudio1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值