首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 156 毫秒
1.
当前,缺陷跟踪系统通过缺陷报告实现缺陷与修复者的匹配。然而,以往的缺陷分派模型过于依赖缺陷报告的文本质量,引入自然语言中大量的冗余信息,并忽略了缺陷报告的元字段作为标签属性时存在于修复者之间的社区关系,使得模型结果表现较差。针对以上问题,本文提出一种基于多头自注意力机制的深度缺陷分派模型MSDBT(Multi-head Self-attention Deep Bug Triage)。对缺陷报告的文本内容以及根据元字段生成的修复者序列进行向量化;通过多头自注意力机制在内部的输入元素之间进行并行注意力计算。在4个开源软件项目上的实验结果表明,MSDBT在召回率指标上较之前模型具有明显的优势。  相似文献   

2.
史高翔  赵逢禹 《计算机科学》2016,43(11):246-251
准确地将缺陷分配给最合适的修复者对大型软件项目的缺陷修复具有重要意义。当前缺陷自动分配技术的研究主要利用历史缺陷报告的描述信息、缺陷关联信息、历史分派信息等,但这些方法都没有将缺陷报告信息充分挖掘。提出在缺陷报告分配时将缺陷历史分派信息和缺陷文本相似信息相结合。首先根据缺陷历史分派信息生成再分配图;然后计算新缺陷报告与历史缺陷报告缺陷的文本相似度,找出相似度最高的前K个缺陷报告所对应的修复者;最后,根据这些修复者在再分配图中的依赖关系生成预测再分配路径。为了验证该方法的有效性,利用Eclipse和Mozilla的缺陷报告集进行实验,实验表明提出的方法在预测的准确度上明显优于其他方法。  相似文献   

3.
目前许多软件项目使用缺陷追踪系统来自动化管理用户或者开发人员提交的缺陷报告。随着缺陷报告和开发人员数量的增长,如何快速将缺陷报告分配给合适的缺陷修复者正在成为缺陷快速解决的一个重要问题。分别使用长短期记忆模型和卷积神经网络两种深度学习方法来构建缺陷修复者推荐模型。该模型能够有效地学习缺陷报告的特征,并且根据该特征推荐合适的修复者。通过与传统机器学习方法(如贝叶斯方法和支持向量机方法)进行对比,该方法可以比较有效地在众多开发者中找出合适的缺陷修复者。  相似文献   

4.
对于大型开源软件项目来说,用户提交了海量缺陷报告,人工分发缺陷时会出现大量的错误分配。提出OSDR(Open Software Developer Recommendation)方法通过计算新缺陷报告和历史缺陷报告之间的文本相似度,基于K最近邻算法得到相似度最高的K个历史缺陷报告及其对应的修复人列表,再基于频率和社交网络图的各项指标对开发者专业能力进行评价。从Mozilla Firefox缺陷库中采集真实实验数据,比较不同社交网络指标在推荐修复人时的准确率与召回率。结果表明,推荐性能最高的指标是频率和出度,其准确率大约在0.6左右;Betweenness和Closeness的推荐效果最差;度、入度以及PageRank推荐效果良好。  相似文献   

5.
史小婉  马于涛 《计算机科学》2018,45(11):193-198, 219
开源软件项目的缺陷管理和修复是保障软件质量及软件开发效率的重要手段,而提高软件缺陷分配的效率是其中亟需解决的一个关键问题。文中提出了一种基于文本分类和评分机制的开发者预测方法,其核心思想是综合考虑基于机器学习的文本分类和基于软件缺陷从属特征的评分机制来构建预测模型。针对大型开源软件项目Eclipse和Mozilla的十万级已修复软件缺陷的实验表明,在“十折”增量验证模式下,所提方法的最好平均准确率分别达到了78.39%和64.94%,比基准方法(机器学习分类+再分配图)的最高平均准确率分别提升了17.34%和10.82%,从而验证了其有效性。  相似文献   

6.
软件缺陷报告的严重性对缺陷的解决具有关键作用。随着软件规模的不断扩大,使用开源的软件缺陷跟踪系统成为海量缺陷信息数据的主要处理方法。分析缺陷报告严重性在数据仓库中的作用,是处理软件缺陷的重要内容。通过对Bugzilla缺陷跟踪系统数据的研究和分析,发现不同项目的属性特征差异较大,同时在修复率、解决时长、开发者、组件等属性上的统计特征具有一致性。对Mozilla项目和Eclipse项目的数据进行系统分析,并根据不同组件和项目中严重性程度分布情况,认为软件缺陷报告严重性程度的提升会导致缺陷修复率的提高,同时严重性程度为normal级别的缺陷解决时长最短,开发者持有缺陷的数量越高其修复率越低。  相似文献   

7.
郑炜  陈军正  吴潇雪  陈翔  夏鑫 《软件学报》2020,31(5):1294-1313
软件安全问题的发生在大多数情况下会造成非常严重的后果,及早发现安全问题,是预防安全事故的关键手段之一.安全缺陷报告预测可以辅助开发人员及早发现被测软件中潜藏的安全缺陷,从而尽早得以修复.然而,由于安全缺陷在实际项目中的数量较少,而且特征复杂(即安全缺陷类型繁多,不同类型安全缺陷特征差异性较大),这使得手工提取特征相对困难,并随后造成传统机器学习分类算法在安全缺陷报告预测性能方面存在一定的瓶颈.针对该问题,提出基于深度学习的安全缺陷报告预测方法,采用深度文本挖掘模型TextCNN和TextRNN构建安全缺陷报告预测模型;针对安全缺陷报告文本特征,使用skip-grams方式构建词嵌入矩阵,并借助注意力机制对TextRNN模型进行优化.所构建的模型在5个不同规模的安全缺陷报告数据集上展开了大规模实证研究,实证结果表明:深度学习模型在80%的实验案例中都要优于传统机器学习分类算法,性能指标F1-score平均可提升0.258,在最好的情况下甚至可以提升0.535.除此之外,针对安全缺陷报告数据集存在的类不均衡问题,对不同采样方法进行了实证研究,并对结果进行了分析.  相似文献   

8.
提出一种基于K-Means和主题模型的软件缺陷分析方法,对软件缺陷的类别和关键词进行研究.获取缺陷报告进行预处理,获取有效特征,利用向量空间模型进行文本表示,计算权重,根据最终特征向量进行聚类;提取每一类缺陷的主题和关键词,帮助修复人员快速找到对应的修复方式.关键词提取结果以单词形式呈现给修复人员.实验结果表明,所提方法在bugzilla、firefox和SeaM onkey这3款软件的缺陷报告共1500条缺陷信息上最终聚类平均准确率能达到81%.  相似文献   

9.
林涛  高建华  伏雪  马燕  林艳 《计算机科学》2016,43(6):179-183
软件工程中的软件缺陷报告数量在快速增长,开发者们越来越困惑于大量的缺陷报告。因此,为了达到缺陷修复和软件复用等目的,有必要研究软件缺陷报告的提取方法。提出一种提取方法,该方法首先合并缺陷报告中的同义词,然后建立空间向量模型,使用词频反文档频率以及信息增益等文本挖掘的方法来收集软件缺陷报告中单词的特征,同时设计算法来确定句子复杂度以选择长句,最后将贝叶斯分类器引入该领域。该方法可以提高缺陷报告提取的命中率,降低虚警率。实验证明,基于文本挖掘和贝叶斯分类器的软件缺陷报告提取方法在接受者工作特征曲线面积(0.71)、F-score(0.80)和Kappa值(0.75)方面有良好效果。  相似文献   

10.
开源软件生态系统的快速发展,为软件开发提供了一种新的模式,对开源软件推荐系统的研究已经成为当前一个重要的研究领域。已有的软件工程推荐系统大都利用协同过滤、机器学习以及开发者-项目属性匹配的方法进行推荐,而利用网络结构和网络分析技术进行推荐的研究相对较少。以软件生态系统GNOME为研究对象,构建开发者-项目二分网络,利用二分网络链路预测技术,采用一种基于内部边的方法对开发者进行项目推荐,并与协同过滤方法进行了对比。实验结果表明基于内部边的推荐方法比协同过滤方法更好。  相似文献   

11.
12.
Bug triaging, which routes the bug reports to potential fixers, is an integral step in software development and maintenance. To make bug triaging more efficient, many researchers propose to adopt machine learning and information retrieval techniques to identify some suitable fixers for a given bug report. However, none of the existing proposals simultaneously take into account the following three aspects that matter for the efficiency of bug triaging:1) the textual content in the bug reports, 2) the metadata in the bug reports, and 3) the tossing sequence of the bug reports. To simultaneously make use of the above three aspects, we propose iTriage which first adopts a sequence-to-sequence model to jointly learn the features of textual content and tossing sequence, and then uses a classification model to integrate the features from textual content, metadata, and tossing sequence. Evaluation results on three different open-source projects show that the proposed approach has significantly improved the accuracy of bug triaging compared with the state-of-the-art approaches.  相似文献   

13.
张芸  刘佳琨  夏鑫  吴明晖  颜晖 《软件学报》2020,31(8):2432-2452
缺陷定位是软件工程研究最活跃的领域之一.大部分软件缺陷都会被提交到类似于Bugzilla和Jira的缺陷追踪系统中.由于提交的缺陷报告数量过多,开发人员不能及时地处理,因而迫切需要一个自动化工具来帮助开发人员识别缺陷相关源代码文件.研究人员已经提出了大量的缺陷定位技术.基于信息检索的软件缺陷定位技术(Information Retrieval-based Bug Localization,简称IRBL)利用了缺陷报告的文本特性,并且由于计算成本低、对不同的程序语言更具有普适性,成为缺陷定位领域的研究热点,取得了一系列研究成果.然而,IRBL技术也在数据预处理、相似度计算和工程应用等方面存在诸多挑战.鉴于此,本文对现有的IRBL技术进行梳理总结.主要内容包括:(1)梳理了IRBL中数据预处理的过程和信息检索通用方法;(2)对IRBL技术中利用的数据特征进行了详细的分类和总结;(3)总结了技术评估中使用的性能评估指标;(4)归纳出了IRBL技术的关键问题;(5)最后展望了IRBL技术的未来发展.  相似文献   

14.
当软件缺陷被提交到缺陷跟踪系统并经过确认之后,它会被分发给开发人员进行缺陷修复.这个过程就叫做缺陷分发.随着被提交到系统的缺陷报告日益增多,手工分发缺陷报告会变得越来越困难.提出了一种自动分发缺陷的方法BUTTER.与其他方法不同的是,BUTTER不仅利用主题模型分析缺陷报告中的文本信息,而且创新性地建立了一个包含提交者、缺陷和开发者三种节点及其相互关系的异构网络,从该异构网络中抽取了更多的结构信息.实验证明,BUTTER进行自动缺陷分发较其他缺陷自动分发方法要好.  相似文献   

15.
In practice, some bugs have more impact than others and thus deserve more immediate attention. Due to tight schedule and limited human resources, developers may not have enough time to inspect all bugs. Thus, they often concentrate on bugs that are highly impactful. In the literature, high-impact bugs are used to refer to the bugs which appear at unexpected time or locations and bring more unexpected effects (i.e., surprise bugs), or break pre-existing functionalities and destroy the user experience (i.e., breakage bugs). Unfortunately, identifying high-impact bugs from thousands of bug reports in a bug tracking system is not an easy feat. Thus, an automated technique that can identify high-impact bug reports can help developers to be aware of them early, rectify them quickly, and minimize the damages they cause. Considering that only a small proportion of bugs are high-impact bugs, the identification of high-impact bug reports is a difficult task. In this paper, we propose an approach to identify high-impact bug reports by leveraging imbalanced learning strategies. We investigate the effectiveness of various variants, each of which combines one particular imbalanced learning strategy and one particular classification algorithm. In particular, we choose four widely used strategies for dealing with imbalanced data and four state-of-the-art text classification algorithms to conduct experiments on four datasets from four different open source projects. We mainly perform an analytical study on two types of high-impact bugs, i.e., surprise bugs and breakage bugs. The results show that different variants have different performances, and the best performing variants SMOTE (synthetic minority over-sampling technique) + KNN (K-nearest neighbours) for surprise bug identification and RUS (random under-sampling) + NB (naive Bayes) for breakage bug identification outperform the F1-scores of the two state-of-the-art approaches by Thung et al. and Garcia and Shihab.  相似文献   

16.
软件缺陷在软件的开发和维护过程中是不可避免的,软件缺陷报告是软件维护过程中重要的缺陷描述文档,高质量的软件缺陷报告可以有效提高软件缺陷修复的效率.然而,由于存在许多开发人员、测试人员和用户与缺陷跟踪系统交互并提交软件缺陷报告,同一个软件缺陷可能被不同的人员报告,导致了大量重复的软件缺陷报告.重复的软件缺陷报告势必加重人工检测重复缺陷报告的工作量,并造成人力物力的浪费,降低了软件缺陷修复的效率.以系统文献调研的方式,对近年来国内外学者在重复软件缺陷报告检测领域的研究工作进行了系统的分析.主要从研究方法、数据集的选取、性能评价等方面具体分析总结,并提出该领域在后续研究中存在的问题、挑战以及建议.  相似文献   

17.
邢双双  刘名威  彭鑫 《软件学报》2022,33(11):4027-4045
开源及企业软件项目和各类软件开发网站上的代码片段是重要的软件开发资源.然而,很多开发者代码搜索需求反映的代码的高层意图和主题难以通过基于代码文本的信息检索技术来实现精准的代码搜索.因此,反映代码整体意图和主题的语义标签对于改进代码搜索、辅助代码理解都具有十分重要的作用.现有的标签生成技术主要面向文本内容或依赖于历史数据,无法满足大范围代码语义标注和辅助搜索、理解的需要.针对这一问题,提出了一种基于知识图谱的代码语义标签自动生成方法KGCodeTagger.该方法通过基于API文档和软件开发问答文本的概念和关系抽取构造软件知识图谱,作为代码语义标签生成的基础.针对给定的代码,该方法识别并抽取出通用API调用或概念提及,并链接到软件知识图谱中的相关概念上.在此基础上,该方法进一步识别与所链接的概念相关的其他概念作为候选,然后按照多样性和代表性排序,产生最终的代码语义标签.通过实验对KGCodeTagger软件知识图谱构建的各个步骤进行了评估,并通过与几个已有的基准方法的比较,对所生成的代码语义标签质量进行了评估.实验结果表明,KGCodeTagger的软件知识图谱构建步骤是合理有效的,该方法所生成的代码语义标签是高质量、有意义的,能够帮助开发人员快速理解代码的意图.  相似文献   

18.
Daily large number of bug reports are received in large open and close source bug tracking systems. Dealing with these reports manually utilizes time and resources which leads to delaying the resolution of important bugs. As an important process in software maintenance, bug triaging process carefully analyze these bug reports to determine, for example, whether the bugs are duplicate or unique, important or unimportant, and who will resolve them. Assigning bug reports based on their priority or importance may play an important role in enhancing the bug triaging process. The accurate and timely prioritization and hence resolution of these bug reports not only improves the quality of software maintenance task but also provides the basis to keep particular software alive. In the past decade, various studies have been conducted to prioritize bug reports using data mining techniques like classification, information retrieval and clustering that can overcome incorrect prioritization. Due to their popularity and importance, we survey the automated bug prioritization processes in a systematic way. In particular, this paper gives a small theoretical study for bug reports to motivate the necessity for work on bug prioritization. The existing work on bug prioritization and some possible problems in working with bug prioritization are summarized.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号