一种缺陷跟踪系统的软件缺陷报告自动分发方法

文档序号:6400734阅读:482来源:国知局
专利名称:一种缺陷跟踪系统的软件缺陷报告自动分发方法
技术领域
本发明涉及一种缺陷跟踪系统的软件缺陷报告自动分发方法,属于计算机软件开发技术领域。
背景技术
软件缺陷作为衡量软件质量的重要指标,一直受到学术界和工业界的关注(参考专利:专利号ZL201110209093.5,名称“一种软件缺陷报告修复方法”)。软件缺陷管理是软件开发过程中较为重要的环节之一,软件缺陷的数量及分布直接关系到软件项目的时间成本和金钱开销。在软件开发过程中,及时发现并修复软件产品中的缺陷可有效地提高软件产品质量。软件 缺陷的存在会导致软件产品在一定程度上无法满足用户的需求。为了有效管理缺陷,软件开发组织在开发和维护大型软件系统时,通常使用Bugzilla及JIRA等缺陷跟踪系统管理软件的缺陷及需求。通过缺陷跟踪系统,软件使用者及开发者可以方便地向系统提交及时发现的软件缺陷。缺陷跟踪系统记录、跟踪每个缺陷报告的状况,有效地展示软件产品的整体质量现状,同时还提供搜索缺陷、分配缺陷等功能。在缺陷跟踪系统中,开发者讨论缺陷的修复,QA分发缺陷报告、测试缺陷报告,项目管理者跟踪软件质量现状。缺陷跟踪系统是软件开发过程中开发者、QA及项目管理者等角色的重要交流枢纽。当前,在大型软件开发组织中,每天会有大量的新增软件缺陷被提交到缺陷跟踪系统,这些缺陷报告主要通过人工进行分发给修复者,给软件组织成员,包括软件开发者、软件项目管理人员,带来沉重的负担。面对大量新增缺陷报告,将缺陷报告个性化地推荐给相关修复者,减少人工参与分发缺陷报告所花费的时间。

发明内容
鉴于软件缺陷修复人推荐的重要性以及现有人工方法的局限性,本发明提供了一种缺陷跟踪系统的软件缺陷报告自动分发方法。本发明的目的是将新增的软件缺陷报告自动推荐给相关的修复人员进行修复。本发明的技术内容为:—种缺陷跟踪系统的软件缺陷报告自动分发方法,其步骤为:I)从缺陷跟踪系统的软件缺陷报告数据库中提取已修复的历史缺陷报告,及所提取历史缺陷报告的主体描述部分、历史缺陷报告的标题、及参与讨论的相关开发人员;2)对缺陷跟踪系统历史缺陷报告的文本内容进行自然语言处理,得到每一历史缺陷报告的标引词集合;3)缺陷跟踪系统在历史缺陷报告的标引词集合的基础上对历史缺陷报告进行主题建模,通过人为设定主题的数目,得到相应的主题以及每一历史缺陷报告在这些主题上的概率分布;4)对所有开发人员,缺陷跟踪系统计算他们在这些主题上的概率分布;
5)缺陷跟踪系统将一未分配修复推荐人的缺陷报告进行同样的自然语言处理,得到该未分配缺陷报告的标引词集合并计算其在这些主题上的概率分布;6)对于5)中提及的未分配修复推荐人的缺陷报告,缺陷跟踪系统根据4)所得的所有开发人员在主题上的概率分布和5)所得该缺陷报告在每一主题上的概率分布,计算每一开发人员参与修复该缺陷报告的概率;7)缺陷跟踪系统根据6)所得的所有开发人员参与修复缺陷报告的概率,对开发人员进行排序,选取排名靠前的S个开发人员做为该未分配修复推荐人缺陷报告的修复人对其进行修复。进一步的,所述开发人员指参与评论历史缺陷报告的开发人员。进一步的,历史缺陷报告的文本内容为历史缺陷报告的主体描述及其标题。进一步的,对缺陷报告的文本内容进行自然语言处理,包括英文分词、去除停用词及词干还原。进一步的,采用 LDA主题建模的方法,对缺陷报告进行主题建模,并得到一定数目的主题集合T = IT1, T2,...,TJ以及历史缺陷报告在这些主题上的概率分布,N为主题的数目。进一步的,步骤4)对所有开发人员,缺陷跟踪系统计算他们在这些主题上的概率分布的方法为:首先将每一个开发人员所参与修复的所有缺陷报告表示为一个集合:
BR— = {bii,br2,…,bra}, m为第i个开发人员参与修复的所有缺陷报告的数目,即
a = |/说^.卜集合中的每一个缺陷报告可以表示为一个所有主题上的概率分布的列表:brk
=(Pu,Pu,...pk,N),其中,pk, t为第k个缺陷报告在第t个主题上的概率分布,N为主题的数目,I彡k彡m ;进一步的,提取未分配修复推荐人的缺陷报告的文本内容,与步骤2) —致,对其进行自然语言处理,用步骤3)所得的主题模型计算该缺陷报告在所有主题上的概率分布,并将其表示为一个概率分布列表Pti = (Pq.pPqd,...pq,N),其中pq,t表示该编号为q的缺陷报告属于第t个主题的概率,I ^ t ^ N0进一步的,计算所有开发人员参与修复该缺陷报告的概率的方法为:对于每一个开发人员,每一个主题,首先计算该开发人员参与修复该主题的缺陷报告的概率
Σ h
)HH....=^^它表示第i个开发人员参与修复第t个主题的缺陷报告的概率,
2, 7, Pk j
;1 i>r.K.1W,
其中N为主题的数目,Im ;最后,计算该开发人员参与修复该缺陷报告的概率
pi,q = Σ puv) X P,J -1 彡 t 彡 N。
i进一步的,根据第6)步计算所得的开发人员修复该缺陷报告的概率Ρ“,对开发人员进行降序排序,选取排名靠前的前S名开发人员做为该未分配修复推荐人缺陷报告的修复人对其进行修复,其中I < i < H,H为所有开发人员的数目。下面说明本发明的核心内容。
本发明方法的整体框架如附图
所示。具体地,一种基于主题模型的软件缺陷修复分派方法,其步骤为:1.构建历史数据集合此阶段目的是为提取历史缺陷报告的数据,并构建历史缺陷报告集合和开发人员集合。。首先需要提取历史缺陷报告数据,包括每个缺陷报告的主体描述部分、标题和参与其讨论的开发人员。其次需要对每个缺陷报告的文本内容进行文本预处理,包括英文分词、去除停用词和词干提取。最后为经过文本预处理后的历史缺陷报告构建缺陷报告集合和开发人员集合。具体的步骤如下:(I)英文分词对于英文缺陷报告,分词较为简单,采用空格和标点符号对句子进行分割,如果是对于中文描述的缺陷报告,使用中文分词软件;(2)去除停用词米用停用词表去除停用词(3)词干提取采用Porter算法提取词干,获得能代表文档的标引词集合。(4)构建历史缺陷报告集合将所有经过文本预处理之后的缺陷报告构成一个集合BR = Ibr1, br2,...,brM},
所有开发人员构成一个集合i =皿^,J,其中M为所有历史缺陷报告的
数目,H为所有开发人员的数目,bri = {text,, DJ,BRdevj为第j个开发人员参与讨论的历史缺陷报告集合,I≤ j ≤ H, texti为缺陷报告bn经过预处理之后的文本内容,Di为参与讨论的开发人员,没/ C I),, c浦2.主题建模在构建了历史数据集合之后,首先需要对历史缺陷报告进行主题建模,得到一定数目的主题以及所有历史缺陷报告在这些主题上的概率分布。而后需要计算出所有开发人员参与讨论的主题集合。具体的步骤如下:(I)对历史缺陷报告进行主题建模对于历史缺陷报告集合BR中的每一个缺陷报告bri;通过LDA (请参考:D.M.Blei,A.Y.Ng, and Μ.1.Jordan.Latent dirichlet allocation.J.Mach.Learn.Res.,3:993-1022,Mar.2003.)等主题建模方法,对其进行主题建模,得到一定数目的主题集合T =ITpT2,...,TN}及其在这些主题上的概率分布brk = {ρ^,ρ^,...,pk,N},其中N为主题的数目,Tt为某一主题,K t < N,是一个由属于它的缺陷报告组成的缺陷报告集合,i/ [ B,Pk, t为缺陷报告brk属于主题Tt的概率。(2)计算开发人员参与讨论属于某一主题的缺陷报告的概率每个开发人员参与讨论修复的所有缺陷报告都以某一概率属于某个主题,通过主题建模过程中得到的缺陷报告在主题上的分布,可以计算开发人员参与讨论属于某一主题 的缺陷报告的概率
权利要求
1.一种缺陷跟踪系统的软件缺陷报告自动分发方法,其步骤为: 1)缺陷跟踪系统从软件缺陷报告数据库中提取已修复的历史缺陷报告,及所提取历史缺陷报告的主体描述部分、历史缺陷报告的标题、及参与讨论的相关开发人员; 2)缺陷跟踪系统对历史缺陷报告的文本内容进行自然语言处理,得到每一历史缺陷报告的标引词集合; 3)缺陷跟踪系统根据历史缺陷报告的标引词集合对历史缺陷报告进行主题建模,得到设定数目的主题以及每一历史缺陷报告在这些主题上的概率分布; 4)缺陷跟踪系统计算每一开发人员在3)所得每一主题上的概率分布; 5)缺陷跟踪系统将一未分配修复推荐人的缺陷报告进行自然语言处理,得到该缺陷报告的标引词集合并计算其在3)所得每一主题上的概率分布; 6)缺陷跟踪系统根据4)所得的所有开发人员在主题上的概率分布和5)所计算该缺陷报告在每一主题上的概率分布,计算每一开发人员参与修复该缺陷报告的概率; 7)缺陷跟踪系统根据6)所得的所有开发人员参与修复缺陷报告的概率,对开发人员进行排序,将该缺陷报告分发给排名靠前的S个开发人员。
2.如权利要求1所述的方法,其特征在于所述自然语言处理包括英文分词、去除停用词及词干还原。
3.如权利要求1所述的方法,其特征在于采用LDA主题建模的方法,对缺陷报告进行主题建模,并得到一个包含一 定数目的主题集合T = IT1, T2,...,TN}以及历史缺陷报告在这些主题上的概率分布,N为主题的数目。
4.如权利要求3所述的方法,其特征在于计算每一开发人员在3)所得每一主题上的概率分布的方法为:首先将每一个开发人员所参与的所有缺陷报告表示为一个集合:_“l,m为第i个开发人员参与的所有缺陷报告的数目,集合中的每一个缺陷报告brm表不为一个所有主题上的概率分布的列表:brk = (pka Pk,2 ...Pk,t...Pk,N),其中,Pk, t为第k个缺陷报告在第t个主题上的概率,I彡t彡N,I彡k彡m。
5.如权利要求4所述的方法,其特征在于计算每一开发人员参与修复该缺陷报告的概率的方法为:首先计算每一开发人员参与修复每一主题的缺陷报告的概率Σ Pk.,— I, 表示第i个开发人员参与修复第t个主题的缺陷报告的概/ -1 bvHH..,.Pi f率;然后计算每一开发人员参与修复该缺陷报告的概率= Σ C X Am ^Pq, t表示该 = \缺陷报告q属于第t个主题的概率,Pi,,为开发人员i参与修复该缺陷报告q的概率。
6.如权利要求1或2所述的方法,其特征在于采用Porter算法提取词干,获得能代表缺陷报告文档的标引词集合。
全文摘要
本发明公开了一种缺陷跟踪系统的软件缺陷报告自动分发方法。本方法为1)从软件缺陷报告数据库中提取已修复的历史缺陷报告;2)对历史缺陷报告的文本内容进行自然语言处理,得到每一历史缺陷报告的标引词集合;3)对历史缺陷报告进行主题建模,得到一定数目的主题以及所有历史缺陷报告在这些主题上的概率分布;4)对所有开发人员,计算他们参与讨论的主题的概率分布;5)将未分配修复推荐人的缺陷报告进行自然语言处理,并计算其在这些主题上的概率分布;6)根据4)所得的所有开发人员在主题上的概率分布,计算所有开发人员参与修复该缺陷报告的概率,将该缺陷报告分发给排名靠前的S个开发人员。本发明大大提高了缺陷报告的修复效率。
文档编号G06F11/36GK103246603SQ20131009273
公开日2013年8月14日 申请日期2013年3月21日 优先权日2013年3月21日
发明者张文, 谢锡浩, 杨叶, 王青 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1