[發(fā)明專利]一種軟件缺陷嚴(yán)重程度識別方法在審
| 申請?zhí)枺?/td> | 201911425226.5 | 申請日: | 2019-12-31 |
| 公開(公告)號: | CN111177010A | 公開(公告)日: | 2020-05-19 |
| 發(fā)明(設(shè)計(jì))人: | 俞東進(jìn);郭世明;陳信;王琳 | 申請(專利權(quán))人: | 杭州電子科技大學(xué) |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06N3/12;G06N3/04 |
| 代理公司: | 杭州君度專利代理事務(wù)所(特殊普通合伙) 33240 | 代理人: | 楊舟濤 |
| 地址: | 310018 浙*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 軟件 缺陷 嚴(yán)重 程度 識別 方法 | ||
1.一種軟件缺陷嚴(yán)重程度識別方法,其特征在于包括以下步驟:
步驟(1)定義軟件缺陷的嚴(yán)重程度,將normal、trivial和minor級別歸為非嚴(yán)重缺陷s1,將major、blocker和critical級別歸為嚴(yán)重缺陷s2;
步驟(2)給定缺陷報告集合R=(R1,R2,...Rn),將其中每個軟件缺陷報告表示成Ri=<reportId,des,severity>,i=1,2...,n,其中reportId表示軟件缺陷報告編號,des表示軟件缺陷報告的描述信息,severity表示軟件缺陷報告的嚴(yán)重程度,即s1或s2;
步驟(3)對每個軟件缺陷的描述信息des進(jìn)行預(yù)處理:首先對des進(jìn)行標(biāo)記,用空格區(qū)分成單詞形式,并刪除其中的符號,然后基于停用詞列表移除其中的停用詞,最后將每個單詞轉(zhuǎn)為它的原型(即將每個單詞轉(zhuǎn)為它原有的詞干或詞根);經(jīng)過預(yù)處理后每個缺陷報告Ri=<reportId,preDes,severity>,其中preDes表示預(yù)處理后的描述信息;
步驟(4)首先抽取所有缺陷報告中的描述信息preDes中的不同單詞,形成關(guān)鍵詞字典Dict=(w1,w2,...,wk),即特征集合,其中每一個關(guān)鍵詞就是一個特征;然后利用遺傳算法進(jìn)行特征選擇,特征選擇的步驟如下:
4-1.設(shè)定初始化種群X=(X1,X2,...,Xp),p表示種群大小,以及最大迭代次數(shù)MaxIter;種群中的每一個個體Xi可以用一個長度為k的二進(jìn)制串表示,其中1代表對應(yīng)的特征被選中,0表示對應(yīng)的特長度k即關(guān)鍵詞的個數(shù);
4-2.對于每個個體Xi,根據(jù)關(guān)鍵詞字典Dict得到對應(yīng)的特征子集SDi(基于個體Xi二進(jìn)制串過濾得到),然后根據(jù)SDi去除每個preDes的冗余特征,即只保留在SDi中存在的特征,得到preDesR;
4-3.利用TF-IDF加權(quán)方法計(jì)算每個特征的權(quán)重,其中TF表示單詞頻率,IDF表示文檔反向頻率;TF-IDF公式為TF-IDFl,j=TFl,j×IDFj,其中TF-IDFl,j表示第j個單詞在第l個文檔中的權(quán)重,TFl,j表示第j個單詞在第l個文檔中的頻率,IDFj=log(n/DFj)表示第j個單詞的文檔反向頻率,n表示文檔的個數(shù),DFj表示包含第j個單詞的文檔的個數(shù);
4-4.對種群中的每一個個體Xi采用最小化平均絕對偏差作為適應(yīng)度函數(shù)進(jìn)行評估;適應(yīng)度函數(shù)定義如下:
其中,MAD(Xi)表示第i個個體Xi對應(yīng)的適應(yīng)度值,al是第l個軟件缺陷報告中被選中的特征的數(shù)量,el,j表示第l個軟件缺陷報告中第j個特征的權(quán)值,即TF-IDFl,i;然后采用錦標(biāo)賽選擇算法對種群進(jìn)行選擇,被選擇的個體進(jìn)入子代種群;
4-5.對子代種群進(jìn)行交叉和變異,重復(fù)上述步驟4-2到4-4的操作,直到達(dá)到最大迭代次數(shù)MaxIter;
4-6.輸出最優(yōu)特征子集;
步驟(5)單詞向量化,基于最優(yōu)特征子集將每個缺陷報告的preDes中的冗余特征進(jìn)行過濾,得到preDesR;然后利用Word2Vec中的Skip-gram模型將每個preDesR中的每個單詞轉(zhuǎn)為一個d維向量,即
步驟(6)訓(xùn)練軟件缺陷報告嚴(yán)重程度預(yù)測的卷積神經(jīng)網(wǎng)絡(luò)模型M,將步驟(5)得到的每個單詞的向量表示輸入至模型M的Embedding層進(jìn)行訓(xùn)練,具體步驟如下:
第一,設(shè)置模型參數(shù):Number of hidden units(隱藏單元數(shù))、IterMax(CNN訓(xùn)練最大迭代次數(shù))、Batch size(批量大小)、L2、Learning rate(學(xué)習(xí)率)、Dropout和Dimensionalof word vectors(單詞向量維度);
第二,將R分為訓(xùn)練數(shù)據(jù)集合ζtrain與測試數(shù)據(jù)集合ζtest;
第三,將訓(xùn)練數(shù)據(jù)集合ζtrain所有單詞的輸入至CNN中進(jìn)行訓(xùn)練;
第四,對于訓(xùn)練數(shù)據(jù)集合ζtrain中數(shù)據(jù),利用三個不同卷積核執(zhí)行卷積操作,分別對每一個卷積結(jié)果進(jìn)行最大池化1-Max操作,輸出Θ1,Θ2,Θ3;
第五,對Θ1,Θ2,Θ3進(jìn)行Flatten操作,展平成一維向量,并輸入到全連接層中,其中激活函數(shù)使用Relu,輸出
第六,卷積神經(jīng)網(wǎng)絡(luò)通過損失函數(shù)Loss計(jì)算c與之間的損失值,即預(yù)測的嚴(yán)重程度與真實(shí)的嚴(yán)重程度的差值,不斷優(yōu)化模型參數(shù),其中c是每次迭代對ζtrain中的部分?jǐn)?shù)據(jù)的預(yù)測結(jié)果;
第七,達(dá)到設(shè)定的損失函數(shù)要求值或達(dá)到最大迭代次數(shù)IterMax后,迭代結(jié)束;最后,輸出預(yù)測模型M;
步驟(7)將測試數(shù)據(jù)集合ζtest數(shù)據(jù)輸入至預(yù)測模型M,輸出預(yù)測結(jié)果c’,得到類標(biāo)簽s1或s2;
步驟(8)進(jìn)行十折交叉驗(yàn)證,十次預(yù)測之后取平均值,作為最終預(yù)測結(jié)果
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于杭州電子科技大學(xué),未經(jīng)杭州電子科技大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911425226.5/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
- 一種基于應(yīng)用軟件散布的軟件授權(quán)與保護(hù)方法及系統(tǒng)
- 一種用于航空機(jī)載設(shè)備的軟件在線加載系統(tǒng)及方法
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 惡意軟件檢測方法及裝置
- 一種基于軟件基因的軟件同源性分析方法和裝置
- 軟件引入系統(tǒng)、軟件引入方法及存儲介質(zhì)
- 軟件驗(yàn)證裝置、軟件驗(yàn)證方法以及軟件驗(yàn)證程序
- 使用靜態(tài)和動態(tài)惡意軟件分析來擴(kuò)展惡意軟件的動態(tài)檢測
- 一種工業(yè)控制軟件構(gòu)建方法和軟件構(gòu)建系統(tǒng)
- 可替換游戲軟件與測驗(yàn)軟件的裝置與方法





