基于Logistic模型的軟件故障預(yù)測系統(tǒng)及方法
【專利摘要】本發(fā)明公開了一種基于Logistic模型的軟件故障預(yù)測系統(tǒng)及方法,所述系統(tǒng)包括三個(gè)模塊:測試周期故障管理模塊、Logistic模型度量模塊、質(zhì)量分析與評價(jià)模塊。所述方法如下:采用測試周期故障管理模塊把所述系統(tǒng)測試過程按照一定的周期進(jìn)行劃分,采用Logistic模型度量模塊度量出每個(gè)周期內(nèi)發(fā)現(xiàn)的故障數(shù);利用Logistic模型計(jì)算出軟件中含有的故障總數(shù)和下一個(gè)測試周期發(fā)現(xiàn)的故障數(shù);采用質(zhì)量分析與評價(jià)模塊用軟件中已經(jīng)發(fā)現(xiàn)的故障數(shù)與軟件含有的故障總數(shù)的比值作為軟件的可信度,用于判斷軟件是否達(dá)到了發(fā)布要求;通過上述三個(gè)步驟計(jì)算出軟件的故障總數(shù),進(jìn)而對軟件是否需要繼續(xù)進(jìn)行測試做出判斷,并用于下一周期的質(zhì)量評價(jià)。
【專利說明】基于Logistic模型的軟件故障預(yù)測系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種軟件的故障預(yù)測技術(shù),更具體的說是利用Logistic模型對軟件 含有的故障總數(shù)以及在下一個(gè)測試周期發(fā)現(xiàn)的故障數(shù)進(jìn)行預(yù)測,進(jìn)而評估最終的軟件產(chǎn)品 是否達(dá)到了規(guī)定的質(zhì)量要求的技術(shù)。
【背景技術(shù)】
[0002] 軟件在系統(tǒng)測試過程中會(huì)不斷地發(fā)現(xiàn)故障,故障的解決又可能會(huì)引入新的問題, 如果一個(gè)版本測試的不夠充分就發(fā)布出去,可能會(huì)導(dǎo)致版本的質(zhì)量太低,給使用者造成損 失;如果對一個(gè)版本測試的時(shí)間過于充分,就會(huì)導(dǎo)致所謂的過度測試,造成測試資源的浪 費(fèi)。那么軟件在測試過程中的質(zhì)量如何進(jìn)行評價(jià)?什么時(shí)候發(fā)布才能夠滿足對質(zhì)量的要 求?這個(gè)問題的解決就依賴于軟件的故障預(yù)測技術(shù)。
[0003] 軟件故障預(yù)測技術(shù)是一種在軟件發(fā)布之前對軟件中尚未發(fā)現(xiàn)的故障進(jìn)行估計(jì)的 技術(shù),可以幫助測試人員在軟件發(fā)布之前及時(shí)調(diào)整測試策略,發(fā)現(xiàn)更多故障,進(jìn)而減少軟件 維護(hù)成本,有效提高軟件的質(zhì)量。目前較有影響的故障預(yù)測方法有基于貝葉斯方法的故障 預(yù)測模型和基于隨機(jī)森林算法的故障預(yù)測模型。
[0004] 基于貝葉斯方法的預(yù)測模型包括貝葉斯網(wǎng)絡(luò)和樸素貝葉斯分類器,樸素貝葉斯分 類器的基礎(chǔ)假設(shè)為:給定目標(biāo)值、屬性之間相互條件獨(dú)立和每個(gè)實(shí)例X由屬性值的特征向 量表示。目標(biāo)函數(shù)根據(jù)現(xiàn)有的集合V中的可能取值進(jìn)行取值,根據(jù)一系列得到目標(biāo)函數(shù)的 訓(xùn)練樣本集以及新實(shí)例的特征向量來預(yù)測新實(shí)例的目標(biāo)值。Menzies根據(jù)樸素貝葉斯算法 與決策樹算法的預(yù)測模型進(jìn)行分類性能對比,對數(shù)據(jù)采取對數(shù)處理后實(shí)驗(yàn)結(jié)果顯示樸素貝 葉斯算法構(gòu)建的模型比決策樹算法構(gòu)建的模型具有更好的分類性能。貝葉斯網(wǎng)絡(luò)不確定性 處理問題的能力很強(qiáng)大,可以高效地進(jìn)行多元信息的融合與表達(dá),已經(jīng)被廣泛地用于軟件 故障預(yù)測。Fenton等人基于貝葉斯網(wǎng)絡(luò)提出在不同生命模型中合適的軟件故障預(yù)測模型以 及遺留故障預(yù)測模型,對貝葉斯網(wǎng)絡(luò)在生命周期早期預(yù)測故障的效果進(jìn)行了分析。
[0005] 2001年LEO Breiman提出了隨機(jī)森林(Random Forest, RF)算法,森林中決策樹 的訓(xùn)練樣本是對原始訓(xùn)練樣本進(jìn)行隨機(jī)采樣產(chǎn)生的,在隨機(jī)森林中決策樹內(nèi)部節(jié)點(diǎn)的候 選分割屬性集是所有屬性的一個(gè)非空真子集,該子集是從所有特征屬性中隨機(jī)選取一定數(shù) 目的屬性作為候選屬性集,使用屬性分裂衡量函數(shù)來對候選屬性集中屬性的分類能力進(jìn)行 判別,最終選取最優(yōu)分裂屬性。隨機(jī)森林算法的故障預(yù)測通過計(jì)算軟件項(xiàng)目的多個(gè)屬性集 的值來度量軟件項(xiàng)目,對訓(xùn)練數(shù)據(jù)集進(jìn)行平衡化處理,構(gòu)造隨機(jī)森林模型時(shí)根據(jù)模型的預(yù) 測準(zhǔn)確率以及查全率來篩選符合性能指標(biāo)的預(yù)測模型。
[0006] 上述軟件故障預(yù)測的基本原理是如果當(dāng)前正在開發(fā)的模塊與之前已開發(fā)好的某 模塊具有相似的軟件質(zhì)量屬性則說明當(dāng)前的軟件模塊與之前的已經(jīng)測試過的模塊具有相 似的故障傾向。因此軟件故障預(yù)測中要用到之前開發(fā)的軟件模塊的故障記錄來對當(dāng)前的模 塊進(jìn)行預(yù)測。這種故障預(yù)測方法有兩個(gè)問題:一、軟件模塊的相似度不容易度量,如果找不 到相似的模塊,則無法進(jìn)行故障預(yù)測;二、由于開發(fā)人員的技術(shù)進(jìn)步,相似的模塊可能表現(xiàn) 出不同的故障趨勢,導(dǎo)致預(yù)測失效。
【發(fā)明內(nèi)容】
[0007] 有鑒于此,本發(fā)明解決的技術(shù)問題在于提供一種基于Logistic模型的軟件故障 預(yù)測系統(tǒng)及方法,該方法不依賴于其他的軟件模塊,把系統(tǒng)測試過程按照一定的周期進(jìn)行 劃分,度量出每個(gè)周期內(nèi)發(fā)現(xiàn)的故障數(shù),然后以此為輸入利用Logistic模型計(jì)算軟件中含 有的故障總數(shù)及下一個(gè)測試周期發(fā)現(xiàn)的故障數(shù),用軟件已經(jīng)發(fā)現(xiàn)的故障數(shù)與軟件含有的故 障總數(shù)的比值作為軟件的可信度,如果軟件沒有達(dá)到要求的可信度,則需要繼續(xù)測試下去; 如果軟件已經(jīng)達(dá)到了要求的可信度,則無需繼續(xù)測試,可以發(fā)布。
[0008] 基于Logistic模型的軟件故障預(yù)測系統(tǒng),包括三個(gè)模塊:測試周期故障管理模 塊、Logistic模型度量模塊、質(zhì)量分析與評價(jià)模塊;
[0009] 測試周期故障管理模塊:劃分測試周期,并統(tǒng)計(jì)各個(gè)測試周期內(nèi)發(fā)現(xiàn)的故障數(shù),該 模塊同時(shí)負(fù)責(zé)可信度預(yù)期結(jié)果的輸入;
[0010] Logistic模型度量模塊:負(fù)責(zé)Logistic模型的迭代算法,計(jì)算出軟件中含有的故 障總數(shù)和下一個(gè)測試周期預(yù)計(jì)發(fā)現(xiàn)的故障數(shù);
[0011] 質(zhì)量分析與評價(jià)模塊:負(fù)責(zé)軟件可信度的計(jì)算,并根據(jù)計(jì)算結(jié)果對軟件是否可以 發(fā)布做出判斷;通過比較Logistic模型中計(jì)算的下一個(gè)測試周期的故障數(shù)和實(shí)際測試中 發(fā)現(xiàn)的故障數(shù),對一個(gè)測試周期的質(zhì)量進(jìn)行評價(jià),輸出評價(jià)結(jié)果。
[0012] 基于Logistic模型的軟件故障預(yù)測系統(tǒng)的預(yù)測方法包括如下步驟:
[0013] A、采用測試周期故障管理模塊把所述系統(tǒng)測試過程按照一定的周期進(jìn)行劃分,并 度量
[0014] 出每個(gè)周期內(nèi)發(fā)現(xiàn)的故障數(shù);
[0015] B、利用Logistic模型計(jì)算出軟件中含有的故障總數(shù)和下一個(gè)測試周期發(fā)現(xiàn)的故 障數(shù);
[0016] C、采用質(zhì)量分析與評價(jià)模塊用軟件中已經(jīng)發(fā)現(xiàn)的故障數(shù)與軟件含有的故障總數(shù) 的比值作為軟件的可信度,用于判斷軟件是否達(dá)到了發(fā)布要求;
[0017] 通過上述三個(gè)步驟計(jì)算出軟件的故障總數(shù),進(jìn)而對軟件是否需要繼續(xù)進(jìn)行測試做 出判斷,并用于下一周期的質(zhì)量評價(jià)。
[0018] 所述步驟B進(jìn)一步包括:
[0019] B1、把A步驟中的故障數(shù)輸入Logistic模型;
[0020] B2、利用迭代算法計(jì)算Logistic模型的最大值,作為軟件中含有的故障總數(shù)的估 計(jì);
[0021] B3、計(jì)算出下一個(gè)測試周期發(fā)現(xiàn)的故障數(shù)。
[0022] 所述步驟C進(jìn)一步包括:
[0023] C1、用已經(jīng)發(fā)現(xiàn)的故障數(shù)除以故障總數(shù)計(jì)算出軟件的可信度;
[0024] C2、根據(jù)軟件可信度的達(dá)成情況,來判斷軟件是否需要繼續(xù)進(jìn)行測試;
[0025] C3、在下一個(gè)測試周期結(jié)束時(shí),通過比較發(fā)現(xiàn)故障的預(yù)測值和實(shí)際值,對本測試周 期的質(zhì)量情況進(jìn)行評價(jià)。
[0026] 有益效果
[0027] 軟件測試過程的質(zhì)量評價(jià)和版本是否滿足發(fā)布要求一直是業(yè)界的一個(gè)難題,本發(fā) 明通過對軟件故障發(fā)現(xiàn)過程的分析展示了 Logistic模型在故障預(yù)測方面的價(jià)值。包括兩 個(gè)方面:一、通過對測試結(jié)果的預(yù)測分析,在每一個(gè)周期結(jié)束后可以進(jìn)行質(zhì)量評價(jià);二、對 軟件的可信度測量,用于版本發(fā)布時(shí)對整個(gè)版本發(fā)布的質(zhì)量進(jìn)行考核。這兩個(gè)方面的價(jià)值 完成了對測試過程的監(jiān)督和測試結(jié)果的評價(jià)。
【專利附圖】
【附圖說明】
[0028] 圖1是本發(fā)明輔助故障預(yù)測系統(tǒng)FPBL總體框圖。
【具體實(shí)施方式】
[0029] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不 用于限定本發(fā)明。
[0030] 本發(fā)明所述的基于Logistic模型的軟件故障預(yù)測技術(shù)包括三個(gè)步驟:第一步,把 系統(tǒng)測試過程按照一定的周期進(jìn)行劃分,度量出已經(jīng)進(jìn)行的測試周期內(nèi)發(fā)現(xiàn)的故障數(shù);第 二步,利用Logistic模型計(jì)算出軟件中含有的故障總數(shù)和下一個(gè)測試周期發(fā)現(xiàn)的故障數(shù); 第三步,軟件的質(zhì)量分析與評價(jià),用軟件中已經(jīng)發(fā)現(xiàn)的故障數(shù)與軟件含有的故障總數(shù)的比 值作為軟件的可信度,用于判斷軟件是否達(dá)到了發(fā)布要求;在下一個(gè)測試周期結(jié)束時(shí),通過 比較發(fā)現(xiàn)故障的預(yù)測值和實(shí)際值,對該測試周期的質(zhì)量情況進(jìn)行評價(jià)。
[0031] 參考圖1是本發(fā)明輔助故障預(yù)測系統(tǒng)FPBL的總體框圖,該系統(tǒng)包括三個(gè)模塊:測 試周期故障管理模塊、Logistic模型度量模塊、質(zhì)量分析與評價(jià)模塊。
[0032] 測試周期故障管理模塊:負(fù)責(zé)劃分測試周期,并統(tǒng)計(jì)各個(gè)測試周期內(nèi)發(fā)現(xiàn)的故障 數(shù),該模塊同時(shí)負(fù)責(zé)可信度預(yù)期結(jié)果的輸入;
[0033] Logistic模型度量模塊:核心模塊,負(fù)責(zé)Logistic模型的迭代算法,計(jì)算出軟件 中含有的故障總數(shù)和下一個(gè)測試周期預(yù)計(jì)發(fā)現(xiàn)的故障數(shù);
[0034] 質(zhì)量分析與評價(jià)模塊:負(fù)責(zé)軟件可信度的計(jì)算,并根據(jù)計(jì)算結(jié)果對軟件是否可以 發(fā)布做出判斷;通過比較Logistic模型中計(jì)算的下一個(gè)測試周期的故障數(shù)和實(shí)際測試中 發(fā)現(xiàn)的故障數(shù),對一個(gè)測試周期的質(zhì)量進(jìn)行評價(jià),輸出評價(jià)結(jié)果。
[0035] 下面結(jié)合輔助故障預(yù)測系統(tǒng)FPBL說明本發(fā)明的具體實(shí)施過程。
[0036] 為實(shí)現(xiàn)所述第一步,也就是完成FPBL中的測試周期故障度量,我們按照5個(gè)工作 日為一個(gè)測試周期,計(jì)算出已經(jīng)測試的各個(gè)周期的故障數(shù),為了保證后續(xù)估計(jì)的準(zhǔn)確性,我 們建議至少有三個(gè)周期的數(shù)據(jù),才能進(jìn)行預(yù)測。每個(gè)周期內(nèi)的故障數(shù)按照故障嚴(yán)重程度的 加權(quán)值進(jìn)行度量,故障依照嚴(yán)重程度區(qū)分為:嚴(yán)重、重要、一般、輕微,其對應(yīng)的加權(quán)值分別 為15、9、3、1,以下是某個(gè)大型軟件在進(jìn)行了七個(gè)周期測試后的故障度量數(shù)據(jù):
[0037]
【權(quán)利要求】
1. 一種基于Logistic模型的軟件故障預(yù)測系統(tǒng),其特征在于所述系統(tǒng)包括三個(gè)模塊: 測試周期故障管理模塊、Logistic模型度量模塊、質(zhì)量分析與評價(jià)模塊; 測試周期故障管理模塊:劃分測試周期,并統(tǒng)計(jì)各個(gè)測試周期內(nèi)發(fā)現(xiàn)的故障數(shù),該模塊 同時(shí)負(fù)責(zé)可信度預(yù)期結(jié)果的輸入; Logistic模型度量模塊:負(fù)責(zé)Logistic模型的迭代算法,計(jì)算出軟件中含有的故障總 數(shù)和下一個(gè)測試周期預(yù)計(jì)發(fā)現(xiàn)的故障數(shù); 質(zhì)量分析與評價(jià)模塊:負(fù)責(zé)軟件可信度的計(jì)算,并根據(jù)計(jì)算結(jié)果對軟件是否可以發(fā)布 做出判斷;通過比較Logistic模型中計(jì)算的下一個(gè)測試周期的故障數(shù)和實(shí)際測試中發(fā)現(xiàn) 的故障數(shù),對一個(gè)測試周期的質(zhì)量進(jìn)行評價(jià),輸出評價(jià)結(jié)果。
2. -種如權(quán)利要求1所述的基于Logistic模型的軟件故障預(yù)測系統(tǒng)的預(yù)測方法,其特 征在于所述方法包括如下步驟: A、 采用測試周期故障管理模塊把所述系統(tǒng)測試過程按照一定的周期進(jìn)行劃分,并度量 出每個(gè)周期內(nèi)發(fā)現(xiàn)的故障數(shù); B、 利用Logistic模型計(jì)算出軟件中含有的故障總數(shù)和下一個(gè)測試周期發(fā)現(xiàn)的故障 數(shù); C、 采用質(zhì)量分析與評價(jià)模塊用軟件中已經(jīng)發(fā)現(xiàn)的故障數(shù)與軟件含有的故障總數(shù)的比 值作為軟件的可信度,用于判斷軟件是否達(dá)到了發(fā)布要求; 通過上述三個(gè)步驟計(jì)算出軟件的故障總數(shù),進(jìn)而對軟件是否需要繼續(xù)進(jìn)行測試做出判 斷,并用于下一周期的質(zhì)量評價(jià)。
3. 基于權(quán)利要求2所述的基于Logistic模型的軟件故障預(yù)測系統(tǒng)的預(yù)測方法,其特征 在于所述步驟B進(jìn)一步包括: B1、把A步驟中的故障數(shù)輸入Logistic模型; B2、利用迭代算法計(jì)算Logistic模型的最大值,作為軟件中含有的故障總數(shù)的估計(jì); B3、計(jì)算出下一個(gè)測試周期發(fā)現(xiàn)的故障數(shù)。
4. 基于權(quán)利要求2所述的基于Logistic模型的軟件故障預(yù)測系統(tǒng)的預(yù)測方法,其特征 在于所述步驟C進(jìn)一步包括: C1、用已經(jīng)發(fā)現(xiàn)的故障數(shù)除以故障總數(shù)計(jì)算出軟件的可信度; C2、根據(jù)軟件可信度的達(dá)成情況,來判斷軟件是否需要繼續(xù)進(jìn)行測試; C3、在下一個(gè)測試周期結(jié)束時(shí),通過比較發(fā)現(xiàn)故障的預(yù)測值和實(shí)際值,對本測試周期的 質(zhì)量情況進(jìn)行評價(jià)。
【文檔編號】G06F11/36GK104111887SQ201410309236
【公開日】2014年10月22日 申請日期:2014年7月1日 優(yōu)先權(quán)日:2014年7月1日
【發(fā)明者】李勝宏, 呂俊廷 申請人:江蘇科技大學(xué)