[發(fā)明專利]一種基于特征選擇和集成學習的軟件缺陷個數預測方法有效
| 申請?zhí)枺?/td> | 201710375644.2 | 申請日: | 2017-05-24 |
| 公開(公告)號: | CN107247666B | 公開(公告)日: | 2020-03-10 |
| 發(fā)明(設計)人: | 余嘯;劉進;井溢洋;崔曉暉;邱昌 | 申請(專利權)人: | 武漢大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 武漢科皓知識產權代理事務所(特殊普通合伙) 42222 | 代理人: | 魯力 |
| 地址: | 430072 湖*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 特征 選擇 集成 學習 軟件 缺陷 個數 預測 方法 | ||
本發(fā)明屬于軟件缺陷預測技術領域,特別是涉及一種基于特征選擇和集成學習的軟件缺陷個數預測方法,針對軟件缺陷個數的預測中不相關的模塊特征損害了缺陷預測模型性能,回歸模型均具有不同的預測能力,無法選擇最佳回歸算法等問題,首先利用基于包裹式的特征選擇方法過濾不相關和冗余的特征,然后采用六種不同的回歸算法:線性回歸、嶺回歸、決策樹回歸、梯度boosting回歸、最近鄰回歸和多層感知器回歸,采用集成學習技術,根據特征篩選后的數據實例,構建綜合回歸模型。相比于單個的回歸模型,本發(fā)明提高了軟件缺陷個數預測的準確性。
技術領域
本發(fā)明屬于軟件缺陷預測技術領域,特別是涉及一種基于特征選擇和集成學習的軟件缺陷個數預測方法。
背景技術
(1)軟件缺陷個數預測技術
軟件已經成為影響國民經濟、軍事、政治乃至社會生活的重要因素。高可靠和復雜的軟件系統(tǒng)依賴于其采用的軟件的可靠性。軟件的缺陷是導致相關系統(tǒng)出錯、失效、崩潰甚至機毀人亡的潛在根源。所謂缺陷,到目前為止,學術界,產業(yè)界有很多相關的術語和定義,比如故障、缺陷、bug、錯誤、失誤、失效、失敗等。根據ISO 9000對缺陷的定義為:滿足與預期或者規(guī)定用途有關的要求,缺陷是軟件中已經存在的一個部分,可以通過修改軟件而濾除。然而軟件技術發(fā)展至今,任何檢驗、驗證手段都不可能發(fā)現并排除所有的缺陷,軟件作為一種無形的產物,雖然不會磨損用壞,卻隨時可能因為我們不易查知的原因出現故障甚至失效。事實上,從第一個軟件誕生,就伴隨出現軟件缺陷的檢測和預測技術。檢測技術在于發(fā)現缺陷,而預測技術則在于預測還未發(fā)現的缺陷。20世紀70年代,出現了利用統(tǒng)計學習技術,根據歷史數據以及已經發(fā)現的缺陷等軟件度量數據預測軟件系統(tǒng)的缺陷數目及類型。缺陷預測技術的目的在于統(tǒng)計計算機軟件系統(tǒng)的缺陷數,以決定系統(tǒng)是否可以交付使用。缺陷預測技術為軟件質量的提高和保證起著非常重要的作用,同時也促進了軟件工程技術向前大大的發(fā)展了一步。
軟件缺陷預測過程的第一步是收集和標注軟件實例。一個軟件實例能夠被標記為有缺陷和無缺陷。第二步,抽取軟件實例的度量屬性。到目前為止,研究人員從不同的角度提出了許多軟件度量屬性,而與軟件缺陷預測密切相關的度量屬性主要有代碼度量、McCabe度量和Halstead度量三種。代碼度量是最直接、應用最普遍的度量屬性。通過對程序進行簡單的計數,我們可以得到相關代碼的度量值。它包含總行數(LOC)、空白行數目(LOCb)、注釋行數目(LOCc)、代碼行數目(LOCe)和代碼和注釋總數目(LOCec)。(文獻:[1]包曉露,王小娟,賈有良、申來安。軟件測試基礎:方法與度量[M].北京:人民郵電出版社,2007:74-76.)。軟件復雜性通過程序結構的復雜性表現出來,而程序結構的復雜性主要值的是實例內部程序的復雜性。MaCabe度量的正是實例內部程序的復雜性。它由三種度量組成,分別為環(huán)形復雜度(Cyclomatic Complexity)、基本復雜度(Essential Complexity)和設計復雜度(Dessign Complexity)。Halstead度量不僅度量了程序長度,還描述了程序的最小實現和實際實現之間的關系,并據此闡述程序語言的等級高低。Halstead度量方法充分考慮了程序中出現的算子和操作數,它包括軟件長度(N)、容量(V)、級別(L)、難度(D)、工作量(E)、時間(T)、誤差估計(B)、程序消息(I)等度量。第三步,建立缺陷預測模型,缺陷預測模型本質上屬于模式識別的范疇。而缺陷預測模型的建立過程就是通過一定的機器學習算法來搭建模型結構并確定度量屬性之間依賴強度的過程,即為模型的結構學習和參數學習過程。第四步,通過模型預測結果,由于建立好的缺陷預測模型可以通過自身模型結構和模型參數來量化描述度量屬性與預測結果之間的因果關系,這樣給定一個軟件實例的度量屬性數據集,使用訓練好的預測模型就可以得到該實例是否存在缺陷,即完成軟件缺陷預測的過程。
(2)軟件缺陷個數預測技術
但這些軟件缺陷預測技術通常只給出有缺陷或無缺陷的二分類結果。如有關文獻:[1]
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢大學,未經武漢大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710375644.2/2.html,轉載請聲明來源鉆瓜專利網。





