[發明專利]一種基于靜態分析的軟件故障預測技術的構建方法有效
| 申請號: | 201710600857.0 | 申請日: | 2017-07-21 |
| 公開(公告)號: | CN107423219B | 公開(公告)日: | 2018-05-18 |
| 發明(設計)人: | 楊順昆;茍曉冬;周鑫;龐佳文;李大慶;林歐雅;陶飛;佘志坤 | 申請(專利權)人: | 北京航空航天大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京慧泉知識產權代理有限公司 11232 | 代理人: | 王順榮;唐愛華 |
| 地址: | 100191*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 靜態 分析 軟件 故障 預測 技術 構建 方法 | ||
本發明提供一種基于靜態分析的軟件故障預測技術的構建方法,步驟如下:1、搜集被診斷軟件的有效故障;2、統計有效故障次數;3、使用靜態分析工具輸出軟件的復雜度度量值;4、計算故障次數與各個度量值的相關性;5、選出與故障次數具有顯著相關性的度量值;6、將顯著相關度量值的相關系數歸一化,作為權重;7、計算新、舊版本軟件度量值的變化率;8、計算故障次數對應于各度量值的變化率;9、計算故障次數的綜合變化率;10、預測新版本的故障次數;通過上述步驟,可以完成對基于靜態分析的軟件故障預測技術的構建。本發明可以幫助開發者在軟件發布前預測未來可能發生的故障數量,做出應對,減小損失,具有實際應用價值。
技術領域
本發明提供一種基于靜態分析的軟件故障預測技術的構建方法,它涉及一種基于靜態分析的軟件故障預測技術的實現,屬于軟件可信性、軟件故障預測領域。
背景技術
相伴于計算機技術的突飛猛進,軟件測試逐漸為人所重視,在軟件正式發布之前進行軟件測試,以確保軟件的。基于進行測試時被測試的程序的狀態,可以將測試分為靜態測試與動態測試。動態測試指的是實際運行程序,設計測試用例并執行,以檢查程序中存在的缺陷的過程。而靜態測試則是不實際運行被測軟件,而只是靜態地檢查程序代碼及其配套文檔中可能存在的錯誤的過程。靜態測試可以大致分為文檔審查,靜態分析以及代碼審查。
靜態分析(Static Analysis)是指在不運行代碼的方式下,通過詞法分析、語法分析、控制流、數據流分析等技術對程序代碼進行掃描,度量程序復雜度,驗證代碼是否滿足規范性、安全性、可靠性、可維護性等指標的一種代碼分析技術。對于程序復雜度的度量有許多的度量值,比如檢測文件數、代碼總行數、文件中的語句數、帶注釋行所占百分比、分支語句所占百分比、函數個數、最大復雜度、平均復雜度、模塊最大深度及模塊深度等。由于軟件規模的日益龐大,純人力的靜態分析已經變得越來越不可取,因而目前的靜態分析其實就是指使用自動化靜態分析輔助工具軟件對程序源代碼進行檢查,以分析程序行為,輸出程序的復雜度度量值。當前已有許多的靜態分析輔助工具可供使用,比如Meta-Compilation,HP Fortify,Cobot以及SourceMonitor。
由于軟件規模的日益龐大,功能變得愈加強大與完善的同時,軟件發生故障的次數也變得越來越難以預測。但是軟件的開發方在發布新軟件或者軟件新版本前,總是希望能預知其大概的可靠性水平,即可能的故障次數,以便做出準確的決策,因而對軟件故障次數的預測是十分有必要的。現有的軟件故障次數預測多是基于機器學習,比如神經網絡,又或者是采用對歷史故障數據進行時間序列建模的方法進行故障次數的預測。這些方法有著各自的優點,但缺點也同時存在,比如機器學習上手難度較高等。同時,靜態分析可以得到軟件的復雜度度量,能在程序開方人員編程時提供幫助,但這些度量值數據并沒有得到進一步的利用。針對這一狀況,我們將提出一種基于靜態分析的軟件故障預測技術的構建方法,在這項技術中,收集已有的軟件歷史版本的各版本的源代碼以及各版本的故障數據,然后使用靜態分析工具,對軟件各歷史版本和新版本的源代碼進行掃描,得到各版本的軟件復雜度度量值,然后使用統計工具計算歷史版本的故障次數和各度量值的相關性,選出其中具有明顯相關性的度量值。對于選出來的強相關性度量值,由于其相關性系數并不相同,即和故障次數的相關程度不一致,因此對相關性系數使用歸一化的方式對各度量值賦予不同的權重,而后計算新版本軟件和上一版本軟件的靜態分析度量值的變化率,各靜態分析度量值變化率乘以各自的權重,即為故障次數相對于各度量值的變化率。再將其相加,即為故障次數的綜合變化率,結合上一版本的故障次數以及綜合變化率即可得出新版本軟件的故障次數的預測值。使用這一技術可以利用在靜態分析中未被進一步使用的靜態分析度量值,即軟件復雜度的度量值,以一種容易被理解的方法得出較為準確的預測值。
該故障預測技術結合靜態分析和相關性分析進行構建,形成較為準確的基于靜態分析的軟件故障預測技術,在提高軟件故障次數預測精度的同時,達到提高軟件可信性、安全性、可用性的目的。
發明內容
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京航空航天大學,未經北京航空航天大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710600857.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:高速動車組衛生間模塊玻璃鋼防變形模具
- 下一篇:一種輪胎成型生產線





