国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

軟件測試用例標(biāo)簽的自動化生成

2019-05-23 10:44周展鵬
電腦知識與技術(shù) 2019年8期
關(guān)鍵詞:自然語言處理機(jī)器學(xué)習(xí)模型

周展鵬

摘要:測試用例的標(biāo)簽自動化生成涉及數(shù)據(jù)內(nèi)容復(fù)雜、多標(biāo)簽分類等問題,本文研究了對測試用例的數(shù)據(jù)處理,利用機(jī)器學(xué)習(xí)算法實現(xiàn)了對測試用例的多個標(biāo)簽的自動生成,并對結(jié)果進(jìn)行了評價。

關(guān)鍵詞:自然語言處理;多標(biāo)簽分類;模型;機(jī)器學(xué)習(xí)

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2019)08-0212-03

1 背景介紹

軟件的測試用例在設(shè)計或穩(wěn)定執(zhí)行后,通常會人為地進(jìn)行分類或者打上標(biāo)簽,以表明該用例的適用領(lǐng)域、范圍、場景。人工標(biāo)簽雖然準(zhǔn)確,但是當(dāng)用例較多時,人工標(biāo)簽效率低下且難以維持較高準(zhǔn)確率。因此,標(biāo)簽自動化生成的核心思想是利用機(jī)器學(xué)習(xí)技術(shù)對已有標(biāo)簽進(jìn)行學(xué)習(xí),已達(dá)到自動生成用例標(biāo)簽的目的。

2 數(shù)據(jù)探索

2.1 數(shù)據(jù)來源

本次項目的數(shù)據(jù)來自某軟件測試管理系統(tǒng)的歷史測試用例數(shù)據(jù), 包含了9個軟件項目共近1200條測試用例數(shù)據(jù)。主要表單有:用例相關(guān)項目基本信息表,帶標(biāo)簽的用例表,數(shù)據(jù)字典表等。項目基本信息表,包含了項目名稱、項目編號、項目需求部門、項目規(guī)模等信息;帶標(biāo)簽的用例表,包含了用例ID、用例名稱、用例描述以及標(biāo)簽等;數(shù)據(jù)字典包含對表中名詞的含義解釋。

2.2 數(shù)據(jù)問題

真實的用例數(shù)據(jù)存在各式各樣的問題,如大量的冗余字段,自然語言文本難以直接訓(xùn)練,數(shù)據(jù)格式不統(tǒng)一等 ,經(jīng)過分析統(tǒng)計,所給數(shù)據(jù)存在以下這些問題:

a.數(shù)據(jù)冗余:例如同樣的測試用例信息會在表格中多次出現(xiàn)。

b.數(shù)據(jù)格式混亂:例如在標(biāo)簽欄中,有些用例沒有標(biāo)簽,會有“無”表示,而有些用例沒有標(biāo)簽則顯示為空白。此外許多用例同時含有若干標(biāo)簽和“無”標(biāo)簽。

c.數(shù)據(jù)缺失:例如在用例描述部分,不少測試用例顯示的是XXXX。

d.數(shù)據(jù)含義模糊:例如在通過ID下面,既有文本描述“通過”,也有含義不明的數(shù)字描述。

e.自然語言描述較多:例如在用例名稱,用例描述欄,包含關(guān)鍵信息,但是用自然語言的方式記錄,難以直接進(jìn)行機(jī)器學(xué)習(xí)。

2.3 數(shù)據(jù)預(yù)處理

本節(jié)主要針對上節(jié)提出的問題進(jìn)行數(shù)據(jù)預(yù)處理。對以下測試用例進(jìn)行了刪除處理:

a.重復(fù)的測試用例信息

b.包含不明意義的數(shù)據(jù)信息的測試用例

c.關(guān)鍵字段信息缺失的測試用例

對于含有文本的關(guān)鍵信息(用例名稱、用例描述),為了便于機(jī)器學(xué)習(xí),先進(jìn)行了分詞處理,以提取出能夠影響標(biāo)簽的信息。經(jīng)分析,文本內(nèi)容不長,上下語義關(guān)聯(lián)性不強(qiáng),每個詞獨立出現(xiàn),與其他詞語依賴性較低,故選擇jieba切詞工具中的詞袋模型進(jìn)行切詞處理。選取了用例描述中的三例進(jìn)行展示:

(1)打開已完成審批單查看流程圖

切詞后:打開,已完成,完成,審批,查看,流程圖

(2)點擊正在執(zhí)行審批單的內(nèi)核會議

切詞后:點擊,正在,執(zhí)行,審批,內(nèi)核,會議

(3)起草人反饋查看附件

切詞后:起草人,反饋,查看,附件

可以看出,對于關(guān)鍵字,如“流程圖”,“執(zhí)行”等可能會影響最終標(biāo)簽結(jié)果的信息提取,jieba的效果還是較為理想的,但是也不難發(fā)現(xiàn)會切出如“已”,“正在”這樣的無效關(guān)鍵字,因此需要對數(shù)據(jù)進(jìn)行降維,具體的數(shù)據(jù)降維處理將會在3.1數(shù)據(jù)降維中說明。

2.4 數(shù)值化

為了更高效地進(jìn)行數(shù)據(jù)處理,需要將測試用例的許多特征進(jìn)行數(shù)值化處理,主要有兩類:

(1)將文本內(nèi)容直接轉(zhuǎn)為數(shù)值:例如,用例級別的高中低,分別用3,2,1表示。測試用例的不同類型,兼容性、接口、界面等,用1,2,3等不同的數(shù)值進(jìn)行替代。

(2)標(biāo)簽的數(shù)值轉(zhuǎn)化:每個測試用例可能會含有多個標(biāo)簽,將多標(biāo)簽轉(zhuǎn)化為單標(biāo)簽是一種較為實用的方法。為了將多標(biāo)簽分類問題轉(zhuǎn)化為單標(biāo)簽分類問題,我們將多標(biāo)簽結(jié)果用二進(jìn)制的方式表示成一個五位(共五個標(biāo)簽)二級制數(shù)的單標(biāo)簽。用“1”表示該標(biāo)簽存在,用“0”表示標(biāo)簽不存在。若是五位都為“0”,則表示該測試用例沒有標(biāo)簽,或為“無”標(biāo)簽。將多標(biāo)簽問題轉(zhuǎn)化為了含有32種(包含“無”標(biāo)簽)可能結(jié)果的單標(biāo)簽問題。具體轉(zhuǎn)化如表1所示。

2.5 評價方法設(shè)計

從兩種角度進(jìn)行評價方式設(shè)計:

1) 基于32種復(fù)合標(biāo)簽評價:以轉(zhuǎn)化成的32種單標(biāo)簽為對象,對模型預(yù)測的用例標(biāo)簽進(jìn)行結(jié)果統(tǒng)計分析。

2) 基于5種標(biāo)簽評價:以人工標(biāo)注的5種標(biāo)簽為對象,對模型預(yù)測的用例標(biāo)簽進(jìn)行結(jié)果統(tǒng)計分析。

計算的指標(biāo)有:

a.真假陰陽性統(tǒng)計: TP表示標(biāo)簽存在,預(yù)測存在;FN表示標(biāo)簽存在,預(yù)測不存在;FP表示標(biāo)簽不存在,預(yù)測存在;TN表示標(biāo)簽不存在,預(yù)測不存在。

b.召回率(敏感性):計算方式為, TP / (TP + FN )。

c.平均召回率:計算方式為, 該測試集中所有TP/該測試集中所有(TP + FN )。

d.特異性:計算方式為, TN / ( FP + TN ) 。

e.平均特異性:計算方式為,該測試集中所有TN / 該測試集中所有( FP + TN ) 。

f.準(zhǔn)確度:計算方式為, ( TP + TN ) / ( TP + TN + FN + FP)。

g.平均準(zhǔn)確度:計算方式為, 該測試集中所有( TP + TN ) / 該測試集中所有( TP + TN + FN + FP)。

h.精確度:計算方式為,TP / ( TP+FP )。

i.平均精確度:該測試集中所有TP / ( 該測試集中所有TP+該測試集中所有FP )。

j.標(biāo)簽在用例中所占比例:計算方式為,該標(biāo)簽在測試集中的用例數(shù)量/測試集中的用例綜述。

為了讓評價結(jié)果更有可信度,我們采用了5分法對數(shù)據(jù)進(jìn)行交叉學(xué)習(xí)驗證。

3 模型訓(xùn)練

3.1 數(shù)據(jù)降維

項目文本數(shù)據(jù)在轉(zhuǎn)為詞袋模型后,得到了五千多維的二值化矩陣,這便帶來了維度災(zāi)難問題,許多算法如邏輯回歸、決策樹算法等眾多算法在低維空間表現(xiàn)良好,但當(dāng)輸入高維度數(shù)據(jù)后算法往往失效。這是由于訓(xùn)練數(shù)據(jù)維度的增高使得算法模型為了準(zhǔn)確分類所需的數(shù)據(jù)量呈指數(shù)增加。因此需要對數(shù)據(jù)進(jìn)行降維。

這里選用LDA(線性判別式分析)模型進(jìn)行數(shù)據(jù)降維,LDA是一種監(jiān)督式的線性降維算法,它通過在k維空間選擇一個投影超平面,使得不同類別在該超平面上的投影之間的距離盡可能近,同時不同類別的投影之間的距離盡可能遠(yuǎn),最終起到降維的效果。本項目數(shù)據(jù)經(jīng)過反復(fù)測試,發(fā)現(xiàn)當(dāng)維度降低到18時模型分類效果最好。

經(jīng)過LDA模型,文本數(shù)據(jù)由五千多維01矩陣轉(zhuǎn)變?yōu)?8維浮點數(shù)值矩陣,單行數(shù)據(jù)示例如下:

-1.7075 1.9503 -2.8726 -0.2466 0.2406 0.1693 2.5363 -0.3792 -1.8853 -2.2728 1.1057 0.3937 -2.0014 0.5809 -0.3731 0.7594 0.1070 -0.0264

可見輸入數(shù)據(jù)變?yōu)?8維的特征向量,代表了某一條示例文本在18維向量空間上的投影。

3.2 模型設(shè)計

結(jié)合輸入數(shù)據(jù)特點和模型特點,經(jīng)過對多組主流分類模型的多次重復(fù)試驗,有三類模型表現(xiàn)最為優(yōu)秀,分別是邏輯回歸模型、KNN模型和SVM模型,其中以邏輯回歸模型表現(xiàn)最為穩(wěn)定。本項目使用sklearn框架,模型的實現(xiàn)均調(diào)用sklearn中的方法。

邏輯回歸模型是線性回歸后與邏輯函數(shù)的結(jié)合,是一種有監(jiān)督的統(tǒng)計學(xué)習(xí)方法,主要用于對模型的分類。模型采用newton-cg算法作為邏輯回歸模型的求解算法并使用L2范數(shù)作為規(guī)則化范數(shù),可防止過擬合,提升模型的泛化能力。KNN模型和SVM模型同樣具有較好的分類效果,最終分類結(jié)果準(zhǔn)確程度與邏輯回歸模型相差很小。

3.3 模型訓(xùn)練

這里選用了經(jīng)過降維的數(shù)據(jù)進(jìn)行模型的訓(xùn)練,由于訓(xùn)練數(shù)據(jù)未涉及項目數(shù)據(jù),僅使用了用例本身的名稱、描述、狀態(tài)等信息,因此訓(xùn)練出的模型使用范圍不受不同項目背景影響,面對不同項目的數(shù)據(jù)分類的準(zhǔn)確程度不會有較大波動,因此模型具有廣泛的適用性。

模型訓(xùn)練數(shù)據(jù)的數(shù)目為總體數(shù)據(jù)的80%,共8285條數(shù)據(jù),均是從總體數(shù)據(jù)中隨機(jī)抽取得來。其他20%的數(shù)據(jù)為驗證數(shù)據(jù)。對訓(xùn)練集的選取使用了交叉驗證的方法,將整體數(shù)據(jù)分為五組,選取其中一組作為驗證集,另外四組作為訓(xùn)練集進(jìn)行模型的訓(xùn)練,共進(jìn)行五輪,使每組數(shù)據(jù)都作為過一次驗證集。

3.4 標(biāo)簽生成

使用訓(xùn)練完成的邏輯回歸模型,通過sklearn提供的predict方法進(jìn)行分類標(biāo)簽的生成,輸入驗證集數(shù)據(jù),返回標(biāo)簽,此時返回的標(biāo)簽是經(jīng)過數(shù)值化處理的標(biāo)簽。經(jīng)過解碼后即可得到標(biāo)簽文本。

4 分析與結(jié)論

4.1 結(jié)果分析與對比

采用5分法,共產(chǎn)生了5次結(jié)果,結(jié)果都相近,選取其中一次并計算指標(biāo)后展示如表2,表3:

4.2 結(jié)果分析

可以看出單個標(biāo)簽的精確度是在96%左右,復(fù)合類標(biāo)簽的平均精確度在92%左右。具體分析如下:

(1) 復(fù)合標(biāo)簽平均精確率比單個標(biāo)簽的平均精確度要低,主要原因是存在若干復(fù)合標(biāo)簽的所占比例很低,如表11中的“權(quán)限類流程類數(shù)據(jù)校驗類”等,在整個測試集中僅占0.1%,所產(chǎn)生的精確度為0,很可能是訓(xùn)練集中根本沒有分到該標(biāo)簽或者僅分到很少的數(shù)量,所以不具備評價整個模型的價值;

(2) 目前訓(xùn)練數(shù)據(jù)中,復(fù)合標(biāo)簽不區(qū)分優(yōu)先級,而實踐中,一個用例如果有多個標(biāo)簽,相應(yīng)存在一定的優(yōu)先級,也導(dǎo)致了復(fù)合標(biāo)簽精確度相對較低(認(rèn)為每個標(biāo)簽的優(yōu)先級都一樣)。

(3) 人工標(biāo)注為‘權(quán)限類數(shù)據(jù)校驗類,模型誤報為無任何標(biāo)簽,一方面因為該類用例數(shù)量比例較低,1.2%左右,學(xué)習(xí)樣本不夠,另一方面一些與業(yè)務(wù)場景結(jié)合的有特殊含義的詞可能在降維過程中損失,后續(xù)可考慮補(bǔ)償機(jī)制。

總體來說,通過這次實驗,說明了標(biāo)簽自動化生成的可行性,想要進(jìn)一步的提升,可以通過改進(jìn)多標(biāo)簽算法,尋找用例相關(guān)的專業(yè)辭典進(jìn)行切詞等方式提升準(zhǔn)確率。

參考文獻(xiàn):

[1] 李思男,李寧, 李戰(zhàn)懷. 多標(biāo)簽數(shù)據(jù)挖掘技術(shù):研究綜述[J]. 計算機(jī)科學(xué), 2013, 40(4):14-21.

[2] 劉件, 魏程.中文分詞算法研究[J]. 網(wǎng)絡(luò)新媒體技術(shù), 2008, 29(8):11-16.

【通聯(lián)編輯:梁書】

猜你喜歡
自然語言處理機(jī)器學(xué)習(xí)模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
基于組合分類算法的源代碼注釋質(zhì)量評估方法
前綴字母為特征在維吾爾語文本情感分類中的研究
3D打印中的模型分割與打包
基于支持向量機(jī)的金融數(shù)據(jù)分析研究
FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究