软件缺陷是软件出现错误、故障的根源。软件缺陷是需求分析不合理、编程语言不严谨、开发人员缺少经验等因素导致的。软件缺陷不可避免,提交缺陷报告是发现缺陷并改进缺陷的重要途径。缺陷报告是描述缺陷的载体,对缺陷报告的修复是完善...软件缺陷是软件出现错误、故障的根源。软件缺陷是需求分析不合理、编程语言不严谨、开发人员缺少经验等因素导致的。软件缺陷不可避免,提交缺陷报告是发现缺陷并改进缺陷的重要途径。缺陷报告是描述缺陷的载体,对缺陷报告的修复是完善软件的必要手段。维护人员和用户因同一缺陷重复提交报告,导致缺陷报告库中存在大量冗余的报告,手动分诊已无法适应越来越复杂的软件系统。重复缺陷报告检测能过滤缺陷报告库中冗余的重复报告,并将人力与时间投入到新的缺陷报告上。当前研究方法的预测准确率始终不高,其难点在于寻找一个合适且全面的方法来衡量缺陷报告之间的相似性。借鉴集成方法的思想,提出了一种基于文本信息、分类信息相融合的重复缺陷报告检测方法——BSO(combination of BM25F、LSI and One-Hot)。在数据预处理的基础上,文中将重复缺陷报告分割为文本信息域与分类信息域。在文本信息域上使用BM25F与LSI算法,得到两个方法的相似性打分,运用相似性融合方法将两个方法的相似性打分进行整合;在分类信息域上使用One-Hot算法得到相似性打分。运用相似性融合方法,融合文本信息域与分类信息域的相似性打分,为每个缺陷报告对应一个重复缺陷报告推荐列表,并计算重复缺陷报告检测的准确率。利用Python语言,在公开的数据集OpenOffice上与基线方法以及较新水平方法REP、DBTM进行对比。实验结果表明,与DBTM相比,本文方法的准确率平均提高了4.7%;与REP方法相比,本文方法的准确率平均提高了6.3%;与基线方法相比,本文方法的准确率提升较高。实验结果充分证明了BSO方法的有效性。展开更多
为了更有效地获得缺陷报告的非结构化信息的特征,提出一种D_BBAS(Doc2vec and BERT BiLSTM-attention similarity)方法,它基于大规模缺陷报告库训练特征提取模型,生成能反映深层次语义信息的缺陷摘要文本表示集和缺陷描述文本表示集;利...为了更有效地获得缺陷报告的非结构化信息的特征,提出一种D_BBAS(Doc2vec and BERT BiLSTM-attention similarity)方法,它基于大规模缺陷报告库训练特征提取模型,生成能反映深层次语义信息的缺陷摘要文本表示集和缺陷描述文本表示集;利用这两个分布式的表示集计算出缺陷报告对的相似度,从而得到两个新的相似度特征;这两个新特征将与基于结构化信息生成的传统特征结合后参与重复缺陷报告的检测。在著名开源项目Eclipse、NetBeans和Open Office的缺陷报告库上验证了D_BBAS方法的有效性,其中包含超过50万个缺陷报告。实验结果表明,相比于代表性方法,该方法的F1值平均提升了1.7%,证明了D_BBAS方法的有效性。展开更多
文摘软件缺陷是软件出现错误、故障的根源。软件缺陷是需求分析不合理、编程语言不严谨、开发人员缺少经验等因素导致的。软件缺陷不可避免,提交缺陷报告是发现缺陷并改进缺陷的重要途径。缺陷报告是描述缺陷的载体,对缺陷报告的修复是完善软件的必要手段。维护人员和用户因同一缺陷重复提交报告,导致缺陷报告库中存在大量冗余的报告,手动分诊已无法适应越来越复杂的软件系统。重复缺陷报告检测能过滤缺陷报告库中冗余的重复报告,并将人力与时间投入到新的缺陷报告上。当前研究方法的预测准确率始终不高,其难点在于寻找一个合适且全面的方法来衡量缺陷报告之间的相似性。借鉴集成方法的思想,提出了一种基于文本信息、分类信息相融合的重复缺陷报告检测方法——BSO(combination of BM25F、LSI and One-Hot)。在数据预处理的基础上,文中将重复缺陷报告分割为文本信息域与分类信息域。在文本信息域上使用BM25F与LSI算法,得到两个方法的相似性打分,运用相似性融合方法将两个方法的相似性打分进行整合;在分类信息域上使用One-Hot算法得到相似性打分。运用相似性融合方法,融合文本信息域与分类信息域的相似性打分,为每个缺陷报告对应一个重复缺陷报告推荐列表,并计算重复缺陷报告检测的准确率。利用Python语言,在公开的数据集OpenOffice上与基线方法以及较新水平方法REP、DBTM进行对比。实验结果表明,与DBTM相比,本文方法的准确率平均提高了4.7%;与REP方法相比,本文方法的准确率平均提高了6.3%;与基线方法相比,本文方法的准确率提升较高。实验结果充分证明了BSO方法的有效性。