1.一種軟件缺陷智能檢測方法,其特征在于,包括以下步驟:
獲取樣本軟件模塊進(jìn)行預(yù)處理,得到軟件樣本集;所述軟件樣本集包括軟件有缺陷樣本集和軟件無缺陷樣本集;
對所述軟件無缺陷樣本集進(jìn)行聚類處理,得到聚類子集;
對所述聚類子集進(jìn)行隨機(jī)抽樣,得到平衡后的軟件無缺陷樣本集;
根據(jù)所述軟件有缺陷樣本集和所述平衡后的軟件無缺陷樣本集得到更新軟件樣本集;
根據(jù)所述更新軟件樣本集進(jìn)行訓(xùn)練得到缺陷檢測模型;
根據(jù)所述缺陷檢測模型對待測軟件模塊進(jìn)行缺陷預(yù)測,并輸出預(yù)測結(jié)果。
2.根據(jù)權(quán)利要求1所述的軟件缺陷智能檢測方法,其特征在于,所述獲取樣本軟件模塊進(jìn)行預(yù)處理,得到軟件樣本集的步驟,包括以下步驟:
分別對樣本軟件模塊進(jìn)行標(biāo)記處理,得到各樣本軟件模塊的缺陷標(biāo)記;
分別對樣本軟件模塊進(jìn)行靜態(tài)度量,得到各樣本軟件模塊的樣本向量;
根據(jù)各樣本軟件模塊的缺陷標(biāo)記,對對應(yīng)樣本軟件模塊的樣本向量進(jìn)行分類,得到軟件有缺陷樣本集和軟件無缺陷樣本集。
3.根據(jù)權(quán)利要求2所述的軟件缺陷智能檢測方法,其特征在于,所述對所述軟件無缺陷樣本集進(jìn)行聚類處理,得到聚類子集的步驟,包括以下步驟:
以所述軟件無缺陷樣本集中的樣本向量為起點(diǎn),計(jì)算樣本向量的meanshift向量,具體為:
其中,Mh表示樣本向量T的meanshift向量,Sh(T)表示半徑為常數(shù)h的高維球區(qū)域內(nèi),滿足關(guān)系(T-Ti)T(T-Ti)<h2的K個樣本向量的集合,Ti為Sh(T)中的樣本向量;
判斷樣本向量的meanshift向量是否大于預(yù)設(shè)閾值;
若是,則將樣本向量與meanshift向量之和作為新的樣本向量,并返回所述以所述軟件無缺陷樣本集中的樣本向量為起點(diǎn),計(jì)算樣本向量的meanshift向量的步驟;
若否,則將樣本向量與meanshift向量之和作為樣本向量的中心點(diǎn);
根據(jù)樣本向量的中心點(diǎn)對樣本向量進(jìn)行聚類,得到聚類子集。
4.根據(jù)權(quán)利要求1所述的軟件缺陷智能檢測方法,其特征在于,對所述聚類子集進(jìn)行隨機(jī)抽樣的抽取樣本個數(shù)為:
其中,mj'為對第j個聚類子集進(jìn)行隨機(jī)抽樣的抽取樣本個數(shù),mj為第j個聚類子集的樣本數(shù),M為軟件無缺陷模塊的總數(shù),N為軟件有缺陷模塊的總數(shù)。
5.根據(jù)權(quán)利要求1所述的軟件缺陷智能檢測方法,其特征在于,所述根據(jù)所述更新軟件樣本集進(jìn)行訓(xùn)練得到缺陷檢測模型,包括:
其中,表示取最大值時缺陷檢測模型的參數(shù)λ的取值;
Ti、Tj分別為更新軟件樣本集中第i、j個樣本向量,k(Ti,Tj)表示樣本向量Ti、Tj之間的核函數(shù);flagi、flagj分別為更新軟件樣本集中第i、j個樣本向量所對應(yīng)的缺陷標(biāo)記,λi、λj為缺陷檢測模型待訓(xùn)練的參數(shù),表示更新軟件樣本集中第i、j個樣本向量的權(quán)值;s.t.表示約束條件,C為懲罰因子,M’+N表示更新軟件樣本集中樣本向量的個數(shù)。
6.根據(jù)權(quán)利要求1所述的軟件缺陷智能檢測方法,其特征在于,根據(jù)所述缺陷檢測模型對待測軟件模塊進(jìn)行缺陷預(yù)測,包括以下步驟:
對待測軟件模塊進(jìn)行靜態(tài)度量,得到待測軟件模塊的樣本向量;
根據(jù)待測軟件模塊的樣本向量以及缺陷預(yù)測模型對待測軟件模塊進(jìn)行缺陷預(yù)測,具體為:
其中,T為待測軟件模塊的樣本向量,K(Ti,T)表示樣本向量Ti、T之間的核函數(shù);g(T)表示待測軟件模塊的缺陷標(biāo)記,sgn為符號函數(shù),表示對求整型變量,當(dāng)大于0時取1,當(dāng)小于或等于0時取0;Ti為更新軟件樣本集中第i個樣本向量,flagi為更新軟件樣本集中第i個樣本向量所對應(yīng)的缺陷標(biāo)記,λi表示由缺陷預(yù)測模型得到的更新軟件樣本集中第i個樣本向量的權(quán)值,M’+N表示更新軟件樣本集中樣本向量的個數(shù),b為常數(shù)。
7.一種軟件缺陷智能檢測系統(tǒng),其特征在于,包括:
樣本集建立模塊,用于獲取樣本軟件模塊進(jìn)行預(yù)處理,得到軟件樣本集;所述軟件樣本集包括軟件有缺陷樣本集和軟件無缺陷樣本集;
聚類處理模塊,用于對所述軟件無缺陷樣本集進(jìn)行聚類處理,得到聚類子集;
抽樣處理模塊,用于對所述聚類子集進(jìn)行隨機(jī)抽樣,得到平衡后的軟件無缺陷樣本集;
樣本集更新模塊,用于根據(jù)所述軟件有缺陷樣本集和所述平衡后的軟件無缺陷樣本集得到更新軟件樣本集;
模型訓(xùn)練模塊,用于根據(jù)所述更新軟件樣本集進(jìn)行訓(xùn)練得到缺陷檢測模型;
缺陷預(yù)測模塊,用于根據(jù)所述缺陷檢測模型對待測軟件模塊進(jìn)行缺陷預(yù)測,并輸出預(yù)測結(jié)果。
8.根據(jù)權(quán)利要求7所述的軟件缺陷智能檢測系統(tǒng),其特征在于,對所述聚類子集進(jìn)行隨機(jī)抽樣的抽取樣本個數(shù)為:
其中,mj'為對第j個聚類子集進(jìn)行隨機(jī)抽樣的抽取樣本個數(shù),mj為第j個聚類子集的樣本數(shù),M為軟件無缺陷模塊的總數(shù),N為軟件有缺陷模塊的總數(shù)。
9.根據(jù)權(quán)利要求7所述的軟件缺陷智能檢測系統(tǒng),其特征在于,所述模型訓(xùn)練模塊根據(jù)所述更新軟件樣本集進(jìn)行訓(xùn)練得到缺陷檢測模型,包括:
其中,表示取最大值時缺陷檢測模型的參數(shù)λ的取值;
Ti、Tj分別為更新軟件樣本集中第i、j個樣本向量,k(Ti,Tj)表示樣本向量Ti、Tj之間的核函數(shù);flagi、flagj分別為更新軟件樣本集中第i、j個樣本向量所對應(yīng)的缺陷標(biāo)記,λi、λj為缺陷檢測模型待訓(xùn)練的參數(shù),表示更新軟件樣本集中第i、j個樣本向量的權(quán)值;s.t.表示約束條件,C為懲罰因子,M’+N表示更新軟件樣本集中樣本向量的個數(shù)。
10.根據(jù)權(quán)利要求7所述的軟件缺陷智能檢測系統(tǒng),其特征在于,所述缺陷預(yù)測模塊包括:
第一預(yù)測單元,用于對待測軟件模塊進(jìn)行靜態(tài)度量,得到待測軟件模塊的樣本向量;
第二預(yù)測單元,用于根據(jù)待測軟件模塊的樣本向量以及缺陷預(yù)測模型對待測軟件模塊進(jìn)行缺陷預(yù)測,具體為:
其中,T為待測軟件模塊的樣本向量,K(Ti,T)表示樣本向量Ti、T之間的核函數(shù);g(T)表示待測軟件模塊的缺陷標(biāo)記,sgn表示對求整型變量,當(dāng)大于0時取1,當(dāng)小于或等于0時取0;Ti為更新軟件樣本集中第i個樣本向量,flagi為更新軟件樣本集中第i個樣本向量所對應(yīng)的缺陷標(biāo)記,λi表示由缺陷預(yù)測模型得到的更新軟件樣本集中第i個樣本向量的權(quán)值,M’+N表示更新軟件樣本集中樣本向量的個數(shù),b為常數(shù)。