CN103246603B - 一种缺陷跟踪系统的软件缺陷报告自动分发方法 - Google Patents
一种缺陷跟踪系统的软件缺陷报告自动分发方法 Download PDFInfo
- Publication number
- CN103246603B CN103246603B CN201310092736.1A CN201310092736A CN103246603B CN 103246603 B CN103246603 B CN 103246603B CN 201310092736 A CN201310092736 A CN 201310092736A CN 103246603 B CN103246603 B CN 103246603B
- Authority
- CN
- China
- Prior art keywords
- report
- defect
- theme
- developer
- probability
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种缺陷跟踪系统的软件缺陷报告自动分发方法。本方法为:1)从软件缺陷报告数据库中提取已修复的历史缺陷报告;2)对历史缺陷报告的文本内容进行自然语言处理,得到每一历史缺陷报告的标引词集合;3)对历史缺陷报告进行主题建模,得到一定数目的主题以及所有历史缺陷报告在这些主题上的概率分布;4)对所有开发人员,计算他们参与讨论的主题的概率分布;5)将未分配修复推荐人的缺陷报告进行自然语言处理,并计算其在这些主题上的概率分布;6)根据4)所得的所有开发人员在主题上的概率分布,计算所有开发人员参与修复该缺陷报告的概率,将该缺陷报告分发给排名靠前的S个开发人员。本发明大大提高了缺陷报告的修复效率。
Description
技术领域
本发明涉及一种缺陷跟踪系统的软件缺陷报告自动分发方法,属于计算机软件开发技术领域。
背景技术
软件缺陷作为衡量软件质量的重要指标,一直受到学术界和工业界的关注(参考专利:专利号ZL201110209093.5,名称“一种软件缺陷报告修复方法”)。软件缺陷管理是软件开发过程中较为重要的环节之一,软件缺陷的数量及分布直接关系到软件项目的时间成本和金钱开销。在软件开发过程中,及时发现并修复软件产品中的缺陷可有效地提高软件产品质量。软件缺陷的存在会导致软件产品在一定程度上无法满足用户的需求。
为了有效管理缺陷,软件开发组织在开发和维护大型软件系统时,通常使用Bugzilla及JIRA等缺陷跟踪系统管理软件的缺陷及需求。通过缺陷跟踪系统,软件使用者及开发者可以方便地向系统提交及时发现的软件缺陷。缺陷跟踪系统记录、跟踪每个缺陷报告的状况,有效地展示软件产品的整体质量现状,同时还提供搜索缺陷、分配缺陷等功能。在缺陷跟踪系统中,开发者讨论缺陷的修复,QA分发缺陷报告、测试缺陷报告,项目管理者跟踪软件质量现状。缺陷跟踪系统是软件开发过程中开发者、QA及项目管理者等角色的重要交流枢纽。
当前,在大型软件开发组织中,每天会有大量的新增软件缺陷被提交到缺陷跟踪系统,这些缺陷报告主要通过人工进行分发给修复者,给软件组织成员,包括软件开发者、软件项目管理人员,带来沉重的负担。面对大量新增缺陷报告,将缺陷报告个性化地推荐给相关修复者,减少人工参与分发缺陷报告所花费的时间。
发明内容
鉴于软件缺陷修复人推荐的重要性以及现有人工方法的局限性,本发明提供了一种缺陷跟踪系统的软件缺陷报告自动分发方法。本发明的目的是将新增的软件缺陷报告自动推荐给相关的修复人员进行修复。
本发明的技术内容为:
一种缺陷跟踪系统的软件缺陷报告自动分发方法,其步骤为:
1)从缺陷跟踪系统的软件缺陷报告数据库中提取已修复的历史缺陷报告,及所提取历史缺陷报告的主体描述部分、历史缺陷报告的标题、及参与讨论的相关开发人员;
2)对缺陷跟踪系统历史缺陷报告的文本内容进行自然语言处理,得到每一历史缺陷报告的标引词集合;
3)缺陷跟踪系统在历史缺陷报告的标引词集合的基础上对历史缺陷报告进行主题建模,通过人为设定主题的数目,得到相应的主题以及每一历史缺陷报告在这些主题上的概率分布;
4)对所有开发人员,缺陷跟踪系统计算他们在这些主题上的概率分布;
5)缺陷跟踪系统将一未分配修复推荐人的缺陷报告进行同样的自然语言处理,得到该未分配缺陷报告的标引词集合并计算其在这些主题上的概率分布;
6)对于5)中提及的未分配修复推荐人的缺陷报告,缺陷跟踪系统根据4)所得的所有开发人员在主题上的概率分布和5)所得该缺陷报告在每一主题上的概率分布,计算每一开发人员参与修复该缺陷报告的概率;
7)缺陷跟踪系统根据6)所得的所有开发人员参与修复缺陷报告的概率,对开发人员进行排序,选取排名靠前的S个开发人员做为该未分配修复推荐人缺陷报告的修复人对其进行修复。
进一步的,所述开发人员指参与评论历史缺陷报告的开发人员。
进一步的,历史缺陷报告的文本内容为历史缺陷报告的主体描述及其标题。
进一步的,对缺陷报告的文本内容进行自然语言处理,包括英文分词、去除停用词及词干还原。
进一步的,采用LDA主题建模的方法,对缺陷报告进行主题建模,并得到一定数目的主题集合T={T1,T2,...,TN}以及历史缺陷报告在这些主题上的概率分布,N为主题的数目。
进一步的,步骤4)对所有开发人员,缺陷跟踪系统计算他们在这些主题上的概率分布的方法为:首先将每一个开发人员所参与修复的所有缺陷报告表示为一个集合:,m为第i个开发人员参与修复的所有缺陷报告的数目,即集合中的每一个缺陷报告可以表示为一个所有主题上的概率分布的列表:brk=(pk,1,pk,2,...pk,N),其中,pk,t为第k个缺陷报告在第t个主题上的概率分布,N为主题的数目,1≤k≤m;
进一步的,提取未分配修复推荐人的缺陷报告的文本内容,与步骤2)一致,对其进行自然语言处理,用步骤3)所得的主题模型计算该缺陷报告在所有主题上的概率分布,并将其表示为一个概率分布列表pq=(pq,1,pq,2,...pq,N),其中pq,t表示该编号为q的缺陷报告属于第t个主题的概率,1≤t≤N。
进一步的,计算所有开发人员参与修复该缺陷报告的概率的方法为:对于每一个开发人员,每一个主题,首先计算该开发人员参与修复该主题的缺陷报告的概率它表示第i个开发人员参与修复第t个主题的缺陷报告的概率,其中N为主题的数目,1≤k≤m;最后,计算该开发人员参与修复该缺陷报告的概率1≤t≤N。
进一步的,根据第6)步计算所得的开发人员修复该缺陷报告的概率Pi,q,对开发人员进行降序排序,选取排名靠前的前S名开发人员做为该未分配修复推荐人缺陷报告的修复人对其进行修复,其中1≤i≤H,H为所有开发人员的数目。
下面说明本发明的核心内容。
本发明方法的整体框架如附图所示。具体地,一种基于主题模型的软件缺陷修复分派方法,其步骤为:
1.构建历史数据集合
此阶段目的是为提取历史缺陷报告的数据,并构建历史缺陷报告集合和开发人员集合。。首先需要提取历史缺陷报告数据,包括每个缺陷报告的主体描述部分、标题和参与其讨论的开发人员。其次需要对每个缺陷报告的文本内容进行文本预处理,包括英文分词、去除停用词和词干提取。最后为经过文本预处理后的历史缺陷报告构建缺陷报告集合和开发人员集合。具体的步骤如下:
(1)英文分词
对于英文缺陷报告,分词较为简单,采用空格和标点符号对句子进行分割,如果是对于中文描述的缺陷报告,使用中文分词软件;
(2)去除停用词
采用停用词表去除停用词
(3)词干提取
采用Porter算法提取词干,获得能代表文档的标引词集合。
(4)构建历史缺陷报告集合
将所有经过文本预处理之后的缺陷报告构成一个集合BR={br1,br2,...,brM},所有开发人员构成一个集合其中M为所有历史缺陷报告的数目,H为所有开发人员的数目,bri={texti,Di},BRdevj为第j个开发人员参与讨论的历史缺陷报告集合,1≤j≤H,texti为缺陷报告bri经过预处理之后的文本内容,Di为参与讨论bri的开发人员,
2.主题建模
在构建了历史数据集合之后,首先需要对历史缺陷报告进行主题建模,得到一定数目的主题以及所有历史缺陷报告在这些主题上的概率分布。而后需要计算出所有开发人员参与讨论的主题集合。具体的步骤如下:
(1)对历史缺陷报告进行主题建模
对于历史缺陷报告集合BR中的每一个缺陷报告bri,通过LDA(请参考:D.M.Blei,A.Y.Ng,andM.I.Jordan.Latentdirichletallocation.J.Mach.Learn.Res.,3:993-1022,Mar.2003.)等主题建模方法,对其进行主题建模,得到一定数目的主题集合T={T1,T2,...,TN}及其在这些主题上的概率分布brk={pk,1,pk,2,...,pk,N},其中N为主题的数目,Tt为某一主题,1≤t≤N,是一个由属于它的缺陷报告组成的缺陷报告集合,pk,t为缺陷报告brk属于主题Tt的概率。
(2)计算开发人员参与讨论属于某一主题的缺陷报告的概率
每个开发人员参与讨论修复的所有缺陷报告都以某一概率属于某个主题,通过主题建模过程中得到的缺陷报告在主题上的分布,可以计算开发人员参与讨论属于某一主题的缺陷报告的概率表示第i个开发人员参与修复属于第t个主题的缺陷报告的概率,其中,为第i个开发人员参与讨论修复的所有缺陷报告集合,N为主题数目,pk,t为缺陷报告brk属于第t个主题的概率。
3.计算所有开发人员参与修复新缺陷报告的概率
当新缺陷报告brq到来时,首先需要根据计算该缺陷报告在主题集合T中所有主题上的概率分布pq=(pq,1,pq,2,...pq,N),根据之前计算得到的计算该开发人员参与修复该缺陷报告的概率
4.排序并推荐开发人员
得到每一个开发人员di修复新缺陷报告brq的概率Pi,q之后,需要对这些开发人员进行降序排序,然后选择排名靠前的S名开发人员,并将他们推荐为修复该新缺陷报告的修复人员。
与现有技术相比,本发明的积极效果为:
本发明指出缺陷报告的修复过程是一个开发者之间相互协作的过程,通过引入主题模型,计算开发人员修复属于某一主题的缺陷报告的概率,最后对开发人员进行排序,从而确定推荐的缺陷修复人员对新缺陷报告进行修复。本发明充分利用了软件缺陷报告的历史数据,首次提出利用主题建模的方法来改进缺陷报告修复人推荐的效果,大大提高了缺陷报告的修复效率。
附图说明
图1为本发明软件缺陷修复分派方法框架图。
具体实施方式
下面通过具体实施方式对本方法作进一步说明
1.提取历史缺陷报告数据
连接软件项目的缺陷数据库,从中获取历史缺陷报告数据。一般地,每个缺陷报告的描述信息会包括缺陷主体描述部分、缺陷报告的标题、缺陷报告的预定义字段(如:提交人、时间、状态、所属模块等)和开发者对缺陷报告的评论。
本方法从历史缺陷报告库中选择已经被修复的历史缺陷报告,以Bugzilla缺陷管理工具中的数据库字段为例,选择字段bug_resolution=“FIXED”并且字段bug_status=“VERIFIED”or“CLOSED”or“RESOLVED”;然后从缺陷报告库中为每个缺陷报告提取主体描述部分、缺陷报告的标题、以及开发者对缺陷报告的评论,并将它们合并成为一体;此外,还需要为每个缺陷报告关联相关的开发者,这里相关联的开发者主要是指参与评论该缺陷报告的开发者。
2.预处理缺陷数据
步骤一提取了缺陷报告的主体描述部分、缺陷报告的标题以及参加讨论的开发者。为了对缺陷报告进行主题建模,需要对缺陷报告的文本内容进行文本预处理。本方法对缺陷文档进行自然语言处理,包括英文分词、去除停用词、词干还原等步骤转换成离散的标引词集合。本文处理的是英文缺陷报告,分词较为简单,采用空格和标点符号对句子进行分割;随后采用停用词表去停用词;然后采用Porter算法取词干,获得能代表文档的标引词集合。并在此基础上用主题建模方法得到一定数目的主题,并计算所有缺陷报告在这些主题上的概率分布。
3.为新缺陷报告推荐相关修复人对其进行修复
具体地,分为以下三个小步骤:
(1).对于新缺陷报告,采用类似步骤2的方法,使用自然语言处理技术,包括分词、去停用词及词干还原,计算新缺陷报告在所有主题上的概率分布。
(2).对所有开发人员,计算他们参与修复这个新缺陷报告概率。
(3).利用步骤(2)得到的所有开发人员修复新缺陷报告的概率,对开发人员进行降序排序,选取TopS个(S一般小于或等于8个)开发者作为新缺陷的修复人,可以按照
现有的成熟方法对新的软件缺陷进行修复。
以上内容对本发明所述基于主题模型的的软件缺陷修复分派方法进行了详细的说明,但显然本发明的具体实现形式并不局限于此。对于本技术领域的一般技术人员来说,在不背离本发明的精神和权利要求范围的情况下对它进行的各种显而易见的改变都在本发明的保护范围之内。
Claims (4)
1.一种缺陷跟踪系统的软件缺陷报告自动分发方法,其步骤为:
1)缺陷跟踪系统从软件缺陷报告数据库中提取已修复的历史缺陷报告,包括历史缺陷报告的主体描述部分、历史缺陷报告的标题、及参与讨论的相关开发人员;
2)缺陷跟踪系统对历史缺陷报告的文本内容进行自然语言处理,得到每一历史缺陷报告的标引词集合;
3)缺陷跟踪系统根据历史缺陷报告的标引词集合对历史缺陷报告进行主题建模,得到设定数目的主题以及每一历史缺陷报告在这些主题上的概率分布;
4)缺陷跟踪系统计算每一开发人员在3)所得每一主题上的概率分布:首先将每一个开发人员所参与的所有缺陷报告表示为一个集合:m为第i个开发人员参与的所有缺陷报告的数目,集合中的每一个缺陷报告brm表示为一个所有主题上的概率分布的列表:brk=(pk,1,pk,2,...pk,t...pk,N),其中,pk,t为第k个缺陷报告在第t个主题上的概率,1≤t≤N,1≤k≤m;
5)缺陷跟踪系统将一未分配修复推荐人的缺陷报告进行自然语言处理,得到该缺陷报告的标引词集合并计算其在3)所得每一主题上的概率分布;
6)缺陷跟踪系统根据4)所得的所有开发人员在主题上的概率分布和5)所计算该缺陷报告在每一主题上的概率分布,计算每一开发人员参与修复该缺陷报告的概率:首先计算每一开发人员参与修复每一主题的缺陷报告的概率 表示第i个开发人员参与修复第t个主题的缺陷报告的概率;然后计算每一开发人员参与修复该缺陷报告的概率pq,t表示该缺陷报告q属于第t个主题的概率,Pi,q为开发人员i参与修复该缺陷报告q的概率;
7)缺陷跟踪系统根据6)所得的所有开发人员参与修复缺陷报告的概率,对开发人员进行排序,将该缺陷报告分发给排名靠前的S个开发人员。
2.如权利要求1所述的方法,其特征在于所述自然语言处理包括英文分词、去除停用词及词干还原。
3.如权利要求1所述的方法,其特征在于采用LDA主题建模的方法,对缺陷报告进行主题建模,并得到一个包含一定数目的主题集合T={T1,T2,...,TN}以及历史缺陷报告在这些主题上的概率分布,N为主题的数目。
4.如权利要求1或2所述的方法,其特征在于采用Porter算法提取词干,获得能代表缺陷报告文档的标引词集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310092736.1A CN103246603B (zh) | 2013-03-21 | 2013-03-21 | 一种缺陷跟踪系统的软件缺陷报告自动分发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310092736.1A CN103246603B (zh) | 2013-03-21 | 2013-03-21 | 一种缺陷跟踪系统的软件缺陷报告自动分发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103246603A CN103246603A (zh) | 2013-08-14 |
CN103246603B true CN103246603B (zh) | 2016-08-03 |
Family
ID=48926133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310092736.1A Expired - Fee Related CN103246603B (zh) | 2013-03-21 | 2013-03-21 | 一种缺陷跟踪系统的软件缺陷报告自动分发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103246603B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729473B (zh) * | 2014-01-22 | 2016-11-09 | 扬州大学 | 一种基于lda主题模型的相关软件历史数据提取方法 |
CN103970667B (zh) * | 2014-05-30 | 2016-08-31 | 深圳市茁壮网络股份有限公司 | 一种基于缺陷管理平台的缺陷分派方法及系统 |
CN104536881B (zh) * | 2014-11-28 | 2017-09-05 | 南京慕测信息科技有限公司 | 基于自然语言分析的众测错误报告优先级排序方法 |
CN104615533A (zh) * | 2015-01-15 | 2015-05-13 | 南京大学 | 一种基于移动即时通讯软件的软件缺陷智能跟踪管理方法 |
CN106250311A (zh) * | 2016-07-27 | 2016-12-21 | 成都启力慧源科技有限公司 | 基于lda模型的重复缺陷报告检测方法 |
CN106227669B (zh) * | 2016-07-29 | 2019-07-12 | 北京金山安全软件有限公司 | 一种代码的测试方法、装置及电子设备 |
WO2018045585A1 (zh) * | 2016-09-12 | 2018-03-15 | 深圳中兴力维技术有限公司 | 一种代码违反项的检查方法及系统 |
CN107329770A (zh) * | 2017-07-04 | 2017-11-07 | 扬州大学 | 针对软件安全性bug修复的个性化推荐方法 |
CN107957929B (zh) * | 2017-11-20 | 2021-02-26 | 南京大学 | 一种基于主题模型的软件缺陷报告修复人员分配方法 |
CN112667492B (zh) * | 2020-11-06 | 2024-03-08 | 北京工业大学 | 一种软件缺陷报告修复人推荐方法 |
CN113138920B (zh) * | 2021-04-20 | 2022-09-06 | 中国科学院软件研究所 | 基于知识图谱与语义角色标注的软件缺陷报告分派方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629230A (zh) * | 2012-03-07 | 2012-08-08 | 南京邮电大学 | 一种基于多特征缺陷再分配图分配缺陷报告的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007316734A (ja) * | 2006-05-23 | 2007-12-06 | Mitsubishi Electric Corp | 情報処理装置 |
-
2013
- 2013-03-21 CN CN201310092736.1A patent/CN103246603B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629230A (zh) * | 2012-03-07 | 2012-08-08 | 南京邮电大学 | 一种基于多特征缺陷再分配图分配缺陷报告的方法 |
Non-Patent Citations (1)
Title |
---|
软件缺陷自动分派研究;黄小亮;《中国优秀硕士论文学位论文全文数据库》;20120115;第22、41-47页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103246603A (zh) | 2013-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103246603B (zh) | 一种缺陷跟踪系统的软件缺陷报告自动分发方法 | |
Figueiredo | Industrial policy changes and firm-level technological capability development: evidence from Northern Brazil | |
CN103593352B (zh) | 一种海量数据清洗方法及装置 | |
CN102262663B (zh) | 一种软件缺陷报告修复方法 | |
Giustolisi et al. | An Excel-based solution to bring water distribution network analysis closer to users | |
CN102360535A (zh) | 三维可视化仿真培训系统及其方法 | |
CN104820733B (zh) | 一种高速列车需求元模型建立方法和装置 | |
TW200612292A (en) | System and method of credit scoring by applying data mining method | |
CN109145159A (zh) | 一种对数据进行处理的方法和装置 | |
CN104317624B (zh) | 基于插件处理的数据装配方法 | |
CN103176963A (zh) | 基于crf++汉语句义结构模型自动标注方法 | |
CN107562836A (zh) | 基于主题模型和机器学习的回答者推荐方法 | |
CN113468317B (zh) | 一种简历筛选方法、系统、设备和存储介质 | |
CN102135936A (zh) | 生成测试用例的方法以及系统 | |
CN103902845A (zh) | 基于模糊fmea的仿真系统风险评估方法 | |
CN108280583A (zh) | 基于大数据的岗位技能需求分析方法 | |
CN107798137B (zh) | 一种基于可加模型的多源异构数据融合架构系统 | |
CN104504210B (zh) | 一种基于Petri网的复杂机电系统可靠性建模方法 | |
Zou et al. | BIM and knowledge based risk management system: A conceptual model | |
CN103810365A (zh) | 一种基于水电仿真培训系统自动评分的方法 | |
CN116911767A (zh) | 一种规范化的输变电工程三维数据移交方法及系统 | |
CN110322297A (zh) | 基于bp神经网络的中大型冲压模具报价预测方法 | |
CN103019924B (zh) | 输入法智能性评测系统和方法 | |
Wang | Analysis and application of BIM technology in the project goal control | |
Zhang et al. | Integration application system of Chinese wooden architecture heritages based on BIM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160803 Termination date: 20180321 |