【摘 要】
:
软件缺陷预测技术能够辅助开发者发现潜在的软件缺陷,并降低发现缺陷所需的开销。传统软件缺陷预测方法通常利用软件度量元信息(代码行数、控制流圈复杂度等)作为特征来构建机器学习模型,预测有缺陷的软件模块。然而这种方法的缺点在于软件度量元中不包含软件的语法结构信息和语义信息。本文提出了一种使用词嵌入和深度学习技术以学习程序语义信息,进而预测程序中缺陷的方法Seml(Semantic LSTM model)
论文部分内容阅读
软件缺陷预测技术能够辅助开发者发现潜在的软件缺陷,并降低发现缺陷所需的开销。传统软件缺陷预测方法通常利用软件度量元信息(代码行数、控制流圈复杂度等)作为特征来构建机器学习模型,预测有缺陷的软件模块。然而这种方法的缺点在于软件度量元中不包含软件的语法结构信息和语义信息。本文提出了一种使用词嵌入和深度学习技术以学习程序语义信息,进而预测程序中缺陷的方法Seml(Semantic LSTM model)。本方法首先从源码的抽象语法树中按顺序抽取特定结点token,组成一个token序列,然后利用一个无监督训练得到的词嵌入模型,将每个token映射为一个定长的实值向量。在将每个样本的token序列转换为向量序列后,本方法利用训练集的向量序列和它们的标签(是否包含缺陷)来构建基于长短期记忆网络的缺陷预测模型。长短期记忆网络模型能够从序列中自动学习token的顺序关系,从而习得程序的语义信息。在PROMISE数据集的8个开源项目上进行的一系列实验表明,相比于现有的基于深度学习的缺陷预测方法以及目前先进的基于度量元的缺陷预测方法(DBN方法,tb-LSTM方法和ISDA方法),本文提出的方法在项目内和跨项目缺陷预测中均有更好的表现。具体来说,对于项目内缺陷预测,Seml比DBN方法、tb-LSTM方法和ISDA方法的平均F1值分别提高了2.1%,4.3%和9.6%;对于跨项目缺陷预测,Seml分别比上述三种方法的平均F1值提高了3.5%,0.8%和5.6%。此外,对本文token嵌入步骤的评估结果表明,利用词嵌入模型训练得到的token向量能够有效地对程序语义信息进行表示,因此本文的token嵌入步骤有助于Seml缺陷预测效果的提升。
其他文献
目前临床所用的灌肠器械为:搪瓷灌肠筒下连橡胶管续接肛管.这种器械有以下缺点:①灌肠筒不透明,不便于观察筒内液体下降情况.②灌肠筒为敞口容器,筒内液体易外溢.③橡胶管不
船舶杂散电流腐蚀是一种电化学腐蚀。本文以某船舵叶、美人架、螺旋桨异常腐蚀现象分析船舶杂散电流发生的原因、危害及防护措施,对于类似船舶的设计建造可引以为鉴。
<正> 现有的微波磁性材料,主要是利用其旋磁性。另一类重要的软磁性材料,则由于在100MHz以上的频率下,涡流损耗,畴壁共振损耗,尺寸共振损耗等多种高频损耗而变得无法应用。然
中国的"真人秀"节目经过数年的发展,已成为现在电视节目中不可或缺的一部分。"真人秀"节目属于电视大众文化的范畴,它的出现在一定程度上影响着受众的思维方式和价值观的形成
高通量卫星采用多波束技术实现极化隔离和空间隔离以复用频率资源,从而使通信容量成倍增加,但这对快速的自适应波束形成算法提出了更高的要求。为了解决采用LMS算法进行波束
目的调查贵州仡佬族和苗族人群24个常染色体短串联重复序列(STR)基因座的遗传多态性,探讨其群体遗传关系。方法应用SureID■PanGlobal试剂盒对贵州399名仡佬族和333名苗族无
本文叙述新工艺、新口味的低糖技术在潮汕凉果这一传统小食品生产中的应用.
<正> 一、唐代均田法令和赋役法合之史的考察从唐高祖李渊在六一八年建立了唐政权以来,一直到唐玄宗李隆基的开元二十五年(七三七),在此一百二十年内,唐政府在关于土地制度和
为了了解来自农田土壤径流磷浓度对太湖水体富营养化的贡献状况,采用田间小区试验的方法,研究了太湖地区安镇爽水型水稻土和常熟囊水型水稻土2000~2002年度磷素流失浓度变化及
以钛酸四丁酯为钛源,梳型聚合物为模板,采用溶胶-凝胶法低温水浴制备具有介孔结构的纳米TiO2,通过沉积-沉淀法将Ag/AgBr负载于介孔TiO2纳米微粒表面,制得高比表面积的Ag/AgBr