1.一種智能手機(jī)應(yīng)用開發(fā)中的代碼缺陷預(yù)測方法,其特征在于包括以下步驟:
1)整理代碼單元,區(qū)分標(biāo)注集和目標(biāo)集,定義特征指標(biāo);
2)基于特征指標(biāo)提取特征向量,并對標(biāo)注集代碼單元賦予權(quán)重;
3)訓(xùn)練帶權(quán)重分類器,計(jì)算目標(biāo)集代碼單元有缺陷概率和無缺陷概率;
4)采用自學(xué)習(xí)策略校準(zhǔn)預(yù)測結(jié)果,重復(fù)上述步驟,直到前后兩次計(jì)算的預(yù)測結(jié)果近似或達(dá)到給定的迭代次數(shù);
5)輸出目標(biāo)集中高懷疑率的代碼單元。
2.根據(jù)權(quán)利要求1所述的智能手機(jī)應(yīng)用開發(fā)中的代碼缺陷預(yù)測方法,其特征在于,上述步驟1)的流程是:首先整理目標(biāo)智能手機(jī)應(yīng)用的代碼單元作為目標(biāo)集,目標(biāo)集為目標(biāo)智能手機(jī)應(yīng)用中未標(biāo)注的代碼單元,所述代碼單元對于面向?qū)ο笳Z言是指面向?qū)ο蟮念愇募?,對于面向過程語言則指單個代碼文件;
整理其他智能手機(jī)應(yīng)用的代碼單元和目標(biāo)智能手機(jī)應(yīng)用歷史版本的代碼單元形成標(biāo)注集;其中的其他智能手機(jī)應(yīng)用的選取原則為優(yōu)先考慮目標(biāo)智能手機(jī)應(yīng)用開發(fā)團(tuán)隊(duì)人員之前開發(fā)過的應(yīng)用,以及與目標(biāo)智能手機(jī)應(yīng)用功能類似的智能手機(jī)應(yīng)用,其次考慮相同分類目錄下的智能手機(jī)應(yīng)用,對于代碼單元類標(biāo)的獲取,是從歷史修復(fù)記錄和缺陷報告中識別有缺陷代碼單元,有缺陷類標(biāo)為1,其余的為無缺陷代碼單元,無缺陷類標(biāo)為0;由這些代碼單元形成標(biāo)注集;
然后從智能手機(jī)應(yīng)用的代碼和開發(fā)過程兩方面來定義代碼單元的特征指標(biāo)。
3.根據(jù)權(quán)利要求2所述的智能手機(jī)應(yīng)用開發(fā)中的代碼缺陷預(yù)測方法,其特征在于,上述特征指標(biāo)共有21個,定義如下:
4.根據(jù)權(quán)利要求1、2或3所述的智能手機(jī)應(yīng)用開發(fā)中的代碼缺陷預(yù)測方法,其特征在于,步驟2)基于特征向量對標(biāo)注集代碼單元賦予權(quán)重,包含對其他智能手機(jī)應(yīng)用的代碼單元以及目標(biāo)智能手機(jī)應(yīng)用歷史版本代碼單元賦予權(quán)重;
首先,對其他智能手機(jī)應(yīng)用的代碼單元賦予權(quán)重,具體分為兩步:
2.1)計(jì)算代碼單元適應(yīng)度
對于目標(biāo)智能手機(jī)應(yīng)用,每一個代碼單元表示為特征向量xi={ai1,ai2,…ai21},其中i表示代碼單元的序號,目標(biāo)智能手機(jī)應(yīng)用單個特征指標(biāo)的分布用指標(biāo)的均值和標(biāo)準(zhǔn)差來表示:
其中,i表示代碼單元的序號,j表示特征指標(biāo)的序號,m表示目標(biāo)智能手機(jī)應(yīng)用的代碼單元個數(shù),aij表示代碼單元i的第j個屬性;
對于其他智能手機(jī)應(yīng)用,其代碼單元的適應(yīng)度計(jì)算規(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.2)計(jì)算代碼單元權(quán)重
基于代碼單元的適應(yīng)度,其權(quán)重計(jì)算公式如下:
wi=Si/k(k-Si+1) (4)
其中,i表示代碼單元序號,k表示特征指標(biāo)個數(shù),即k=21,Si表示代碼單元i的適應(yīng)度,wi取值范圍在0到1之間;
然后,對目標(biāo)智能手機(jī)應(yīng)用歷史版本的代碼單元進(jìn)行權(quán)重賦值,如果沒有歷史版本數(shù)據(jù),則不考慮;
歷史版本代碼單元的權(quán)重計(jì)算方法如下:
wi=e1-d (5)
其中,i表示代碼單元序號,d表示目標(biāo)智能手機(jī)應(yīng)用歷史版本距當(dāng)前開發(fā)版本的版本距離,目標(biāo)智能手機(jī)應(yīng)用歷史版本距離當(dāng)前開發(fā)版本距離越大,權(quán)重越小,wi范圍在0到1之間,若只相隔1個版本,則wi值為1。
5.根據(jù)權(quán)利要求4所述的智能手機(jī)應(yīng)用開發(fā)中的代碼缺陷預(yù)測方法,其特征在于,步驟3)的流程為:輸入帶權(quán)重的所有已標(biāo)注類標(biāo)的其他智能手機(jī)應(yīng)用代碼單元和目標(biāo)智能手機(jī)應(yīng)用代碼單元的特征向量,訓(xùn)練帶權(quán)重分類器,對于目標(biāo)集代碼單元,將特征向量提交給訓(xùn)練好的分類器,計(jì)算目標(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。
6.根據(jù)權(quán)利要求5所述的智能手機(jī)應(yīng)用開發(fā)中的代碼缺陷預(yù)測方法,其特征在于,步驟4)的流程為:計(jì)算目標(biāo)集代碼單元的置信度η=|P(y=1)-P(y=0)|,選取置信度最高的10%代碼單元,將其加入到標(biāo)注集;新加入標(biāo)注集的目標(biāo)智能手機(jī)應(yīng)用代碼單元的權(quán)重設(shè)為最高權(quán)重,其設(shè)置如下:
wi=1 (6)
其中,i表示代碼單元的序號。
最后,采用新的標(biāo)注集和目標(biāo)集,重復(fù)步驟3),直到前后兩次預(yù)測結(jié)果近似,即預(yù)測標(biāo)簽出現(xiàn)偏差的代碼單元比例不超過ε,優(yōu)選值3%,或者迭代次數(shù)達(dá)到T次,優(yōu)選值30為止。
7.根據(jù)權(quán)利要求6所述的智能手機(jī)應(yīng)用開發(fā)中的代碼缺陷預(yù)測方法,其特征在于,步驟5)的流程為:輸出目標(biāo)集中高懷疑率的代碼單元,將預(yù)測結(jié)果以r=P(y=1)-P(y=0)值為標(biāo)準(zhǔn),從大到小排列,排在前列的代碼單元將視為可能存在缺陷的代碼單元,由開發(fā)者重點(diǎn)關(guān)注和檢查。