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

?

跨項目軟件缺陷預(yù)測方法研究綜述

2020-04-09 07:55劉戰(zhàn)東張海軍
計算機技術(shù)與發(fā)展 2020年3期
關(guān)鍵詞:實例預(yù)測特征

李 勇,劉戰(zhàn)東,張海軍

(1.新疆師范大學(xué) 計算機科學(xué)技術(shù)學(xué)院,新疆 烏魯木齊 830054;2.新疆師范大學(xué) 數(shù)據(jù)安全重點實驗室,新疆 烏魯木齊 830054)

0 引 言

隨著計算機軟件規(guī)模和復(fù)雜度的日益增加,特別是大型系統(tǒng)對軟件的強烈依賴,軟件在運行過程中一旦失效可能導(dǎo)致嚴重的后果,有時甚至是致命的[1],導(dǎo)致軟件失效的根本原因是系統(tǒng)中存在軟件缺陷。通過軟件缺陷預(yù)測技術(shù)對軟件系統(tǒng)中可能存在缺陷的模塊及其分布進行預(yù)測,可以有效提高軟件測試的效率,對提高軟件系統(tǒng)質(zhì)量和保證軟件可靠性具有重要意義[2]。

軟件缺陷預(yù)測是指基于軟件開發(fā)過程中積累的歷史數(shù)據(jù)構(gòu)建預(yù)測模型,對目標(biāo)軟件模塊是否存在缺陷、缺陷嚴重程度或缺陷數(shù)量的分布等情況進行預(yù)測。通常情況下基于目標(biāo)項目的歷史數(shù)據(jù),采用傳統(tǒng)機器學(xué)習(xí)技術(shù)構(gòu)建的模型可以獲得理想的預(yù)測效果[3]。但在軟件缺陷預(yù)測實踐應(yīng)用中,要進行預(yù)測的軟件往往是新開發(fā)的項目,沒有或只有較少的歷史軟件數(shù)據(jù),而且進行數(shù)據(jù)標(biāo)注的代價較高。雖然已有大量來自不同組織的軟件缺陷數(shù)據(jù)集在互聯(lián)網(wǎng)上公開,但不同軟件項目間通常存在數(shù)據(jù)漂移問題,無法采用傳統(tǒng)的學(xué)習(xí)算法訓(xùn)練模型[4]。

遷移學(xué)習(xí)是指可以采用與目標(biāo)領(lǐng)域相關(guān)的數(shù)據(jù)訓(xùn)練模型,適用于目標(biāo)領(lǐng)域沒有歷史積累數(shù)據(jù)的情況。基于遷移學(xué)習(xí)技術(shù)實現(xiàn)跨項目的軟件缺陷預(yù)測是近幾年該領(lǐng)域的研究熱點之一,相關(guān)研究人員開展了大量工作,有力地促進了軟件缺陷預(yù)測技術(shù)的發(fā)展。文中對該問題相關(guān)的研究文獻進行綜述。首先對相關(guān)的知識進行介紹,包括軟件缺陷預(yù)測技術(shù)和遷移學(xué)習(xí)技術(shù);然后對已有的研究進展進行分類評述;接著對研究中存在的問題以及未來研究工作進行展望;最后對全文進行總結(jié)。

1 相關(guān)研究背景

1.1 軟件缺陷預(yù)測

軟件缺陷預(yù)測是實證軟件工程方向的一個活躍領(lǐng)域,通過對歷史軟件缺陷數(shù)據(jù)進行屬性度量后,基于機器學(xué)習(xí)技術(shù)構(gòu)建軟件缺陷預(yù)測模型是目前研究者關(guān)注的熱點?;跈C器學(xué)習(xí)構(gòu)建軟件缺陷預(yù)測模型的前提是認為軟件缺陷與軟件內(nèi)部度量屬性之間存在某種關(guān)系,發(fā)現(xiàn)這些關(guān)系也成為軟件度量發(fā)展的一個目標(biāo)?,F(xiàn)有研究文獻在構(gòu)建缺陷預(yù)測模型時使用的度量屬性可以分為代碼規(guī)模和復(fù)雜度度量、面向?qū)ο蠖攘恳约伴_發(fā)過程度量等。文獻[5]指出各種常見的度量屬性對于構(gòu)建軟件缺陷預(yù)測模型都是有效的,模型的性能取決于學(xué)習(xí)算法的選擇。

隨著機器學(xué)習(xí)技術(shù)的發(fā)展和應(yīng)用,傳統(tǒng)監(jiān)督學(xué)習(xí)算法如樸素貝葉斯、決策樹、隨機森林、神經(jīng)網(wǎng)絡(luò)和集成算法等都被用來構(gòu)建預(yù)測模型,各種算法在不同的應(yīng)用環(huán)境中均取得了理想的預(yù)測性能[6]。也有文獻針對軟件缺陷預(yù)測中的特性問題進行深入的研究,如類數(shù)據(jù)的不平衡性[7]、代價敏感問題[8]和缺陷預(yù)測成本有效性[9]等??紤]到軟件歷史數(shù)據(jù)的標(biāo)注代價問題,有研究提出了無監(jiān)督或半監(jiān)督的模型學(xué)習(xí)方式,如文獻[10]將采用自適應(yīng)閾值過濾的方法實現(xiàn)無監(jiān)督的預(yù)測模型構(gòu)建,文獻[11]提出基于LDS算法的半監(jiān)督模型構(gòu)建方法。由于傳統(tǒng)機器學(xué)習(xí)技術(shù)在構(gòu)建模型時都假設(shè)訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)具有相同的特征空間和數(shù)據(jù)分布,所以現(xiàn)有研究中對模型的評價通常是基于目標(biāo)項目數(shù)據(jù)構(gòu)建模型,然后采用交叉驗證的方式計算其準確率、召回率、AUC等指標(biāo)以實現(xiàn)模型的驗證和比較。

然而在軟件工程實踐中,需要進行缺陷預(yù)測的往往是新開發(fā)項目的軟件模塊,而新開發(fā)項目一般沒有或者只有少量的歷史數(shù)據(jù)無法用于構(gòu)建預(yù)測模型。現(xiàn)在互聯(lián)網(wǎng)上已有許多專門用于軟件缺陷預(yù)測研究的公開數(shù)據(jù)集,如創(chuàng)建于2005年的PROMISE軟件工程預(yù)測模型數(shù)據(jù)庫[12],其中的數(shù)據(jù)集均取自真實的軟件項目。但是每個項目由于其不同的上下文環(huán)境導(dǎo)致軟件缺陷數(shù)據(jù)的特征空間和分布不同,采用傳統(tǒng)機器學(xué)習(xí)技術(shù)直接構(gòu)建跨項目缺陷預(yù)測模型無法獲得理想的預(yù)測效果[4]。

1.2 遷移學(xué)習(xí)

根據(jù)NIPS在2005年對遷移學(xué)習(xí)的定義,其目標(biāo)是從相似但不同的領(lǐng)域直接進行知識的遷移,用于解決傳統(tǒng)機器學(xué)習(xí)在遇到特征空間和分布變化時需要重新學(xué)習(xí)模型的問題[13]。由于遷移學(xué)習(xí)放寬了傳統(tǒng)機器學(xué)習(xí)在構(gòu)建模型時要求訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)獨立同分布的假設(shè),實現(xiàn)了目標(biāo)領(lǐng)域缺乏訓(xùn)練數(shù)據(jù)時的模型構(gòu)建。近年來,遷移學(xué)習(xí)技術(shù)獲得了廣泛的研究和關(guān)注。

在遷移學(xué)習(xí)中的領(lǐng)域D可以表示為D={χ,P(X)},其中χ為特征空間,P(X)為對應(yīng)的邊緣概率分布,X={x1,x2,…,xn}∈χ,xi為第i個實例的屬性向量;學(xué)習(xí)任務(wù)表示為T={Y,f(·)},其中Y是標(biāo)簽空間,f(·)是目標(biāo)函數(shù)。遷移學(xué)習(xí)的目標(biāo)是當(dāng)Ds≠Dt或者Ts≠Tt時,使用Ds和Ts中有用的知識提高目標(biāo)領(lǐng)域Dt的學(xué)習(xí)函數(shù)泛化性能,其中Ds表示源領(lǐng)域,Dt表示目標(biāo)領(lǐng)域,Ts和Tt分別表示Ds和Dt對應(yīng)的學(xué)習(xí)任務(wù)。在采用遷移學(xué)習(xí)進行模型構(gòu)建時,Ds中有足夠的標(biāo)注數(shù)據(jù),而Dt中沒有或者只有少量的標(biāo)注數(shù)據(jù)。為了實現(xiàn)模型的遷移,可以通過特征遷移和實例遷移的方法實現(xiàn)[14]?;谔卣鬟w移的方法是指通過特征變換的方式使源領(lǐng)域數(shù)據(jù)與目標(biāo)領(lǐng)域數(shù)據(jù)分布最為接近,然后采用傳統(tǒng)的學(xué)習(xí)算法訓(xùn)練模型,常見的特征遷移算法有TPLSA[15]、MMDE[16]和TCA[17]等。而實例遷移方法是根據(jù)源領(lǐng)域樣例對目標(biāo)領(lǐng)域的貢獻程度形成新的訓(xùn)練數(shù)據(jù)用于目標(biāo)領(lǐng)域模型的構(gòu)建,常見的實例遷移算法有TrBagg[18]和TrAdaBoost[19]等算法。

目前遷移學(xué)習(xí)技術(shù)已經(jīng)被廣泛應(yīng)用在各種跨領(lǐng)域?qū)W習(xí)任務(wù)中,如文本處理、圖像處理和人工智能規(guī)劃等[20]。文中關(guān)注的是軟件缺陷預(yù)測領(lǐng)域,基于遷移學(xué)習(xí)的軟件缺陷預(yù)測研究目標(biāo)是解決跨項目軟件缺陷預(yù)測模型的領(lǐng)域適應(yīng)問題。在軟件缺陷預(yù)測中,當(dāng)Ds=Dt且Ts=Tt時,為傳統(tǒng)的機器學(xué)習(xí)問題。當(dāng)Ds≠Dt時,表示源項目和目標(biāo)項目軟件缺陷特征空間不同,如不同的開發(fā)上下文環(huán)境導(dǎo)致的Xs≠Xt或Ps(X)≠Pt(X)。對于Ts≠Tt,則表示缺陷預(yù)測任務(wù)不同,常見的軟件缺陷預(yù)測任務(wù)包括預(yù)測模塊是否存在缺陷、缺陷的數(shù)量或缺陷的嚴重程度等。在跨項目的軟件缺陷預(yù)測中,所關(guān)注的是學(xué)習(xí)任務(wù)相同Ts=Tt,但領(lǐng)域特征分布不同,即Ds≠Dt的情況。也就是將從已有標(biāo)注數(shù)據(jù)的源項目軟件數(shù)據(jù)中學(xué)習(xí)到的知識遷移到與源項目的特征空間和缺陷分布不同的目標(biāo)項目中實現(xiàn)缺陷的預(yù)測。

2 基于遷移學(xué)習(xí)的跨項目軟件缺陷預(yù)測方法

2.1 跨項目軟件缺陷預(yù)測的數(shù)據(jù)漂移問題

在軟件工程中,每個項目存在不同的上下文環(huán)境,如開發(fā)過程、開發(fā)者信息和程序語言等因素,導(dǎo)致軟件缺陷數(shù)據(jù)的特征空間和分布不同,即跨項目的軟件缺陷數(shù)據(jù)間存在數(shù)據(jù)漂移問題[22-23]。文獻[4]采用12個軟件項目的622個組合實現(xiàn)跨項目的預(yù)測,結(jié)果表明只有3.4%的組合可以獲得較為理想的預(yù)測結(jié)果,進一步驗證了軟件項目間存在數(shù)據(jù)的漂移問題。因此,在跨項目的軟件缺陷預(yù)測中必須對源項目和目標(biāo)項目數(shù)據(jù)進行相應(yīng)的處理才能獲得理想的預(yù)測性能。采用遷移學(xué)習(xí)技術(shù)實現(xiàn)跨項目的軟件缺陷預(yù)測流程如圖1所示。下面將依據(jù)遷移學(xué)習(xí)的特點將現(xiàn)有研究文獻中提出的方法分為軟件屬性特征遷移和軟件模塊實例遷移兩類進行綜述。

圖1 跨項目的軟件缺陷預(yù)測流程

2.2 基于特征遷移的跨項目軟件缺陷預(yù)測方法

現(xiàn)有研究文獻在構(gòu)建缺陷預(yù)測模型時使用的軟件特征度量屬性可以分為軟件代碼度量屬性和開發(fā)過程度量屬性兩類。為了實現(xiàn)跨項目的缺陷預(yù)測,有研究者提出了基于特征遷移的跨項目軟件缺陷預(yù)測方法。其主要思想是通過對軟件缺陷數(shù)據(jù)屬性特征進行相應(yīng)的處理,使得源項目和目標(biāo)項目在保證各自軟件缺陷數(shù)據(jù)特性的同時其數(shù)據(jù)分布最為相似,然后采用傳統(tǒng)的學(xué)習(xí)算法構(gòu)建預(yù)測模型,實現(xiàn)跨項目的缺陷預(yù)測。根據(jù)對數(shù)據(jù)特征的處理方式不同,現(xiàn)有研究文獻中提出的方法可歸納為特征選擇、特征轉(zhuǎn)換和特征映射三種。

2.2.1 基于特征選擇的遷移方法

基于特征選擇的方法是指找出源項目與目標(biāo)項目軟件缺陷數(shù)據(jù)的最小特征子集,該特征子集在保證源項目和目標(biāo)項目軟件缺陷特性的同時使得數(shù)據(jù)分布一致,從而實現(xiàn)軟件缺陷預(yù)測模型的遷移。文獻[24]在實驗中通過迭代選擇的方式獲得使模型性能穩(wěn)定的“最優(yōu)屬性子集”后,采用樸素貝葉斯和邏輯回歸算法構(gòu)建跨項目的缺陷預(yù)測模型,該模型在可接受指標(biāo)范圍(預(yù)測率大于70%)內(nèi),實現(xiàn)了模型性能與模型構(gòu)建成本的平衡。

基于特征選擇的方法適用于源項目和目標(biāo)項目軟件缺陷數(shù)據(jù)采用相同的屬性度量體系,但缺陷數(shù)據(jù)分布不同的情況。其優(yōu)點是在模型構(gòu)建中選擇較少的度量屬性,可以有效降低模型的成本。由于該方法實現(xiàn)模型遷移的前提要求源項目和目標(biāo)項目數(shù)據(jù)存在潛在的屬性子集,該屬性子集對軟件缺陷數(shù)據(jù)處理中度量屬性的選擇有指導(dǎo)意義。但該方法在實踐中對源項目數(shù)據(jù)要求較高,而且由于所獲取的屬性子集對軟件模塊的缺陷特征描述有限,在實踐應(yīng)用中不一定會獲得理想的性能。

2.2.2 基于特征轉(zhuǎn)換的遷移方法

基于特征轉(zhuǎn)換的模型遷移方法是指對源項目或目標(biāo)項目的軟件缺陷數(shù)據(jù)屬性特征進行變換,使得跨項目的軟件數(shù)據(jù)特征分布相似從而實現(xiàn)模型的遷移。在進行特征轉(zhuǎn)換時,根據(jù)不同情況可以只對源項目或目標(biāo)項目的缺陷數(shù)據(jù)屬性特征進行轉(zhuǎn)換,也可以對兩者均進行轉(zhuǎn)換。

文獻[25]提出采用屬性度量補償?shù)姆绞綄崿F(xiàn)不同程序語言編寫的跨項目軟件缺陷預(yù)測。由于不同項目間的屬性度量值范圍不同,通過補償?shù)姆绞綄⒃错椖亢湍繕?biāo)項目的屬性度量值調(diào)節(jié)至相似水平,結(jié)果表明可以有效提高預(yù)測模型的準確率和召回率。該方法要求源項目和目標(biāo)項目的軟件規(guī)模相似,該文獻在研究中僅使用兩個項目的數(shù)據(jù)集實驗,說服力相對較弱。而文獻[26]則對源項目和目標(biāo)項目軟件數(shù)據(jù)屬性特征均進行對數(shù)轉(zhuǎn)換,使其取值范圍相似,在轉(zhuǎn)換的同時去除數(shù)據(jù)中的離群點,結(jié)果表明可以在跨項目軟件缺陷預(yù)測中獲得較好的預(yù)測結(jié)果。

基于特征轉(zhuǎn)換的模型遷移方法適用于源項目和目標(biāo)項目軟件度量屬性類似,但屬性取值范圍差異較大時的情況。而且在使用該方法的兩篇文獻中均采用相同開發(fā)組織的不同項目數(shù)據(jù)進行實驗,當(dāng)跨項目軟件缺陷數(shù)據(jù)分布差異較大時,屬性特征轉(zhuǎn)換對數(shù)據(jù)分布的改變有限,因此該方法不適用于源項目和目標(biāo)項目軟件數(shù)據(jù)分布差異較大的情況。

2.2.3 基于特征映射的遷移方法

基于特征映射的遷移方法是指將源項目和目標(biāo)項目的軟件缺陷數(shù)據(jù)原始特征空間映射到某一潛在特征空間,在該潛在特征空間下,源項目和目標(biāo)項目的數(shù)據(jù)分布最為接近,然后基于該潛在空間實現(xiàn)跨項目的軟件缺陷預(yù)測模型遷移。該方法與特征選擇和特征轉(zhuǎn)換方法的區(qū)別在于映射得到的是全新的特征空間。

文獻[27]提出基于遷移成分分析TCA+的跨項目軟件缺陷預(yù)測模型。TCA是指在保證數(shù)據(jù)差異的約束條件下獲得源項目和目標(biāo)項目數(shù)據(jù)特征的線性映射函數(shù),通過該函數(shù)將跨項目數(shù)據(jù)映射到潛在的特征空間實現(xiàn)模型的遷移。在實驗中為了避免數(shù)據(jù)屬性取值范圍不同對模型性能的影響,提出TCA+實現(xiàn)自動正規(guī)化算法,有效提高了預(yù)測模型的性能。文獻[28]將跨項目軟件缺陷預(yù)測模型遷移問題形式化為一個半正定矩陣,獲得該半正定規(guī)劃問題的解后采用PCA進行降維得到新的潛在特征空間,從而實現(xiàn)模型的遷移。

基于特征映射的遷移方法適用于源項目和目標(biāo)項目的軟件缺陷數(shù)據(jù)度量屬性體系不同或差異較大時的情況。該方法的不足是在模型構(gòu)建中沒有使用軟件缺陷信息,僅使用源項目和目標(biāo)項目軟件缺陷數(shù)據(jù)映射后的分布信息,對模型性能的提高有限。

2.3 基于實例遷移的跨項目軟件缺陷預(yù)測方法

在軟件缺陷預(yù)測中,待實現(xiàn)預(yù)測的軟件程序單元可以在不同的粒度層次進行屬性度量,如方法度量、類度量、包度量和文件度量等。文中將軟件缺陷數(shù)據(jù)中的度量程序單元稱為軟件模塊實例?;趯嵗目珥椖寇浖毕蓊A(yù)測方法是指在軟件模塊實例層對源項目數(shù)據(jù)進行處理實現(xiàn)模型的遷移。根據(jù)對軟件模塊實例的處理方式不同,現(xiàn)有研究文獻中提出的方法可以歸納為實例選擇、實例權(quán)值和局部模型三種。

2.3.1 基于實例選擇的遷移方法

基于實例選擇的方法是指根據(jù)目標(biāo)項目軟件模塊實例的特征從源項目中選擇合適的標(biāo)注實例構(gòu)成模型數(shù)據(jù),實現(xiàn)跨項目的模型遷移。從源項目數(shù)據(jù)中所選模塊實例的質(zhì)量決定著最終模型的預(yù)測性能。如果所選模塊實例較少則不能充分反映目標(biāo)項目的缺陷特征,容易導(dǎo)致預(yù)測率較低。但如果引入不相關(guān)的模塊實例較多時,容易導(dǎo)致模型的誤報率較高。

文獻[29]提出Burak數(shù)據(jù)選擇方法,對于目標(biāo)項目中的每個軟件模塊實例使用KNN算法從多個源項目數(shù)據(jù)中尋找與其最接近的若干模塊實例組成目標(biāo)項目的訓(xùn)練數(shù)據(jù)。在該文獻的實驗中僅使用目標(biāo)項目軟件模塊實例去引導(dǎo)源項目實例的選擇,而沒有關(guān)注源項目中的數(shù)據(jù)特性。當(dāng)目標(biāo)項目數(shù)據(jù)遠小于源項目數(shù)據(jù)時,源項目數(shù)據(jù)可以提供更多的信息,即特征不相似的實例有可能包含對模型訓(xùn)練有用的信息。針對該問題文獻[30]提出Peters數(shù)據(jù)選擇方法,采用源項目數(shù)據(jù)尋找目標(biāo)項目中與其最近鄰的模塊實例,將所有與目標(biāo)項目最近鄰的源項目實例構(gòu)成模型訓(xùn)練數(shù)據(jù),其結(jié)果要優(yōu)于Burak方法,該方法的優(yōu)點是在項目開發(fā)的早期階段當(dāng)目標(biāo)項目數(shù)據(jù)較少時,也可以獲得較好的預(yù)測性能。在這兩篇文獻中存在的不足是對于數(shù)據(jù)的選擇均從源項目或目標(biāo)項目的每個軟件模塊實例出發(fā),當(dāng)數(shù)據(jù)量增大時算法的運行時間呈指數(shù)增長,而且沒有考慮數(shù)據(jù)的整體分布特征。

文獻[31]提出在跨項目缺陷預(yù)測時,如果可以充分利用源項目和目標(biāo)項目之間存在的分布特征相關(guān)性,從數(shù)據(jù)中獲取先驗知識指導(dǎo)源項目數(shù)據(jù)的選擇可以很大程度提高模型的性能。為此文獻[32]提出根據(jù)分布特征從大量源項目數(shù)據(jù)中獲取目標(biāo)項目的訓(xùn)練數(shù)據(jù)。該文獻在實驗中從項目數(shù)據(jù)層定義其特征屬性,然后通過聚類的方式尋找多個源項目數(shù)據(jù)作為訓(xùn)練集,結(jié)果表明可以有效提高模型的預(yù)測率。但由于從項目數(shù)據(jù)層進行數(shù)據(jù)選擇會引入不相關(guān)的軟件模塊實例,所以導(dǎo)致了模型綜合評價指標(biāo)仍然較低。也有研究者提出采用智能算法從多個源數(shù)據(jù)中尋找最優(yōu)數(shù)據(jù)集的方法,如文獻[33]使用遺傳算法實現(xiàn)最優(yōu)模型訓(xùn)練集的選擇,然后采用集成的方式構(gòu)建模型,有效降低了模型的誤報率。

2.3.2 基于實例權(quán)值的遷移方法

基于實例權(quán)值的遷移方法是指根據(jù)源項目軟件缺陷數(shù)據(jù)中每個模塊實例對目標(biāo)模型的作用不同分配權(quán)值,然后基于重新分配權(quán)值的數(shù)據(jù)實現(xiàn)模型的遷移,在現(xiàn)有研究文獻中一般采用權(quán)值更新的方式。

文獻[34]提出遷移貝葉斯TNB算法用于構(gòu)建跨項目的軟件缺陷預(yù)測模型。首先提取目標(biāo)項目軟件缺陷數(shù)據(jù)的分布特征,然后對源項目數(shù)據(jù)中的每個軟件模塊實例與目標(biāo)項目數(shù)據(jù)特征進行比較,基于數(shù)據(jù)引力方法計算每個實例的權(quán)值,采用加權(quán)的訓(xùn)練數(shù)據(jù)構(gòu)建模型。該方法的優(yōu)勢在于使用了源項目中所有軟件模塊的信息,而且只需要計算一次目標(biāo)項目數(shù)據(jù)的分布特征,降低了單個實例比較選擇中運算量較大的問題,算法的時間復(fù)雜度是與數(shù)據(jù)量成線性關(guān)系。其不足是對目標(biāo)數(shù)據(jù)信息考慮較少。類似的還有文獻[35]提出代價敏感的TrAdaBoost算法實現(xiàn)模型遷移,該方法綜合了軟件缺陷數(shù)據(jù)的類分布不平衡以及不同誤分代價的差異,結(jié)合實例遷移TrAdaBoost和代價敏感AdaC2算法實現(xiàn)。其優(yōu)點是充分考慮到了不同誤分代價,但在應(yīng)用中代價值只能通過手工設(shè)置,不利于實踐操作。

2.3.3 基于局部模型的遷移方法

基于實例選擇和實例權(quán)值的遷移方法都是通過對源項目和目標(biāo)項目軟件模塊實例的處理從而構(gòu)建最終的全局模型??紤]到軟件系統(tǒng)的復(fù)雜性,有研究提出在實現(xiàn)軟件質(zhì)量模型時,應(yīng)該基于最小軟件模塊集合學(xué)習(xí)“專有規(guī)則”。基于局部模型的遷移方法是指根據(jù)相似性將目標(biāo)項目軟件數(shù)據(jù)分為多個簇,對每個簇選擇相應(yīng)的源項目數(shù)據(jù)構(gòu)建局部模型,然后通過多個局部模型實現(xiàn)跨項目的缺陷預(yù)測。

文獻[36]采用聚類算法形成源項目和目標(biāo)項目軟件模塊實例簇,以簇為單位選擇數(shù)據(jù)并構(gòu)建局部模型,結(jié)果表明通過局部模型實現(xiàn)的預(yù)測性能要優(yōu)于全局模型。文獻[37]也取得了同樣的結(jié)果,該文獻從38個軟件項目的92版本數(shù)據(jù)中實現(xiàn)相似項目的聚類,表明基于相似聚類簇訓(xùn)練的模型預(yù)測率較高于采用目標(biāo)項目數(shù)據(jù)的模型。但也有研究者提出雖然局部模型的預(yù)測性能要優(yōu)于全局模型,但多個局部模型性能平均后這種優(yōu)勢會抵消,仍然建議采用全局模型的方式實現(xiàn)預(yù)測[38]。

基于局部模型的跨項目預(yù)測方法結(jié)合了項目數(shù)據(jù)分布特征和實例特征,可以較好地反映目標(biāo)項目的軟件缺陷特征,通過多個局部模型進行預(yù)測可以獲得較好的性能。但是該方法在每次進行缺陷預(yù)測時都要重新進行源項目和目標(biāo)項目數(shù)據(jù)的聚類和局部模型訓(xùn)練,在實踐應(yīng)用中代價較高。

3 存在的不足及未來研究工作展望

3.1 跨項目軟件缺陷預(yù)測模型性能的提高

基于特征遷移的方法在模型構(gòu)建中對軟件缺陷信息沒有充分利用導(dǎo)致了模型性能提高有限,而基于實例遷移的方法在進行訓(xùn)練數(shù)據(jù)選擇時對模塊實例的數(shù)據(jù)分布特征考慮不足,容易造成算法運行效率低和模型預(yù)測率高但準確率低等問題。在未來的研究中應(yīng)該將數(shù)據(jù)特征和實例選擇結(jié)合起來,在充分考慮項目數(shù)據(jù)分布特征的前提下實現(xiàn)軟件模塊實例的選擇,進一步提高最終模型的預(yù)測性能。另外如果在模型構(gòu)建中可以結(jié)合目標(biāo)項目軟件模塊的缺陷預(yù)測及修復(fù)實現(xiàn)部分數(shù)據(jù)的標(biāo)注并有效利用,可以有效地避免現(xiàn)有模型方法容易造成過擬合的問題。

3.2 跨項目軟件缺陷預(yù)測模型的評價

現(xiàn)有研究文獻對跨項目軟件缺陷預(yù)測模型的評價都是采用準確率、召回率和F值等傳統(tǒng)的評價指標(biāo)。文獻[39]提出對于跨項目缺陷預(yù)測模型即使較低的準確率對軟件測試和軟件質(zhì)量保證也能起到有效的作用。在未來的研究中針對軟件缺陷預(yù)測實踐中,如何使得模型構(gòu)建成本與模型性能平衡,或者如何構(gòu)建符合實踐需求指標(biāo)的模型直接決定著跨項目的預(yù)測模型構(gòu)建方法和模型的評價,對于該問題需要進一步深入研究。

3.3 跨項目軟件缺陷數(shù)據(jù)共享庫構(gòu)建

在實現(xiàn)跨項目數(shù)據(jù)驅(qū)動的軟件缺陷預(yù)測中,數(shù)據(jù)的來源是必須考慮的問題。目前互聯(lián)網(wǎng)上已經(jīng)有許多公開的軟件缺陷數(shù)據(jù)集用于實驗研究,而且越來越多的研究者在公開自己采集處理后的軟件缺陷數(shù)據(jù)。面對大量數(shù)據(jù)如何有效的組織管理并構(gòu)建統(tǒng)一的軟件缺陷數(shù)據(jù)共享庫對實現(xiàn)跨項目軟件缺陷數(shù)據(jù)選擇和模型構(gòu)建尤為重要。

3.4 跨項目軟件缺陷知識的可解釋性。

現(xiàn)有研究中實現(xiàn)跨項目軟件缺陷預(yù)測的目的是為了對未知軟件模塊進行是否存在缺陷或者缺陷分布的預(yù)測。如果能從已有源項目軟件缺陷數(shù)據(jù)中學(xué)習(xí)到具有可解釋、可理解的規(guī)則,進行合理的組織選擇并進行可視化后用于指導(dǎo)軟件開發(fā)實踐,不但可以更加有效地利用已積累的多源項目數(shù)據(jù),而且可以找到提高軟件質(zhì)量的根本原因,對于軟件工程的實踐具有重要意義。

4 結(jié)束語

跨項目軟件缺陷預(yù)測研究是目前實證軟件工程領(lǐng)域的前沿方向。利用遷移學(xué)習(xí)技術(shù)實現(xiàn)跨項目的預(yù)測可以有效降低模型構(gòu)建成本,從而提高軟件測試效率和保證軟件質(zhì)量。文中對已有研究成果中提出的方法進行分類綜述,并指出了其存在的不足和未來的研究方向,為完善跨項目的軟件缺陷預(yù)測研究與應(yīng)用提供了理論基礎(chǔ)和技術(shù)參考。

猜你喜歡
實例預(yù)測特征
無可預(yù)測
選修2-2期中考試預(yù)測卷(A卷)
選修2-2期中考試預(yù)測卷(B卷)
選修2—2期中考試預(yù)測卷(A卷)
離散型隨機變量的分布列與數(shù)字特征
抓特征解方程組
不忠誠的四個特征
完形填空Ⅱ
完形填空Ⅰ
抓特征 猜成語