亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        跨項(xiàng)目軟件缺陷預(yù)測(cè)方法研究綜述

        2020-04-09 07:55:46劉戰(zhàn)東張海軍
        關(guān)鍵詞:軟件缺陷實(shí)例軟件

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

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

        0 引 言

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

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

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

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

        1.1 軟件缺陷預(yù)測(cè)

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

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

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

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

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

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

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

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

        2.1 跨項(xiàng)目軟件缺陷預(yù)測(cè)的數(shù)據(jù)漂移問(wèn)題

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

        圖1 跨項(xiàng)目的軟件缺陷預(yù)測(cè)流程

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

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

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

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

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

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

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

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

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

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

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

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

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

        2.3 基于實(shí)例遷移的跨項(xiàng)目軟件缺陷預(yù)測(cè)方法

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

        2.3.1 基于實(shí)例選擇的遷移方法

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

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

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

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

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

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

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

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

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

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

        3 存在的不足及未來(lái)研究工作展望

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

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

        3.2 跨項(xiàng)目軟件缺陷預(yù)測(cè)模型的評(píng)價(jià)

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

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

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

        3.4 跨項(xiàng)目軟件缺陷知識(shí)的可解釋性。

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

        4 結(jié)束語(yǔ)

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

        猜你喜歡
        軟件缺陷實(shí)例軟件
        禪宗軟件
        基于源文件可疑度的靜態(tài)軟件缺陷檢測(cè)方法研究
        軟件對(duì)對(duì)碰
        基于NPE-SVM的軟件缺陷預(yù)測(cè)模型
        開(kāi)源程序的軟件缺陷分布特征的量化分析研究
        談軟件的破解與保護(hù)
        精品(2015年9期)2015-01-23 01:36:01
        完形填空Ⅱ
        完形填空Ⅰ
        軟件缺陷管理方案分析
        豐富多彩的Android軟件
        无码尹人久久相蕉无码| 欧美色图中文字幕| 亚洲网站免费看| 国产颜射视频在线播放| 麻豆国产成人av高清在线| 黑人老外3p爽粗大免费看视频| 久久精品国产亚洲av麻豆色欲 | 亚洲午夜精品a区| 二区三区视频在线观看| 极品尤物精品在线观看| 久久久久亚洲av成人片| 国产一区二区三区在线观看免费 | 一本无码av一区二区三区| 久久中文字幕久久久久91| 人妻秘书被社长浓厚接吻| 国产精品亚洲一区二区三区| 久久中文字幕无码专区| 国产高清a| 久久精品人妻中文av| 色婷婷av一区二区三区久久| 柠檬福利第一导航在线| 亚洲中文字幕无码中字| 国产精品色内内在线播放| 人妻系列中文字幕av| 丰满女人猛烈进入视频免费网站| 国产偷国产偷精品高清尤物| 四虎成人精品无码永久在线| 91精品国产91久久久无码色戒| 亚洲免费一区二区av| 中国国产不卡视频在线观看| 九九精品国产亚洲av日韩| 全免费a级毛片免费看| av一区二区三区观看| 凹凸国产熟女精品视频app| 永久黄网站色视频免费| 日本一区二区视频免费观看| 日本男人精品一区二区| 鲁鲁鲁爽爽爽在线视频观看| 97成人精品| 在线视频一区二区在线观看| 国产毛片视频一区二区|