[發明專利]一種基于半監督聚類數據篩選的跨項目缺陷預測方法在審
| 申請號: | 201710322848.X | 申請日: | 2017-05-09 |
| 公開(公告)號: | CN107133176A | 公開(公告)日: | 2017-09-05 |
| 發明(設計)人: | 余嘯;劉進;安格格;崔曉輝;夏臻;井溢洋 | 申請(專利權)人: | 武漢大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06K9/62 |
| 代理公司: | 武漢科皓知識產權代理事務所(特殊普通合伙)42222 | 代理人: | 魯力 |
| 地址: | 430072 湖*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 監督 數據 篩選 項目 缺陷 預測 方法 | ||
技術領域
本發明屬于軟件缺陷預測技術領域,特別是涉及一種基于半監督聚類數據篩選的跨項目缺陷預測方法。
背景技術
(1)軟件缺陷預測技術
軟件已經成為影響國民經濟、軍事、政治乃至社會生活的重要因素。高可靠和復雜的軟件系統依賴于其采用的軟件的可靠性。軟件的缺陷是導致相關系統出錯、失效、崩潰甚至機毀人亡的潛在根源。所謂缺陷,到目前為止,學術界,產業界有很多相關的術語和定義,比如故障、缺陷、bug、錯誤、失誤、失效、失敗等。根據ISO 9000對缺陷的定義為:滿足與預期或者規定用途有關的要求,缺陷是軟件中已經存在的一個部分,可以通過修改軟件而消除。然而軟件技術發展至今,任何檢驗、驗證手段都不可能發現并排除所有的缺陷,軟件作為一種無形的產物,雖然不會磨損用壞,卻隨時可能因為我們不易查知的原因出現故障甚至失效。事實上,從第一個軟件誕生,就伴隨出現軟件缺陷的檢測和預測技術。檢測技術在于發現缺陷,而預測技術則在于預測還未發現的缺陷。
20世紀70年代,出現了利用統計學習技術,根據歷史數據以及已經發現的缺陷等軟件度量數據預測軟件系統的缺陷數目及類型。缺陷預測技術的目的在于統計計算機軟件系統的缺陷數,以決定系統是否可以交付使用。缺陷預測技術為軟件質量的提高和保證起著非常重要的作用,同時也促進了軟件工程技術向前大大的發展了一步。
軟件缺陷預測過程的第一步是收集和標注軟件實例。一個軟件實例能夠被標記為有缺陷和無缺陷。第二步,抽取軟件實例的度量屬性。到目前為止,研究人員從不同的角度提出了許多軟件度量屬性,而與軟件缺陷預測密切相關的度量屬性主要有代碼度量、McCabe度量和Halstead度量三種。代碼度量是最直接、應用最普遍的度量屬性。通過對程序進行簡單的計數,我們可以得到相關代碼的度量值。它包含總行數(LOC)、空白行數目(LOCb)、注釋行數目(LOCc)、代碼行數目(LOCe)和代碼和注釋總數目(LOCec)。(文獻:[1]包曉露,王小娟,賈有良、申來安。軟件測試基礎:方法與度量[M].北京:人民郵電出版社,2007:74-76.)。軟件復雜性通過程序結構的復雜性表現出來,而程序結構的復雜性主要值的是實例內部程序的復雜性。MaCabe度量的正是實例內部程序的復雜性。它由三種度量組成,分別為環形復雜度(Cyclomatic Complexity)、基本復雜度(Essential Complexity)和設計復雜度(Dessign Complexity)。Halstead度量不僅度量了程序長度,還描述了程序的最小實現和實際實現之間的關系,并據此闡述程序語言的等級高低。Halstead度量方法充分考慮了程序中出現的算子和操作數,它包括軟件長度(N)、容量(V)、級別(L)、難度(D)、工作量(E)、時間(T)、誤差估計(B)、程序消息(I)等度量。第三步,建立缺陷預測模型,缺陷預測模型本質上屬于模式識別的范疇。而缺陷預測模型的建立過程就是通過一定的機器學習算法來搭建模型結構并確定度量屬性之間依賴強度的過程,即為模型的結構學習和參數學習過程。第四步,通過模型預測結果,由于建立好的缺陷預測模型可以通過自身模型結構和模型參數來量化描述度量屬性與預測結果之間的因果關系,這樣給定一個軟件實例的度量屬性數據集,使用訓練好的預測模型就可以得到該實例是否存在缺陷,即完成軟件缺陷預測的過程。
(2)跨項目軟件缺陷預測技術
到目前為止,許多高效的軟件缺陷預測方法已經被提出,通常利用軟件實例的歷史數據并運用統計分析、機器學習以及機器學習聯合統計分析等技術來進行預測。但它們通常僅限于本項目的缺陷預測。當有足夠的歷史數據可用來建立缺陷預測模型時,本項目的缺陷預測效果很好。但對于一些新的項目來說,項目內的歷史數據是非常有限且不具有高可信度的,所以本項目缺陷預測很難順利進行。跨項目軟件缺陷預測是解決項目初期缺乏歷史數據來構建模型的有效途徑。它通過利用一個或多個已有的其他項目(稱之為跨項目)數據來訓練預測模型,然后將模型應用到本項目,從而解決本項目沒有足夠的歷史數據來訓練模型的問題。
發明內容
本發明提供的技術方案是一種基于半監督聚類數據篩選的跨項目缺陷預測方法,包括以下步驟:
步驟1,挖掘本項目軟件歷史倉庫,從中抽取出有用的軟件模塊。軟件模塊粒度可根據實際應用場景,可設置為文件、包、類或函數等。標注所有的本項目軟件模塊是否有缺陷,標記有缺陷的軟件模塊的類標號為Y,標記無缺陷的軟件模塊的類標號為N;
步驟2,抽取本項目現有的待預測的軟件模塊。這些待預測的本項目軟件模塊標記為“?”;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢大學,未經武漢大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710322848.X/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種基于云計算的軟件測試平臺
- 下一篇:一種自動化測試框架
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





