亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種智能手機應(yīng)用開發(fā)中的代碼缺陷預(yù)測方法與流程

文檔序號:12123668閱讀:348來源:國知局
一種智能手機應(yīng)用開發(fā)中的代碼缺陷預(yù)測方法與流程

本發(fā)明涉及智能手機的應(yīng)用程序開發(fā)領(lǐng)域,具體為一種智能手機應(yīng)用開發(fā)中的代碼缺陷預(yù)測方法,該方法基于海量的開源代碼和缺陷信息預(yù)測智能手機應(yīng)用代碼單元是否包含缺陷,從而快速定位缺陷代碼單元,有效提高智能手機應(yīng)用缺陷修復(fù)效率和代碼質(zhì)量。



背景技術(shù):

隨著科技的發(fā)展,智能手機已經(jīng)成為人們互相聯(lián)系、娛樂、了解時事的重要工具,對現(xiàn)代人來說是必不可少的。隨之而來的,智能手機應(yīng)用的數(shù)量也飛快增加,功能逐漸多樣化。至2016年為止,智能手機應(yīng)用數(shù)量已超300萬,每年還有大量的智能手機應(yīng)用登陸應(yīng)用商店,智能手機應(yīng)用的開發(fā)者總數(shù)已超38.8萬。智能手機應(yīng)用已經(jīng)與社會生活的方方面面關(guān)聯(lián)起來。

當(dāng)前智能手機系統(tǒng)的主流是android和ios,智能手機應(yīng)用主要是基于android和ios平臺開發(fā)的,一般用面向?qū)ο笳Z言(如Java、C++和Objective-C等)開發(fā)。不同于傳統(tǒng)軟件,像Firefox,eclipse等,大多數(shù)智能手機應(yīng)用本身代碼量不大,并且一般由比較小的團隊及開發(fā)經(jīng)驗不充足的人員開發(fā)。同時,相對于傳統(tǒng)軟件應(yīng)用來說,智能手機應(yīng)用通常具有更多版本。為了增強競爭性,吸引更多用戶,開發(fā)者持續(xù)更新應(yīng)用并發(fā)布新版本,增加新功能。有些智能手機應(yīng)用版本更新超過200次。當(dāng)前智能手機應(yīng)用競爭很激烈,許多智能手機應(yīng)用有相似的功能,例如在google play上光天氣預(yù)報的智能手機應(yīng)用就有超過250個,在app sotre上與天氣相關(guān)的智能手機應(yīng)用也超過150個。因此,智能手機用戶對質(zhì)量問題更加缺少容忍性。智能手機應(yīng)用代碼質(zhì)量和缺陷修復(fù)效率至關(guān)重要。

智能手機應(yīng)用在開發(fā)和維護過程中不可避免地產(chǎn)生軟件缺陷。代碼審查是開發(fā)調(diào)試過程中一件耗時耗力的工作。目前,缺陷代碼查找以經(jīng)驗判定為主,多利用交互式的調(diào)試工具,需要大量人工干預(yù),人工定位,耗費大量時間和成本,依賴個人經(jīng)驗且不可重復(fù)。



技術(shù)實現(xiàn)要素:

本發(fā)明所要解決的技術(shù)問題是提供一種智能手機應(yīng)用開發(fā)中的代碼缺陷預(yù)測方法,該方法計算簡單,通用性和擴展性強,可以有效定位缺陷代碼,提高缺陷修復(fù)效率。

為實現(xiàn)上述目的,本發(fā)明采用如下的步驟:

1)整理代碼單元,區(qū)分標(biāo)注集和目標(biāo)集,定義特征指標(biāo);

2)基于特征指標(biāo)提取特征向量,并對標(biāo)注集代碼單元賦予權(quán)重;

3)訓(xùn)練帶權(quán)重分類器,計算目標(biāo)集代碼單元有缺陷概率和無缺陷概率;

4)采用自學(xué)習(xí)策略校準(zhǔn)預(yù)測結(jié)果,重復(fù)上述步驟,直到前后兩次計算的預(yù)測結(jié)果近似或達到給定的迭代次數(shù);

5)輸出目標(biāo)集中高懷疑率的代碼單元。

上述步驟1)中整理代碼單元,定義特征指標(biāo),提取特征向量的處理流程是:首先整理目標(biāo)智能手機應(yīng)用的代碼單元作為目標(biāo)集,目標(biāo)集為目標(biāo)智能手機應(yīng)用中未標(biāo)注的代碼單元,所述代碼單元對于面向?qū)ο笳Z言是指面向?qū)ο蟮念愇募?,對于面向過程語言則指單個代碼文件;

整理其他智能手機應(yīng)用的代碼單元和目標(biāo)智能手機應(yīng)用歷史版本的代碼單元形成標(biāo)注集接著選擇其他智能手機應(yīng)用;其他智能手機應(yīng)用的選取一般優(yōu)先考慮目標(biāo)智能手機應(yīng)用開發(fā)團隊人員之前開發(fā)過的應(yīng)用,以及與目標(biāo)智能手機應(yīng)用功能類似的其他智能手機應(yīng)用,其次可以考慮相同分類目錄下(例如游戲、社交通訊、便捷生活等)的智能手機應(yīng)用,對于代碼單元類標(biāo)的獲取,代碼單元類標(biāo)是指代碼單元是否包含缺陷,是從歷史修復(fù)記錄和缺陷報告中識別有缺陷代碼單元,有缺陷類標(biāo)為1,其余的為無缺陷代碼單元,無缺陷類標(biāo)為0;由這些代碼單元形成標(biāo)注集。

然后定義代碼單元的特征指標(biāo),主要從智能手機應(yīng)用的代碼和開發(fā)過程兩方面來考慮。共有21個特征指標(biāo),定義如下:

表1代碼單元特征指標(biāo)

上述步驟2)中對標(biāo)注集代碼單元賦予權(quán)重的處理流程是:首先,對其他智能手機應(yīng)用的代碼單元賦予權(quán)重,具體分為兩步:

1)計算代碼單元適應(yīng)度

對于目標(biāo)智能手機應(yīng)用,每一個代碼單元可表示為特征向量xi={ai1,ai2,…ai21},其中i表示代碼單元的序號。目標(biāo)智能手機應(yīng)用單個特征指標(biāo)的分布可以用指標(biāo)的均值和標(biāo)準(zhǔn)差來表示:

其中,i表示代碼單元的序號,j表示特征指標(biāo)的序號,m表示目標(biāo)智能手機應(yīng)用的代碼單元個數(shù)。

對于其他智能手機應(yīng)用,其代碼單元的適應(yīng)度計算規(guī)則如下:

其中,i表示代碼單元的序號,j表示特征指標(biāo)的序號,h(aij)為1,如果|aij-uij|<3δi,否則h(aij)為0,aij表示代碼單元i的第j個屬性,k表示特征指標(biāo)個數(shù)(即k=21)。

2)計算代碼單元權(quán)重

基于代碼單元的適應(yīng)度,其權(quán)重計算公式如下:

wi=Si/k(k-Si+1) (4)

其中,i表示代碼單元序號,k表示特征指標(biāo)個數(shù)(即k=21),Si表示代碼單元i的適應(yīng)度。wi取值范圍在0到1之間。

然后,對目標(biāo)智能手機應(yīng)用歷史版本的代碼單元進行權(quán)重賦值,如果沒有歷史版本數(shù)據(jù),則不考慮。

歷史版本代碼單元的權(quán)重計算方法如下:

wi=e1-d (5)

其中,i表示代碼單元序號,d表示目標(biāo)智能手機應(yīng)用歷史版本距當(dāng)前開發(fā)版本的版本距離。目標(biāo)智能手機應(yīng)用歷史版本距離當(dāng)前開發(fā)版本距離越大,權(quán)重越小。wi范圍在0到1之間。若只相隔1個版本,則wi值為1。

上述步驟3)訓(xùn)練帶權(quán)重分類器的處理流程是:輸入帶權(quán)重的所有已標(biāo)注類標(biāo)的其他智能手機應(yīng)用代碼單元和目標(biāo)智能手機應(yīng)用代碼單元的特征向量,訓(xùn)練帶權(quán)重分類器,優(yōu)選transfer bayse分類器,對于目標(biāo)集代碼單元,將特征向量提交給訓(xùn)練好的分類器,計算目標(biāo)集代碼單元有缺陷的概率P(y=1)以及無缺陷的概率P(y=0)。

對目標(biāo)集代碼單元打上標(biāo)簽,如果P(y=1)>P(y=0),則預(yù)測代碼單元有缺陷,類標(biāo)為1,反之,預(yù)測代碼單元無缺陷,類標(biāo)為0。

上述步驟4)采用自學(xué)習(xí)策略校準(zhǔn)預(yù)測結(jié)果的處理流程是:計算目標(biāo)集代碼單元的置信度η=|P(y=1)-P(y=0)|,選取置信度最高的10%代碼單元,將其加入到標(biāo)注集。

新加入標(biāo)注集的目標(biāo)智能手機應(yīng)用代碼單元的權(quán)重設(shè)置如下(設(shè)為最高權(quán)重):

wi=1 (6)

其中,i表示代碼單元的序號。

最后,采用新的標(biāo)注集和目標(biāo)集,重新訓(xùn)練帶權(quán)重分類器,直到前后兩次預(yù)測結(jié)果近似,即預(yù)測標(biāo)簽出現(xiàn)偏差的代碼單元比例不超過ε(優(yōu)選值3%),或者迭代次數(shù)達到T次(優(yōu)選值30)為止。

上述步驟5)輸出高懷疑率的代碼單元的處理流程是:將預(yù)測結(jié)果以r=P(y=1)-P(y=0)值為標(biāo)準(zhǔn),從大到小排列。排在前列的代碼單元將視為可能存在缺陷的代碼單元,由開發(fā)者重點關(guān)注和檢查。

本發(fā)明方法借鑒其他智能手機應(yīng)用和目標(biāo)智能手機應(yīng)用歷史版本數(shù)據(jù),在代碼單元層面定義特征指標(biāo),采用帶權(quán)重分類器訓(xùn)練學(xué)習(xí),同時采用自學(xué)習(xí)策略校準(zhǔn)預(yù)測結(jié)果,在目標(biāo)智能手機應(yīng)用歷史數(shù)據(jù)較少時,也可以有效訓(xùn)練分類器,快速準(zhǔn)確定位缺陷代碼;適用于智能手機應(yīng)用的開發(fā)和維護。帶權(quán)重的分類器在具有不同權(quán)重的實例訓(xùn)練集上訓(xùn)練,使權(quán)重較大的實例有更大的概率分類準(zhǔn)確或者具有更大的訓(xùn)練權(quán)重。自學(xué)習(xí)策略采用半監(jiān)督迭代式訓(xùn)練方法,將前一輪迭代的結(jié)果應(yīng)用到下一輪訓(xùn)練中,從而提高分類準(zhǔn)確率。本發(fā)明方法計算簡單,通用性和擴展性強,適用于不同類型的編程語言;對不同規(guī)模智能手機應(yīng)用,能快速查找缺陷代碼單元,有效提高智能手機應(yīng)用缺陷修復(fù)效率和代碼質(zhì)量。因此,本發(fā)明的目標(biāo)是設(shè)計一種用于智能手機應(yīng)用開發(fā)的缺陷預(yù)測方法,基于智能手機應(yīng)用的開發(fā)過程和代碼特征,來輔助缺陷查找和修正。

附圖說明

圖1是智能手機應(yīng)用開發(fā)中代碼缺陷預(yù)測方法的總體框架。

圖2是訓(xùn)練帶權(quán)重分類器的流程圖。

圖3是應(yīng)用自學(xué)習(xí)策略完成預(yù)測結(jié)果校準(zhǔn)的流程圖。

具體實施方式

圖1所示是智能手機應(yīng)用開發(fā)中代碼缺陷預(yù)測方法的總體框架。方法的輸入是其他智能手機應(yīng)用的源代碼文件,歷史修復(fù)記錄和缺陷報告,目標(biāo)智能手機應(yīng)用的源代碼文件,目標(biāo)智能手機應(yīng)用的歷史修復(fù)記錄和缺陷報告。方法的輸出是按照缺陷概率從大到小排序的代碼單元。本發(fā)明方法包含以下五個步驟:1)整理代碼單元,區(qū)分標(biāo)注集和目標(biāo)集,定義特征指標(biāo),提取特征向量;2)基于特征向量對標(biāo)注集代碼單元賦予權(quán)重;3)訓(xùn)練帶權(quán)重分類器,計算目標(biāo)集代碼單元有缺陷概率和無缺陷概率;4)采用自學(xué)習(xí)策略校準(zhǔn)預(yù)測結(jié)果,重復(fù)上述步驟,直到前后兩次計算的預(yù)測結(jié)果近似或達到給定的迭代次數(shù);5)輸出目標(biāo)集中高懷疑率的代碼單元。

本發(fā)明方法的第一個步驟是整理代碼單元,定義特征指標(biāo),提取特征向量。目前,智能手機應(yīng)用主要由面向?qū)ο笳Z言(例如Java、C++和Objective-C等)開發(fā),代碼單元一般指面向?qū)ο蟮念愇募?,如果用面向過程語言(例如C等)開發(fā),則指單個代碼文件。

首先整理目標(biāo)智能手機應(yīng)用的代碼單元作為目標(biāo)集,其中代碼單元指單個代碼文件,通常對應(yīng)一個類的定義;接著選擇其他智能手機應(yīng)用:為了使其他智能手機應(yīng)用的代碼單元分布特征與目標(biāo)智能手機應(yīng)用的分布近似。其他智能手機應(yīng)用的選取一般優(yōu)先考慮目標(biāo)智能手機應(yīng)用開發(fā)團隊人員之前開發(fā)過的應(yīng)用,以及與目標(biāo)智能手機應(yīng)用功能類似的其他智能手機應(yīng)用,其次可以考慮相同分類目錄下(例如游戲、社交通訊、便捷生活等)的智能手機應(yīng)用。

然后定義代碼單元的特征指標(biāo),指標(biāo)將用于其他智能手機應(yīng)用代碼單元的權(quán)重設(shè)置以及訓(xùn)練預(yù)測模型。下表1所示為定義的代碼單元特征指標(biāo):

表1代碼單元特征指標(biāo)

以上21個指標(biāo)組成代碼單元的特征指標(biāo),主要從智能手機應(yīng)用的代碼和開發(fā)過程兩方面來考慮。

對于代碼單元類標(biāo)的獲取,可以從歷史修復(fù)記錄和缺陷報告中識別有缺陷代碼單元,其余的為無缺陷代碼單元(有缺陷類標(biāo)為1,無缺陷類標(biāo)為0)。這些代碼單元形成標(biāo)注集。標(biāo)注集包含其他智能手機應(yīng)用的代碼單元和目標(biāo)智能手機應(yīng)用歷史版本的代碼單元,目標(biāo)集為目標(biāo)智能手機應(yīng)用未標(biāo)注的代碼單元。

本發(fā)明方法的第二個步驟是基于特征向量對標(biāo)注集代碼單元賦予權(quán)重,包含對其他智能手機應(yīng)用的代碼單元以及目標(biāo)智能手機應(yīng)用歷史版本代碼單元賦予權(quán)重。

首先,對其他智能手機應(yīng)用的代碼單元賦予權(quán)重,具體分為兩步:

1)計算代碼單元適應(yīng)度

對于目標(biāo)智能手機應(yīng)用,每一個代碼單元可表示為特征向量xi={ai1,ai2,…ai21},其中i表示代碼單元的序號。目標(biāo)智能手機應(yīng)用單個特征指標(biāo)的分布可以用指標(biāo)的均值和標(biāo)準(zhǔn)差來表示:

其中,i表示代碼單元的序號,j表示特征指標(biāo)的序號,m表示目標(biāo)智能手機應(yīng)用的代碼單元個數(shù),aij表示代碼單元i的第j個屬性。

對于其他智能手機應(yīng)用,其代碼單元的適應(yīng)度計算規(guī)則如下:

其中,i表示代碼單元的序號,j表示特征指標(biāo)的序號,h(aij)為1,如果|aij-uij|<3δi,否則h(aij)為0,aij表示代碼單元i的第j個屬性,k表示特征指標(biāo)個數(shù)(即k=21)。

2)計算代碼單元權(quán)重

基于代碼單元的適應(yīng)度,其權(quán)重計算公式如下:

wi=Si/k(k-Si+1) (4)

其中,i表示代碼單元序號,k表示特征指標(biāo)個數(shù)(即k=21),Si表示代碼單元i的適應(yīng)度。wi取值范圍在0到1之間。

然后,對目標(biāo)智能手機應(yīng)用歷史版本的代碼單元進行權(quán)重賦值,如果沒有歷史版本數(shù)據(jù),則不考慮。

歷史版本代碼單元的權(quán)重計算方法如下:

wi=e1-d (5)

其中,i表示代碼單元序號,d表示目標(biāo)智能手機應(yīng)用歷史版本距當(dāng)前開發(fā)版本的版本距離。目標(biāo)智能手機應(yīng)用歷史版本距離當(dāng)前開發(fā)版本距離越大,權(quán)重越小。wi范圍在0到1之間。若只相隔1個版本,則wi值為1。

本方明方法的第三個步驟是基于帶權(quán)重的標(biāo)注集訓(xùn)練帶權(quán)重分類器,計算目標(biāo)集代碼單元有缺陷概率和無缺陷概率。處理流程如圖2所示。

輸入帶權(quán)重的所有已標(biāo)注類標(biāo)的其他智能手機應(yīng)用代碼單元和目標(biāo)智能手機應(yīng)用代碼單元的特征向量,訓(xùn)練帶權(quán)重分類器,優(yōu)選transfer bayse分類器,對于目標(biāo)集代碼單元,將特征向量提交給訓(xùn)練好的分類器,計算目標(biāo)集代碼單元有缺陷的概率P(y=1)以及無缺陷的概率P(y=0)。

對目標(biāo)集代碼單元打上標(biāo)簽,如果P(y=1)>P(y=0),則預(yù)測代碼單元有缺陷,類標(biāo)為1,反之,預(yù)測代碼單元無缺陷,類標(biāo)為0。

本方明方法的第四個步驟是采用自學(xué)習(xí)策略,迭代一定次數(shù),實現(xiàn)對目標(biāo)集代碼單元的缺陷預(yù)測。處理流程如圖3所示。

計算目標(biāo)集代碼單元的置信度η=|P(y=1)-P(y=0)|,選取置信度最高的10%代碼單元,將其加入到標(biāo)注集。

新加入標(biāo)注集的目標(biāo)智能手機應(yīng)用代碼單元的權(quán)重設(shè)置如下(設(shè)為最高權(quán)重):

wi=1 (6)

其中,i表示代碼單元的序號。

最后,采用新的標(biāo)注集和目標(biāo)集,重復(fù)步驟3),直到前后兩次預(yù)測結(jié)果近似,即預(yù)測標(biāo)簽出現(xiàn)偏差的代碼單元比例不超過ε(優(yōu)選值3%),或者迭代次數(shù)達到T次(優(yōu)選值30)為止。

本方明方法的第五個步驟是輸出目標(biāo)集中高懷疑率的代碼單元,將代碼單元按有缺陷概率大小從大到小排列。

將預(yù)測結(jié)果以r=P(y=1)-P(y=0)值為標(biāo)準(zhǔn),從大到小排列。排在前列的代碼單元將視為可能存在缺陷的代碼單元,由開發(fā)者重點關(guān)注和檢查。

本發(fā)明方法有效利用了其他智能手機應(yīng)用和目標(biāo)智能手機應(yīng)用歷史版本數(shù)據(jù),在代碼單元層面定義特征指標(biāo),并根據(jù)其他智能手機應(yīng)用對目標(biāo)智能手機應(yīng)用的適應(yīng)度,對其他智能手機應(yīng)用代碼單元實例賦予不同的權(quán)重,使其他智能手機應(yīng)用的代碼單元和目標(biāo)智能手機應(yīng)用代碼單元分布相似,在目標(biāo)智能手機應(yīng)用歷史數(shù)據(jù)較少時,也可以有效訓(xùn)練分類器,快速準(zhǔn)確定位缺陷代碼。本發(fā)明方法能夠?qū)τ腥毕莸拇a單元進行有效預(yù)測,適用于智能手機應(yīng)用的開發(fā)和維護。本發(fā)明方法計算簡單,通用性和擴展性強,適用于不同類型的編程語言;對不同規(guī)模智能手機應(yīng)用,能快速查找缺陷代碼單元,有效提高智能手機應(yīng)用缺陷修復(fù)效率和代碼質(zhì)量。

本發(fā)明方法的具體應(yīng)用途徑很多,以上所述僅是本發(fā)明的優(yōu)選實施方式。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進,這些改進也應(yīng)視為本發(fā)明的保護范圍。本發(fā)明具體應(yīng)用途徑很多,以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進,這些改進也應(yīng)視為本發(fā)明的保護范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1