[發明專利]一種基于數據過采樣和集成學習的軟件缺陷數目預測方法有效
| 申請號: | 201710571131.9 | 申請日: | 2017-07-13 |
| 公開(公告)號: | CN107391370B | 公開(公告)日: | 2020-05-12 |
| 發明(設計)人: | 余嘯;劉進;周培培;崔曉暉;伍蔓;井溢洋 | 申請(專利權)人: | 武漢大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 武漢科皓知識產權代理事務所(特殊普通合伙) 42222 | 代理人: | 魏波 |
| 地址: | 430072 湖*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 數據 采樣 集成 學習 軟件 缺陷 數目 預測 方法 | ||
本發明公開了一種基于數據過采樣和集成學習的軟件缺陷數目預測方法,首先利用過采樣技術通過增加缺陷數據集中缺陷數目為大于零的軟件模塊得到相對平衡的新數據集,然后利用相對平衡的缺陷數據集訓練出若干個弱的軟件缺陷數目預測模型,最后集成這些弱的軟件缺陷數目預測模型來預測待預測的軟件模塊的缺陷數目。本發明的技術方案既能夠解決缺陷數據集中數據不平衡的問題,又能夠結合多個弱的預測模型來提高軟件缺陷數目預測模型的性能。
技術領域
本發明屬于軟件缺陷預測技術領域,涉及一種軟件缺陷數目預測方法,特別是涉及一種基于數據過采樣和集成學習的軟件缺陷數目預測方法。
背景技術
軟件缺陷是計算機軟件或程序中存在的某個破壞正常運行能力的問題、錯誤以及隱藏的功能缺陷。隨著軟件系統在工程應用中的不斷擴大,軟件缺陷導致的經濟損失日益增加。據美國國家標準與技術所的一項研究表明,軟件缺陷給美國每年造成的損失高達幾百億元,而其中超過三分之一的損失,如果提前稍加測試,即可避免。除了經濟領域,還有一些軟件是飛行控制系統軟件和醫療設備軟件,這些和人命相關的軟件,一旦出現軟件缺陷問題,就會給人民生命財產安全帶來無端災難,因此軟件缺陷預測技術意義重大。軟件缺陷預測技術是軟件質量保證中的一項重要技術。軟件缺陷預測通過分析軟件歷史數據,建立缺陷預測模型,對新的軟件模塊進行缺陷預測。對預測出潛在缺陷的新的軟件模塊分配更多的測試資源,可以達到合理分配測試和維護資源的目的。目前為止,已有很多高效的軟件缺陷方法被提出。
但這些預測通常只給出有缺陷或無缺陷的二分類結果。文獻[1-2]表明,如果只按照有無缺陷來分配有限的測試資源,可能會造成資源分配的浪費。如果我們能夠準確的預測出缺陷數目,使軟件測試人員主要關注那些擁有更多缺陷的軟件模塊,就可使軟件測試工作更為有效。因此,預測軟件缺陷數目相比于單純的預測軟件模塊是否有缺陷更利于優化軟件測試資源的分配。
軟件缺陷數目預測過程分為四個階段:
(a)挖掘軟件歷史數據,從中抽取出有用的程序模塊。程序模塊粒度可根據實際應用場景,可設置為文件、包、類或函數;
(b)提取出與軟件缺陷有關的特征,并構建出軟件缺陷數據集;
(c)借助特定的建模方法在軟件缺陷數據集上構建出軟件缺陷數目預測模型。不同于單純的預測新的軟件模塊是否存在缺陷時采用的是分類模型,軟件缺陷數目建模方法采用的是回歸模型;
(d)在對新的軟件模塊提取出特征后,利用步驟(b)中訓練出的軟件缺陷數目預測模型,預測該模塊存在多少個缺陷。
構建軟件缺陷數目預測模型時最常用的是線性回歸模型。線性回歸模型是一種用于對因變量與一個或多個獨立變量之間的線性關系進行建模的統計方法。一個線性回歸模型如下式所示:
Y=b0+b1x1+b2x2+…+bnxn;
其中Y是因變量,對應于軟件缺陷數目預測時即為軟件模塊的缺陷數目,x1,x2,...,xn是獨立變量,對應于軟件缺陷數目預測時即為軟件模塊的特征,b1,b2,...,bn是獨立變量的回歸系數,b0是誤差項。
在缺陷數據集中,大多數軟件模塊的缺陷數目為零,只有少數軟件模塊有缺陷。當在這樣的數據集上建立缺陷數目預測模型后,預測模型極易預測新的軟件模塊的缺陷數目為零。因此,數據不平衡會對缺陷預測結果產生一定的影響,同時對缺陷數目預測模型的有效性也提出了新的挑戰。
處理不平衡數據問題的方法有很多種:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢大學,未經武漢大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710571131.9/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





