软件缺陷报告管理关键技术研究
发布时间:2020-11-05 04:22
软件缺陷在软件开发和维护过程中是不可避免的。及时地发现并修复软件产品的缺陷可以有效的提高软件产品的质量,减少产品开发和维护的成本。软件组织通常采用缺陷跟踪系统来管理软件产品的缺陷,并将缺陷以缺陷报告的形式存储在跟踪系统中。缺陷报告提供了关于缺陷的详细信息,开发者可以基于这些信息对缺陷进行定位和修复,从而提高产品质量。在软件开发过程中,大量的缺陷报告存在于缺陷跟踪系统中,项目管理者需要对缺陷报告进行管理,以便尽快对缺陷进行修复,提高软件开发效率。在管理过程中,通常面临以下三个问题:如何自动识别含有重复缺陷的报告,从而减少重复缺陷带来的额外工作量;如何快速确定缺陷报告的优先级,以便合理的分派修复资源;如何精准地为缺陷报告推荐合适的修复人员,从而降低缺陷报告的修复周期,提升修复效率。本文对这些问题进行了较系统的研究,主要贡献如下:(1)为了有效识别含有重复缺陷的报告,提出了基于词向量模型和卷积神经网络模型的重复缺陷报告识别方法。词向量模型解决了重复缺陷报告识别中的词语层面的匹配缺口,卷积神经网络模型解决句子层面的匹配缺口。实验结果显示,该方法能够有效地对重复缺陷报告进行识别,并且词向量和卷积神经网络模型均有助于提升重复缺陷报告识别的性能。(2)为了快速确定缺陷报告的优先级,提出了主动半监督的缺陷报告优先级预测方法。从缺陷报告中抽取多维度的特征信息,采用机器学习中的主动学习和半监督学习方法,有效解决了当训练数据缺失时如何对缺陷报告的优先级进行预测的问题。实验结果表明了该方法的有效性。(3)为了精准地为缺陷报告推荐合适的修复人员,提出了基于人员能力和活跃度的缺陷修复人员推荐方法。首先采用三个启发式实验分析了人员能力、人员时间活跃度和空间活跃度在缺陷修复中的作用,然后提出了基于人员能力的模糊集模型、基于人员活跃度的缓冲池模型、及基于人员能力和活跃度的混合推荐算法。实验结果显示,该方法能够以较高的推荐准确度和较低的处理时间为缺陷报告推荐修复人员。(4)为了有效实现修复人员和缺陷的准确匹配,提出了基于人员-缺陷契合程度和完成时间的最优化缺陷修复人员匹配方法。用开发者能力与缺陷报告类型之间的匹配程度及缺陷报告的优先级来共同建模人员-缺陷契合程度,用当前所有开发者中最晚完成其所有任务的时间来衡量这批报告的最长时间;将该问题建模成多目标优化问题,并用实验比较了贪心算法、遗传算法以及深度优先搜索算法的效果。
【学位单位】:华南理工大学
【学位级别】:博士
【学位年份】:2018
【中图分类】:TP311.5
【部分图文】:
第二章 相关理论及技术第二章 相关理论及技术2.1 软件缺陷报告管理缺陷报告是用于追踪软件项目中的缺陷的一种软件制品。缺陷报告提供了关于的详细信息,因此开发者可以基于缺陷报告中的信息来定位和修复缺陷。一般的软发过程会将缺陷报告存储在缺陷跟踪系统中,相关的开发人员和测试人员都可以对报告进行查看,有权限的人还可以对其中的信息进行修改[3-6, 45-49]。Bugzilla 和 Jira 是两大最常用的缺陷跟踪系统,用户可以将自己项目产生的缺储在这些缺陷跟踪系统中,便于对这些缺陷进行各种管理。图 2-1 中给出 Bugzilla 中 Eclipse 项目的一个缺陷报告的示例。
图 2-2 缺陷报告的生命周期[40]的缺陷报告被开发者提交时,最初的状态是未确认(unconf深开发人员确定这是一个缺陷时,该缺陷报告的状态变为新者也负责将该缺陷报告分配给合适的开发者人员,让他们进的开发者叫做受托人(assignee),该缺陷报告的状态变为已分完成了对应的缺陷修复任务,那么该缺陷报告的状态否则,项目管理者或者受托人会试图找到其他合适的修复人管理者验证该缺陷已经成功修复了,他就会终止该缺陷修复变更为关闭(closed)。果某个开发者发现该缺陷并没有完全修复,该缺陷报告应的缺陷修复任务按照上面的步骤重新执行。下,缺陷报告从提交到修复的过程中会包含三个阶段:缺陷
即 p(wt|wt-1, … wt-n+1)。按照 Markov 链的假设,我们可以用每个词出的乘积来估计这句话的概率:P( ) ∏ ( ) 基于n-gram的语言模型中,我们可以基于n-gram出现的频率来计算词语的 ( ) ( ) ( )设置 n=2,就是 bigram 模型,当 n=5 并且使用 Kneser-Ney 平滑时,则是带m,后者常被作为语言模型的 baseline。神经网络中,我们用 softmax 层也实现了同样的功能: ( )中 h 是网络倒数第二层的输出向量(图 2-3 所示网络模型的隐藏层),v’w 词向量。
【参考文献】
本文编号:2871121
【学位单位】:华南理工大学
【学位级别】:博士
【学位年份】:2018
【中图分类】:TP311.5
【部分图文】:
第二章 相关理论及技术第二章 相关理论及技术2.1 软件缺陷报告管理缺陷报告是用于追踪软件项目中的缺陷的一种软件制品。缺陷报告提供了关于的详细信息,因此开发者可以基于缺陷报告中的信息来定位和修复缺陷。一般的软发过程会将缺陷报告存储在缺陷跟踪系统中,相关的开发人员和测试人员都可以对报告进行查看,有权限的人还可以对其中的信息进行修改[3-6, 45-49]。Bugzilla 和 Jira 是两大最常用的缺陷跟踪系统,用户可以将自己项目产生的缺储在这些缺陷跟踪系统中,便于对这些缺陷进行各种管理。图 2-1 中给出 Bugzilla 中 Eclipse 项目的一个缺陷报告的示例。
图 2-2 缺陷报告的生命周期[40]的缺陷报告被开发者提交时,最初的状态是未确认(unconf深开发人员确定这是一个缺陷时,该缺陷报告的状态变为新者也负责将该缺陷报告分配给合适的开发者人员,让他们进的开发者叫做受托人(assignee),该缺陷报告的状态变为已分完成了对应的缺陷修复任务,那么该缺陷报告的状态否则,项目管理者或者受托人会试图找到其他合适的修复人管理者验证该缺陷已经成功修复了,他就会终止该缺陷修复变更为关闭(closed)。果某个开发者发现该缺陷并没有完全修复,该缺陷报告应的缺陷修复任务按照上面的步骤重新执行。下,缺陷报告从提交到修复的过程中会包含三个阶段:缺陷
即 p(wt|wt-1, … wt-n+1)。按照 Markov 链的假设,我们可以用每个词出的乘积来估计这句话的概率:P( ) ∏ ( ) 基于n-gram的语言模型中,我们可以基于n-gram出现的频率来计算词语的 ( ) ( ) ( )设置 n=2,就是 bigram 模型,当 n=5 并且使用 Kneser-Ney 平滑时,则是带m,后者常被作为语言模型的 baseline。神经网络中,我们用 softmax 层也实现了同样的功能: ( )中 h 是网络倒数第二层的输出向量(图 2-3 所示网络模型的隐藏层),v’w 词向量。
【参考文献】
相关期刊论文 前3条
1 贺巧龙;李东亮;;基于遗传算法的函数优化问题研究[J];软件导刊;2009年06期
2 俞惠芳;;图的遍历的分析与算法设计[J];青海师范大学学报(自然科学版);2005年04期
3 张洁,朱莉娟;贪心算法与动态规划的比较[J];新乡师范高等专科学校学报;2005年05期
相关硕士学位论文 前2条
1 王彬;自动重复缺陷报告检测方法研究[D];华东师范大学;2016年
2 潘兴亮;Mozilla缺陷报告仓库现状研究及特征分析[D];大连理工大学;2013年
本文编号:2871121
本文链接:https://www.wllwen.com/guanlilunwen/yunyingzuzhiguanlilunwen/2871121.html