摘" 要: 為了快速而準(zhǔn)確地識(shí)別其中的BUG報(bào)告將有助于開(kāi)發(fā)人員對(duì)移動(dòng)應(yīng)用進(jìn)行修復(fù),通過(guò)調(diào)查移動(dòng)應(yīng)用運(yùn)行的不同階段,以用戶(hù)反饋和問(wèn)題報(bào)告兩個(gè)視角為切入點(diǎn),提出基于深度學(xué)習(xí)的移動(dòng)應(yīng)用BUG報(bào)告自動(dòng)識(shí)別方法,即首先使用Word2Vec獲取詞向量,其次,構(gòu)建Bi-LSTM網(wǎng)絡(luò)獲取高級(jí)文本特征,并通過(guò)注意力機(jī)制分配權(quán)重以捕獲句子中對(duì)BUG報(bào)告識(shí)別起到關(guān)鍵作用的信息,最后獲取問(wèn)題報(bào)告的BUG標(biāo)簽.實(shí)驗(yàn)結(jié)果表明所提方法在準(zhǔn)確率、召回率、F1-score和查準(zhǔn)率上均有提高,有助于開(kāi)發(fā)人員準(zhǔn)確識(shí)別移動(dòng)應(yīng)用的BUG報(bào)告,提高BUG修復(fù)效率.
關(guān)鍵詞: 移動(dòng)應(yīng)用;軟件維護(hù);問(wèn)題報(bào)告;用戶(hù)反饋;BUG標(biāo)簽
中圖分類(lèi)號(hào):TP311""" 文獻(xiàn)標(biāo)志碼:A""""" 文章編號(hào):1673-4807(2024)01-068-07
DOI:10.20061/j.issn.1673-4807.2024.01.011
收稿日期: 2021-12-28""" 修回日期: 2021-04-29
基金項(xiàng)目: 國(guó)家自然科學(xué)基金項(xiàng)目(62176107)
作者簡(jiǎn)介: 彭春雨(1996—),女,碩士研究生
*通信作者: 鄭尚(1983—),博士,副教授,研究方向?yàn)橹悄芑浖こ? E-mail:szheng@just.edu.cn
引文格式: 彭春雨,鄭尚,鄒海濤,等.雙視角數(shù)據(jù)下移動(dòng)應(yīng)用BUG報(bào)告識(shí)別方法研究[J].江蘇科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2024,38(1):68-74.DOI:10.20061/j.issn.1673-4807.2024.01.011.
Research on mobile APP BUG report recognitionmethod by dual-perspective data
PENG Chunyu,ZHENG Shang*,ZHOU Haitao,YU Hualong,GAO Shang
(School of Computer, Jiangsu University of Science and Technology, Zhenjiang 212100, China)
Abstract:Identifying the BUG reports quickly and accurately will help developers to repair mobile applications. Therefore, we propose an automatic identification method of mobile application bug reports based on deep learning by investigating the different stages of mobile application operation and taking user reviews and issue reports as the starting points. Firstly, Word2Vec is used to get word vectors; secondly, a Bi-LSTM network is constructed to obtain high-level text features. Furthermore, we assign the weight through the attention mechanism to capture the information in the sentence that plays a key role in the identification of the bug reports. Finally we get the bug label of the issue report. Our method is better than the methods proposed in previous works in terms of rate, and this study expounds the impact of datasets from different perspectives on mobile application BUG report identification, which helps developers to identify mobile application BUG reports accurately and improve the efficiency of BUG repair.
Key words:mobile application, software maintenance, issue report, user review, BUG label
隨著移動(dòng)終端的大范圍普及,涌現(xiàn)了數(shù)以萬(wàn)計(jì)的移動(dòng)應(yīng)用,其維護(hù)顯得尤為重要[1].在移動(dòng)應(yīng)用的維護(hù)過(guò)程中,BUG修復(fù)是重要任務(wù)之一,通過(guò)調(diào)查發(fā)現(xiàn)問(wèn)題報(bào)告與軟件維護(hù)有著緊密的聯(lián)系.文獻(xiàn)[2]通過(guò)分析三百多萬(wàn)個(gè)GitHub上的開(kāi)源項(xiàng)目,發(fā)現(xiàn)問(wèn)題報(bào)告可以幫助開(kāi)發(fā)人員解決現(xiàn)存問(wèn)題,其中,BUG報(bào)告所描述的BUG應(yīng)該及時(shí)解決,以保證軟件的質(zhì)量[3].文獻(xiàn)[4]提出基于N-gram的自動(dòng)分類(lèi)模型以識(shí)別BUG報(bào)告.
除問(wèn)題報(bào)告之外,研究人員認(rèn)為用戶(hù)反饋中包含重要信息[5],其中與BUG相關(guān)的描述可用作移動(dòng)應(yīng)用問(wèn)題報(bào)告的輔助信息.文獻(xiàn)[6]使用包含BUG信息的用戶(hù)反饋來(lái)輔助開(kāi)發(fā)人員進(jìn)行移動(dòng)應(yīng)用維護(hù).文獻(xiàn)[7]利用數(shù)據(jù)挖掘技術(shù)分析用戶(hù)反饋,從而輔助開(kāi)發(fā)人員進(jìn)行軟件維護(hù).
隨著移動(dòng)應(yīng)用的問(wèn)題報(bào)告或用戶(hù)反饋的增多,為了開(kāi)發(fā)人員能夠快速準(zhǔn)確地識(shí)別出BUG報(bào)告,文獻(xiàn)[8]采用TF·IDF, Word2Vec和MCG計(jì)算問(wèn)題報(bào)告和BUG報(bào)告之間的相似度,進(jìn)而識(shí)別未標(biāo)記問(wèn)題報(bào)告中的BUG報(bào)告.文獻(xiàn)[9]設(shè)計(jì)了一種混合相似度用于計(jì)算未標(biāo)記報(bào)告與BUG文本的相似性,根據(jù)經(jīng)驗(yàn)閾值完成對(duì)未處理問(wèn)題報(bào)告的標(biāo)注工作.文獻(xiàn)[10]設(shè)計(jì)了CaPBUG框架,該框架使用自然語(yǔ)言處理和機(jī)器學(xué)習(xí)算法,用以識(shí)別BUG報(bào)告及優(yōu)先級(jí)排序.
文中以移動(dòng)應(yīng)用的用戶(hù)反饋和問(wèn)題報(bào)告兩個(gè)視角為切入點(diǎn),提出基于深度學(xué)習(xí)的BUG報(bào)告識(shí)別方法,即首先利用Word2Vec中的Skip-gram模型進(jìn)行詞向量表示,其次融合Bi-LSTM網(wǎng)絡(luò)和注意力機(jī)制構(gòu)建BUG報(bào)告識(shí)別模型.此模型不依賴(lài)傳統(tǒng)文本挖掘方法,避免頻繁的相似度計(jì)算,提高了識(shí)別的準(zhǔn)確度,降低了時(shí)間消耗.通過(guò)開(kāi)源數(shù)據(jù)集驗(yàn)證,在準(zhǔn)確率(accuracy)、召回率(recall)、F1-score、查準(zhǔn)率(precision)和時(shí)長(zhǎng)方面均有較優(yōu)表現(xiàn).同時(shí),對(duì)于移動(dòng)應(yīng)用的BUG報(bào)告識(shí)別,文中分析了問(wèn)題報(bào)告和用戶(hù)反饋的影響并給出適用性意見(jiàn),即在移動(dòng)應(yīng)用運(yùn)行不同階段分析的重點(diǎn),這將有助于移動(dòng)應(yīng)用的效能得到提高,并促進(jìn)移動(dòng)應(yīng)用開(kāi)發(fā)領(lǐng)域的技術(shù)迭代.
1" 基礎(chǔ)知識(shí)
1.1" Word2Vec
Word2Vec算法[11]降低了詞向量維度,避免了維數(shù)災(zāi)難.Word2Vec包含CBOW和Skip-Gram兩種模型.鑒于問(wèn)題報(bào)告和用戶(hù)反饋的撰寫(xiě)方式不同,文本使用Skip-Gram模型進(jìn)行詞向量處理.
1.2" Bi-LSTM
傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)在處理長(zhǎng)序列模型時(shí)存在長(zhǎng)期依賴(lài)問(wèn)題,長(zhǎng)短期記憶網(wǎng)絡(luò)[12](long short-term memory,LSTM)通過(guò)改進(jìn)神經(jīng)元的內(nèi)部結(jié)構(gòu),處理長(zhǎng)序列時(shí)不會(huì)再出現(xiàn)梯度消失的情況.然而單向網(wǎng)絡(luò)只能捕獲前文信息,忽略了后文的信息.因此雙向網(wǎng)絡(luò)結(jié)構(gòu)[13-14](Bi-directional network)通過(guò)構(gòu)建兩個(gè)獨(dú)立且相同的神經(jīng)網(wǎng)絡(luò)來(lái)學(xué)習(xí)目標(biāo)詞匯與前后文的關(guān)系.文中使用雙向LSTM[15](Bi-directional LSTM,Bi-LSTM)作為實(shí)現(xiàn)BUG報(bào)告識(shí)別任務(wù)的模型.
1.3" 注意力機(jī)制
注意力機(jī)制(attention mechanism)源于對(duì)人類(lèi)視覺(jué)的研究,使得神經(jīng)網(wǎng)絡(luò)具備挑選重要特征的能力.帶有注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)具備直觀性、通用性和可解釋性.文中考慮Bi-LSTM模塊后加入注意力層[16],使得模型選擇性地關(guān)注序列中具有重要語(yǔ)義信息的權(quán)重向量,進(jìn)一步提高模型的識(shí)別精度.
2" 雙視角數(shù)據(jù)下移動(dòng)應(yīng)用的BUG報(bào)告識(shí)別方法
文中以用戶(hù)反饋和問(wèn)題報(bào)告兩個(gè)視角為切入點(diǎn),提出基于Bi-LSTM與注意力機(jī)制相融合的方法,框架圖如圖1.
2.1" 模型構(gòu)建
2.1.1" 數(shù)據(jù)預(yù)處理
(1) 文本清洗:將用戶(hù)反饋與問(wèn)題報(bào)告中含有的對(duì)識(shí)別沒(méi)有重要的作用的文本內(nèi)容,通過(guò)清洗將其剔除.
(2) 令牌化:將用戶(hù)反饋與問(wèn)題報(bào)告根據(jù)空格符進(jìn)行文本切割,并將所有英語(yǔ)單詞小寫(xiě)化.
(3) 詞根化:將單詞的變體轉(zhuǎn)為其詞干,文中采用Stemmer2工具完成這項(xiàng)工作.
(4) 去除停用詞:去除了常見(jiàn)的“the”“is”等停用詞,同時(shí)保留了對(duì)語(yǔ)義信息有意義的單詞.文中將長(zhǎng)度小于2和大于20的單詞也視為停用詞.
2.1.2" 模型訓(xùn)練
如圖2,識(shí)別模型網(wǎng)絡(luò)結(jié)構(gòu)包含5層:輸入層、Embedding層、Bi-LSTM層、注意力層和輸出層.
(1) 輸入層
將預(yù)處理后的文本輸入到Embedding層.
(2) Embedding層
首先接收輸入層的文本,利用Skip-Gram模型為每個(gè)單詞生成維度為M的詞向量.將截取每個(gè)文本的前N個(gè)單詞作為輸入.當(dāng)文本的長(zhǎng)度低于N,則使用“空單詞”填充至N.文中使用掩碼在模型訓(xùn)練前阻止“空單詞”進(jìn)入模型.
(3) Bi-LSTM層
LSTM單元主要由輸入門(mén)it(內(nèi)含權(quán)重參數(shù)Wxi,Whi,Wci,bi),遺忘門(mén)ft(內(nèi)含權(quán)重參數(shù)Wxf,Whf,Wcf,bf),輸出門(mén)ot(內(nèi)含權(quán)重參數(shù)Wxo,Who,Wco,bo)與數(shù)據(jù)組合gt(內(nèi)含權(quán)重參數(shù)Wxc,Whc,Wcc,bc)組成.設(shè)當(dāng)前神經(jīng)元的單元狀態(tài)、接收輸入與單元輸出分別為ct,xt,ht,上一單元的單元狀態(tài)與單元輸出分別為ct-1,ht-1,其工作流程為:
it=σ(Wxi·xt+Whi·ht-1+Wci·ct-1+bi)(1)
ft=σ(Wxf·xt+Whf·ht-1+Wcf·ct-1+bf)(2)
gt=tanh(Wxc·xt+Whc·ht-1+Wcc·ct-1+bc)(3)
ct=itgt+ftct-1(4)
ot=σ(Wxo·xt+Who·ht-1+Wco·ct-1+bo)(5)
ht=ottanh(ct)(6)
式中:σ為激活函數(shù)sigmoid.設(shè)雙向網(wǎng)絡(luò)的輸出分別為h→i與h←i,則Bi-LSTM網(wǎng)絡(luò)層的最終輸出為兩個(gè)向量拼接:
hi=[h→i,h←i](7)
(4) 注意力層
該層接收Bi-LSTM層的輸出,生成特征權(quán)重并與特征進(jìn)行加權(quán)求和后,輸出句子特征.設(shè)Bi-LSTM層的輸出為H=[h1,h2,...,hn],注意力權(quán)重參數(shù)為w,注意力層通過(guò)以下流程生成句特征hsen:
M=tanh(H)(8)
α=exp(wTM)∑exp(wTM)(9)
hsen=tanh(HαT)(10)
通過(guò)計(jì)算注意力概率分布,圖3得到對(duì)移動(dòng)應(yīng)用BUG識(shí)別有影響的關(guān)鍵性詞匯,不僅提高識(shí)別準(zhǔn)確率,而且能夠給予開(kāi)發(fā)人員更直觀的語(yǔ)義描述,同時(shí)有助于拓展相似的文本分析工作.
(5) 輸出層
輸出層由一個(gè)神經(jīng)元組成,接收注意力層的句特征,輸出當(dāng)此判定結(jié)果:如果輸出值y大于0.5,則判定其為BUG報(bào)告,反之則不是.該單元的激活函數(shù)為sigmoid,公式為:
σ(hsen)=11+exp(-h(huán)sen)(11)
為了減少模型出現(xiàn)過(guò)擬合的現(xiàn)象,引入Dropout算法保證模型的泛化能力.網(wǎng)絡(luò)的損失函數(shù)為二分類(lèi)交叉熵?fù)p失函數(shù)為:
Loss=-∑ni(yi×log(y^i)+(1-yi)×log(1-y^i))(12)
式中:yi為樣本的真實(shí)標(biāo)簽;y^i為分類(lèi)器的輸出標(biāo)簽.
最后,訓(xùn)練上述Bi-LSTM和注意力機(jī)制模型的參數(shù),當(dāng)達(dá)到最大迭代次數(shù)得到分類(lèi)器模型.為了提高模型性能,設(shè)置了Adam優(yōu)化算法,該算法不同于傳統(tǒng)的隨機(jī)梯度下降優(yōu)化算法,能夠?yàn)椴煌膮?shù)提供自適應(yīng)學(xué)習(xí)率,保證網(wǎng)絡(luò)的穩(wěn)定性.
2.2" 模型驗(yàn)證
此階段將預(yù)處理后的待預(yù)測(cè)問(wèn)題報(bào)告通過(guò)Embedding層輸入到訓(xùn)練好的分類(lèi)器中得到其預(yù)測(cè)標(biāo)簽.具體的步驟描述如表1.
3" 實(shí)驗(yàn)設(shè)置
實(shí)驗(yàn)在Microsoft Windows 10的四核CPU(i5-7200U CPU @ 2.50 GHz)、8 GB內(nèi)存和512 GB硬盤(pán)的PC上實(shí)現(xiàn).
3.1" 數(shù)據(jù)集
數(shù)據(jù)集來(lái)自于文獻(xiàn)[8-9],其具體描述如表2.
3.2" 評(píng)價(jià)指標(biāo)
本質(zhì)上,移動(dòng)應(yīng)用的BUG報(bào)告識(shí)別是一個(gè)文本二分類(lèi)的任務(wù),將BUG報(bào)告記為正例,非BUG報(bào)告標(biāo)記為反例.因此其結(jié)果有4種情況:真正例(true positive,TP)、假正例(1 positive,F(xiàn)P)、真反例(true negative, TN)和假反例(1 negative,F(xiàn)N).
對(duì)于分類(lèi)任務(wù)而言,準(zhǔn)確率(accuracy)可以表示出模型整體正確預(yù)測(cè)的正確率,查準(zhǔn)率(precision)能夠顯示出BUG報(bào)告的準(zhǔn)確率,召回率(recall)能夠顯示出BUG報(bào)告被識(shí)別出來(lái)的覆蓋率.F1-score本質(zhì)上是precision與recall的調(diào)和平均數(shù).指標(biāo)的具體定義如下:
accuracy=TP+TNTP+TN+FP+FN(13)
F1-score=2×precision×recallprecision+recall(14)
precision=TPTP+FP(15)
recall=TPTP+FN(16)
3.3" 實(shí)驗(yàn)參數(shù)設(shè)置
文中參數(shù)的設(shè)定為:Dropout丟棄概率P=0.5;Adam算法學(xué)習(xí)率η=0.000 1;批量大小batch size=32;輸入序列長(zhǎng)度Nreview=110,Nreport=180;詞向量長(zhǎng)度Wreview=Wreport=10.
4" 實(shí)驗(yàn)結(jié)果及分析
4.1" 實(shí)驗(yàn)結(jié)果
分別使用全用戶(hù)反饋與問(wèn)題報(bào)告作為訓(xùn)練數(shù)據(jù)集,即使用用戶(hù)反饋數(shù)據(jù)集訓(xùn)練時(shí),則問(wèn)題報(bào)告作為測(cè)試集;而使用問(wèn)題報(bào)告訓(xùn)練時(shí),隨機(jī)選取90%的問(wèn)題報(bào)告作為訓(xùn)練集,10%作為測(cè)試集,且由于選取具有隨機(jī)性,最終結(jié)果為運(yùn)行20次的平均結(jié)果.為了驗(yàn)證方法的性能,文中選擇了BUG報(bào)告識(shí)別的多種方法進(jìn)行對(duì)比.
(1) 混合相似度[9]:首先分別計(jì)算待預(yù)測(cè)問(wèn)題報(bào)告與歷史問(wèn)題報(bào)告和用戶(hù)反饋之間文本相似度,然后將兩種相似度相結(jié)合,通過(guò)事先設(shè)置好的閾值進(jìn)行標(biāo)記.
(2) N-gram IDF based線性回歸[4]:將文本劃分為n元的詞組,使用逆文檔頻率去除低頻詞組,進(jìn)行特征挑選后構(gòu)建線性回歸分類(lèi)器.
(3) N-gram IDF based隨機(jī)森林[4]:應(yīng)用上述方法后構(gòu)建隨機(jī)森林分類(lèi)器.
(4) N-gram IDF based樸素貝葉斯[4]:應(yīng)用上述方法后構(gòu)建貝葉斯分類(lèi)器.
(5) 線性回歸[17]:利用回歸分析,構(gòu)建分類(lèi)器.
(6) 隨機(jī)森林:利用多棵決策樹(shù)構(gòu)建分類(lèi)器.
(7) 樸素貝葉斯[18]:基于貝葉斯原理構(gòu)建分類(lèi)器.
(8) CaPBUG[10]:利用TF-IDF進(jìn)行特征提取,并使用SMOTE對(duì)問(wèn)題報(bào)告進(jìn)行過(guò)采樣后,構(gòu)建隨機(jī)森林分類(lèi)器.
(9) Transformer:使用Transformer對(duì)問(wèn)題報(bào)告進(jìn)行分類(lèi).
(10) CNN:使用基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的模型來(lái)預(yù)測(cè)問(wèn)題報(bào)告的標(biāo)簽.
(11) GRU:通過(guò)門(mén)控神經(jīng)單元(GRU)識(shí)別問(wèn)題報(bào)告中的BUG信息.
由表3結(jié)果可知,文中在用戶(hù)反饋?zhàn)鳛橛?xùn)練集時(shí),accuracy略低于CaPBUG,但其他指標(biāo)則優(yōu)于此方法. 而precision略低于N-gram IDF based 線性回歸、隨機(jī)森林、貝葉斯和Transformer,但其他指標(biāo)均有不錯(cuò)的表現(xiàn).綜合4個(gè)指標(biāo),文中方法整體表現(xiàn)較優(yōu). 其次,通過(guò)分析結(jié)果發(fā)現(xiàn),移動(dòng)應(yīng)用問(wèn)題報(bào)告作為訓(xùn)練集的BUG識(shí)別效果更佳.
為進(jìn)一步驗(yàn)證所提方法的可靠性,在手工標(biāo)注的7 174個(gè)問(wèn)題報(bào)告中重復(fù)20次隨機(jī)選取10%問(wèn)題報(bào)告進(jìn)行驗(yàn)證.對(duì)于以上未標(biāo)記問(wèn)題報(bào)告的標(biāo)簽,借鑒文獻(xiàn)[8-9],實(shí)驗(yàn)結(jié)果如表4,無(wú)論是用戶(hù)反饋還是問(wèn)題報(bào)告作為訓(xùn)練數(shù)據(jù)集,文中方法都具有一定的優(yōu)越性.然而,混合相似度的recall大幅高于文中及其他的方法,其原因在于其設(shè)定的閾值,當(dāng)相似度高于該值便認(rèn)定其為BUG報(bào)告,當(dāng)其設(shè)定較低時(shí),則多被預(yù)測(cè)為為BUG報(bào)告,從而TP與FP的數(shù)量增多,導(dǎo)致recall會(huì)增加,然而其他性能卻相對(duì)降低.此外,Transformer在以問(wèn)題報(bào)告作為訓(xùn)練集的accuracy與precision略高于文中方法,原因在于Transformer完全基于自注意力機(jī)制,對(duì)于問(wèn)題報(bào)告詞語(yǔ)間的位置信息會(huì)有一定的丟失.而CaPBUG追求較高precision,導(dǎo)致其他指標(biāo)較低.
4.2" 移動(dòng)應(yīng)用中不同應(yīng)用階段數(shù)據(jù)集的影響
文中探究了融合100%用戶(hù)反饋(review)與10%問(wèn)題報(bào)告(report)的數(shù)據(jù),以及10%、30%、50%、70%、90%問(wèn)題報(bào)告作為訓(xùn)練數(shù)據(jù)集的情況,并給出運(yùn)行20次的平均結(jié)果,如表5.
由表5可知,在移動(dòng)應(yīng)用開(kāi)發(fā)初期,通過(guò)用戶(hù)反饋的數(shù)據(jù)構(gòu)建的模型性能優(yōu)于僅使用少量的帶標(biāo)簽的問(wèn)題報(bào)告;隨著移動(dòng)應(yīng)用問(wèn)題報(bào)告數(shù)量的增加,向訓(xùn)練數(shù)據(jù)中添加少量的問(wèn)題報(bào)告可有效地提升模型的性能,這表明問(wèn)題報(bào)告中包含有不同于用戶(hù)反饋的對(duì)分類(lèi)有效的特征信息;當(dāng)移動(dòng)應(yīng)用的帶標(biāo)簽問(wèn)題報(bào)告數(shù)據(jù)充足時(shí),模型的性能大幅優(yōu)于僅使用用戶(hù)反饋的情況,并且訓(xùn)練使用的問(wèn)題報(bào)告數(shù)據(jù)越多,模型的性能越佳,這表明在帶標(biāo)簽問(wèn)題報(bào)告數(shù)據(jù)充足的情況下,使用問(wèn)題報(bào)告的效果優(yōu)于用戶(hù)反饋的訓(xùn)練結(jié)果.
4.3" 不同網(wǎng)絡(luò)結(jié)構(gòu)下的性能分析
為了驗(yàn)證網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)越性,分別選取了LSTM融合注意力機(jī)制、Bi-LSTM和LSTM進(jìn)行了對(duì)比實(shí)驗(yàn).由圖4的結(jié)果可知,Skip-gram向量模型、Bi-LSTM網(wǎng)絡(luò)和注意力機(jī)制對(duì)于文中網(wǎng)絡(luò)結(jié)構(gòu)的重要性.
4.4" 運(yùn)行時(shí)間對(duì)比分析
如表6為文中方法和其他對(duì)比方法的運(yùn)行時(shí)間.與混合相似度方法相比,文中方法的運(yùn)行時(shí)長(zhǎng)有大幅度降低.相較于N-gram IDF based結(jié)合線性回歸、隨機(jī)森林、樸素貝葉斯、CaPBUG等方法,文中方法的運(yùn)行時(shí)間不占優(yōu)勢(shì),但以運(yùn)行時(shí)間換取了更高的識(shí)別率,且運(yùn)行時(shí)間仍在可接受的范圍內(nèi).
4.5" 參數(shù)討論
4.5.1" 輸入序列長(zhǎng)度
圖5為預(yù)處理后用戶(hù)反饋與問(wèn)題報(bào)告的文本長(zhǎng)度分布.文中設(shè)置了用戶(hù)反饋的輸入序列長(zhǎng)度的范圍為[0,200],問(wèn)題報(bào)告的輸入序列長(zhǎng)度的范圍為[0,300].
由圖6可知,當(dāng)用戶(hù)反饋的長(zhǎng)度在110,F(xiàn)1-score達(dá)到最優(yōu)值,在長(zhǎng)度超過(guò)110之后,其呈現(xiàn)下降的趨勢(shì),因此選擇110作為用戶(hù)反饋單條文本的長(zhǎng)度.同理,問(wèn)題報(bào)告的序列長(zhǎng)度設(shè)置為180.
4.5.2" 詞向量長(zhǎng)度
當(dāng)用戶(hù)反饋和問(wèn)題報(bào)告分別固定了最佳的輸入序列長(zhǎng)度后,仍需對(duì)詞向量的長(zhǎng)度進(jìn)行討論.根據(jù)文獻(xiàn)[19],尋求空間設(shè)置為[5,100].
由圖7針對(duì)兩種視角下的數(shù)據(jù)集,當(dāng)詞向量長(zhǎng)度為10,F(xiàn)1-socre值均達(dá)到最優(yōu).
5" 結(jié)論
以用戶(hù)反饋與問(wèn)題報(bào)告兩個(gè)視角的數(shù)據(jù)集為切入點(diǎn),圍繞移動(dòng)應(yīng)用的BUG報(bào)告識(shí)別展開(kāi)研究,通過(guò)構(gòu)建融合注意力機(jī)制的Bi-LSTM網(wǎng)絡(luò),自動(dòng)識(shí)別問(wèn)題報(bào)告的標(biāo)簽,得出結(jié)論如下:
(1) 在計(jì)算開(kāi)銷(xiāo)方面,文中方法在問(wèn)題報(bào)告和用戶(hù)反饋兩個(gè)數(shù)據(jù)集視角下均有大幅降低,有效降低了計(jì)算開(kāi)銷(xiāo);在識(shí)別效果方面,文中通過(guò)Word2Vec獲取特征的語(yǔ)義信息,同時(shí)通過(guò)注意力機(jī)制捕獲更為關(guān)鍵的特征.文中方法在問(wèn)題報(bào)告和用戶(hù)反饋數(shù)據(jù)集視角下,將F1-score分別提升至76.49%、67.67%,使得BUG報(bào)告識(shí)別更加精準(zhǔn);
(2) 文中通過(guò)分析在問(wèn)題報(bào)告和用戶(hù)反饋兩個(gè)視角下的數(shù)據(jù)集表現(xiàn),明確了移動(dòng)應(yīng)用不同運(yùn)行階段下問(wèn)題報(bào)告和用戶(hù)反饋對(duì)BUG報(bào)告識(shí)別的影響及適用情況:當(dāng)帶標(biāo)簽問(wèn)題報(bào)告數(shù)據(jù)不足時(shí),使用用戶(hù)反饋用于移動(dòng)應(yīng)用BUG報(bào)告識(shí)別;當(dāng)標(biāo)簽數(shù)據(jù)充足時(shí),通過(guò)問(wèn)題報(bào)告訓(xùn)練的模型性能更佳.因此,在移動(dòng)應(yīng)用不同階段下,對(duì)數(shù)據(jù)角度進(jìn)行分析將有助于開(kāi)發(fā)人員更高效地識(shí)別BUG報(bào)告.
參考文獻(xiàn)(References)
[1]" ZHANG Tao, CHEN Jiachi, LUO Xiapu, et al. Bug reports for desktop software and mobile apps in Github:what is the difference? [J]. IEEE Software, 2019, 36(1):63-71.
[2]" CABOT J, IZQIERDO J L C, COSENTINO V, et al. Exploring the use of labels to categorize issues in open-source software projects[C]∥ 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER).Canada:IEEE, 2015:550-554.
[3]" ZAIDI S F A, LEE C G. Learning graph representation of bug report stotriage bugs using graph convolution network[C]∥ 2021 International Conference on Information Networking.Korea: ICOIN, 2021: 504-507.
[4]" TERRDCHANAKUL P, HATA H, PHANNACHIT-TA P, et al. Bug or not? bug report classification using N-Gram IDF[C]∥2017 IEEE International Conference on Software Maintenance and Evolution.China:ICSME ,2017: 534-538.
[5]" 於躍成,谷雨,左華煜,等. 基于用戶(hù)反饋信息可信傳播的社會(huì)推薦方法[J]. 江蘇科技大學(xué)學(xué)報(bào)(自然科學(xué)版), 2021, 35(4):58-65.
[6]" CIURUMELEA A, SCHAUFELBUHL A, PANICHEL-LA S, et al. Analyzing reviews and code of mobile apps for better release planning[C]∥ 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering. Austria :SANER, 2017: 91-102.
[7]" GENC-NAYEBI N, ABRAN A. A Systematic literature review: opinion mining studies from mobile app store user reviews[J]. Journal of Systems amp; Software, 2017, 125:207-219.
[8]" LI Haoming, ZHANG Tao, WANG Ziyuan. Bug or not bug? labeling issue reports via user reviews for mobile apps[C]∥The 30th International Conference on Software Engineering and Knowledge Engineering.USA:SEKE, 2018:59-65.
[9]" ZHANG Tao, LI Haoming, XU Zhou, et al. Labeling issue reports in mobile apps [J]. IET Software, 2019, 13(1):528-542.
[10]" AHMED H A, BAWANY N Z, SHAMSI J A.CaPBug a framework for automatic bug categorization and prioritization using NLP and machine learning algorithms[J]. IEEE Access, 2021, 99:1-1.
[11]" MIKOLOV T, CHEN K, CORRADO G, et al. Efficientestimation of word representations in vector space [J]. Computer Science, 2013,1301:3781.
[12]" DAOUD N, ELAHAN M, ELHENNAWI A. Aerosoloptical depth forecast over global dust belt based on LSTM, CNN-LSTM, CONV-LSTM and FFT algorithms[C]∥ IEEE EUROCON 2021-19th International Conference on Smart Technologies. Ukraine:IEEE, 2021:186-191.
[13]" MOHARM K, ELAHAN M, ELHENNAWI E. Windspeed forecast using LSTM and Bi-LSTM algorithms over gabal El-Zayt wind farm[C]∥ 2020 International Conference on Smart Grids and Energy Systems. Australia: SGES, 2020:922-927.
[14]" WANG Shaokang, CHEN Yihao, MING Hongjun, et al. Improved danmaku emotion analysis and its application based on Bi-LSTM model[J]. IEEE Access, 2020, 99:1-1.
[15]" ZHOU Peng, SHI Wei, TIAN Jun, et al. Attention-based bidirectional long short-term memory networks for relation classification[C]∥Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics. Germany: ACL,2016:207-212.
[16]" HUANG Q, EMAD S, XIA X, et al. Identifying self-admitted technical debt in open source projects using text mining[J]. Empirical Software Engineering, 2018,23(1):418-451.
[17]" MENDOZA R, MARTINEZ J, HIDALGO M C, et al. Estimation of the Pb content in a tailings dam using a linear regression model based on the chargeability and resistivity values of the wastes (La Carolina Mining District, Spain) [J]. Minerals, 2022, 12(1):7.
[18]" 黃城, 徐克輝, 鄭尚,等. 基于交叉過(guò)采樣的軟件自承認(rèn)技術(shù)債識(shí)別方法[J]. 江蘇科技大學(xué)學(xué)報(bào)(自然科學(xué)版), 2020, 34(5):51-56.
[19]" YU Liangjun, GAN Shengfeng, CHEN Yu, et al. Correlation-based weight adjusted naive bayes[C]∥ 2018 IEEE 30th International Conference on Tools with Artificial Intelligence. Greece:ICTAI, 2020: 825-831.
(責(zé)任編輯:曹莉)