The invention discloses a method for locating defects defects report text based on topic analysis, in order to solve the defects of the report will bring serious burden to the developer, the text analysis of the defect report has to solve the defect tracking management system, obtain the relationship between the defect report and fix the code, and the analysis of defect report did not solve this. Provide defect report new possible to repair the source code file list for developers, so as to improve the maintenance efficiency of software project. We in the supervised text topic model Labeled LDA (LLDA) is proposed on the basis of substring label generation improved model Label to SubStrings (L2SS). Experiments on Eclipse data sets of open source projects show that the defect localization method based on L2SS model has higher prediction effect than traditional text topic model.
【技術實現步驟摘要】
一種基于缺陷報告文本主題分析的缺陷定位方法
本專利技術涉及一種基于缺陷報告文本主題分析的缺陷定位方法,利用已解決缺陷報告中的文本內容,實現未解決缺陷報告缺陷源代碼文件的定位。在主題分析技術的基礎上,利用標簽詞語子串頻繁出現在相應缺陷報告的特性,添加了詞語生成的途徑,有效提高了基于缺陷報告缺陷源代碼文件定位的準確度。
技術介紹
在大型開源軟件開發過程中,廣泛使用Bugzilla,Jira,GNATS,trac等缺陷跟蹤管理系統來跟蹤管理項目的缺陷。以Eclipse項目中的缺陷跟蹤管理系統Bugzilla為例,在對整個項目進行開發、測試和維護的過程中,當軟件開發參與者發現了項目中的Bug時,可以登陸BugZilla系統提交一份缺陷報告。在BugZilla中,每個缺陷報告都有Status、Resolution這兩個關鍵屬性表示其狀態。其中,Status表示bug的一般狀態,下面是其取值和各個取值的說明以及轉換的可能性。Unconfirmed(未證實)表明bug是最近加入到數據庫,沒有人正式這個bug的存在。擁有“確定/取消Bug"的用戶可以對轉變bug的狀態為:1.確認這個bug,改變他的狀態為新(NEW)2.解決這個bug,標志為已解決(RESOLVED)New(新提交的)這個bug已經分發給某位開發人員處理。這個狀態的bug可以轉變為以下狀態:1.接受該bug,狀態轉變為指派(ASSIGNED)2.指派給別的開發人員,狀態維持為新(NEW)被解決,狀態轉變為被解決(RESOLVED)Assigned(已經指派)這個bug尚未解決,但已經被指派給正確的人進行解 ...
【技術保護點】
一種基于缺陷報告文本主題分析的缺陷定位方法,其特征在于:在Labeled?LDA的基礎上提出了標簽生成子串的文本主題模型L2SS,同時基于CVB0方法給出了L2SS模型的參數估計,最終根據模型參數來得出新的缺陷文本對需要修復文件的疑似度排序,此方法的主要內容包括:1)基于標簽生成子串的文本主題模型?L2SS;2)基于CVB0的L2SS模型求解及缺陷代碼預測方法;基于標簽生成子串的文本主題模型?L2SS:將缺陷源代碼文件對應的模塊名作為Labeled?LDA的標簽,直接對應LDA模型中的主題;缺陷報告d可以表示成一個詞袋
【技術特征摘要】
1.一種基于缺陷報告文本主題分析的缺陷定位方法,其特征在于:在Labeled-LDA的基礎上提出了標簽生成子串的文本主題模型L2SS,同時基于CVB0方法給出了L2SS模型的參數估計,最終根據模型參數來得出新的缺陷文本對需要修復文件的疑似度排序,此方法的主要內容包括:1)基于標簽生成子串的文本主題模型-L2SS;2)基于CVB0的L2SS模型求解及缺陷代碼預測方法;基于標簽生成子串的文本主題模型-L2SS:將缺陷源代碼文件對應的模塊名作為Labeled-LDA的標簽,直接對應LDA模型中的主題;缺陷報告d可以表示成一個詞袋其中wi表示為文檔中第i個單詞;所有缺陷報告的所有詞語構成詞匯集V;所有缺陷報告文本主題用對應的標簽l表示;每個主題l都存在一個先驗分布為貝塔分布的二項分布βl~Beta(·|δ),每個主題都有兩種途徑生成詞語,由二項分布βl抽樣選取出來分開關變量κ決定最終選取的生成途徑;第一種途徑是從詞匯集V中根據分布從V中抽取詞語,是先驗分布為狄利克雷分布的多項分布;第二種途徑是從主題l對應標簽名的子串集合Sl中根據分布從Sl中抽取詞語,是先驗分布為狄利克雷分布的多項分布;κ有兩種值:1和2,當κ=1時,表示主題l從詞匯集V中抽取詞語,當κ=2時,表示主題l從標簽子串集合Sl中抽取詞語;每篇缺陷報告d對于所有主題l還有一個先驗分布為貝塔分布的二項分布是從抽樣出開關變量,當時表示文檔d不選取此主題,當時表示文檔d選取此主題。缺陷報告d在所有的主題中得到先驗分布為狄利克雷分布的多項分布θd。L2SS模型的缺陷報告生成過程如下:對于每一個主題l1)取樣生成主題l上的開關分布βl=(βl1,βl2)T~Beta(·|δ)2)取樣生成主題l上對于所有詞語的分布3)根據主題l選擇對應標簽子串集合Sl得到l對應的子串詞語的先驗分布ηl4)取樣生成模塊標簽l上對于l子串詞語的分布對于每篇缺陷報告d對于每個主題l1)取樣生成文檔d對應的模塊標簽選擇分布2)根據標簽選擇得到文檔d對應的主題分布的先驗分布αd=Ld×α3)取樣生成文檔d對應的主題分布對于缺陷報告中每個位置i1)取樣生成主題zi∈Ld~Mult(·|θd)2)取樣生成主題zi的開關變量κ∈{1,2}~Bernoulli(·|βl)ifκ=1do取樣生成單詞ifκ=2do取樣生成單詞其中Beta表示貝塔分布,Mult表示多項分布,Bernouli表示二項分布,Dir表示狄利克雷分布;依據此上過程,可以得到L2SS的概率圖模型,同時得到詞和主題生成的聯合概率:2.如權利要求1所述的基于缺陷報告文本主題分析的缺陷定位方法,其特征在于,基于CVB0的L2SS模型求解及缺陷報告主題推斷方法:LDA模型參數推斷常采用吉布斯采樣的方法,即用p(zi=l|z-i,w;α,η,δ)來對各個詞語的主題進行采樣,不斷迭代直至收斂;而吉布斯采樣收斂速度較慢,采用CVB0方法進行參數推斷;在LLDA模型中,CVB0方法為文檔中的每個位置的詞語賦予一個勢函數向量l代表標簽l,d代表文檔的編號,i代表詞在文檔中的位置;γl|d,i的值就等于p(zi=l|z-i,w;α,η,δ),對于文檔d中沒有出現的標簽l,就將γl|d,i的值定為0在L2SS模型中,因為詞可能有兩種生成方式,因此L2SS模型中,可由標簽子串生成的詞語的分成兩個勢...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。