[發(fā)明專利]一種基于區(qū)分子圖挖掘的軟件缺陷發(fā)現(xiàn)方法有效
| 申請?zhí)枺?/td> | 202011303967.9 | 申請日: | 2020-11-19 |
| 公開(公告)號: | CN112395198B | 公開(公告)日: | 2022-04-22 |
| 發(fā)明(設(shè)計)人: | 印瑩;趙宇海 | 申請(專利權(quán))人: | 東北大學(xué) |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 沈陽東大知識產(chǎn)權(quán)代理有限公司 21109 | 代理人: | 李珉 |
| 地址: | 110819 遼寧*** | 國省代碼: | 遼寧;21 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 區(qū)分 挖掘 軟件 缺陷 發(fā)現(xiàn) 方法 | ||
本發(fā)明提供一種基于區(qū)分子圖挖掘的軟件缺陷發(fā)現(xiàn)方法,涉及軟件工程技術(shù)領(lǐng)域。該方法首先針對一個軟件項(xiàng)目提取新舊兩個版本的軟件包,對新舊兩個版本的軟件包做相同數(shù)據(jù)預(yù)處理,構(gòu)建程序的控制流圖,并保存到文本文件中,獲得正負(fù)兩類圖數(shù)據(jù)集;對保存到文本文件的控制流圖中的程序語句進(jìn)行哈希轉(zhuǎn)化,使控制流圖用程序語句哈希轉(zhuǎn)化后的數(shù)值來表示;對得到的哈希轉(zhuǎn)化后的正負(fù)兩類圖數(shù)據(jù)集進(jìn)行覆蓋圖挖掘,得到覆蓋圖集;根據(jù)覆蓋圖集對正負(fù)兩類圖數(shù)據(jù)集中的控制流圖均進(jìn)行數(shù)據(jù)向量化;將數(shù)據(jù)向量化后的控制流圖作為特征訓(xùn)練數(shù)據(jù)來訓(xùn)練極限學(xué)習(xí)機(jī),采用投票機(jī)制得到訓(xùn)練模型,通過測試后的訓(xùn)練模型對待測程序文件進(jìn)行測試,發(fā)現(xiàn)軟件缺陷。
技術(shù)領(lǐng)域
本發(fā)明涉及軟件工程技術(shù)領(lǐng)域,尤其涉及一種基于區(qū)分子圖挖掘的軟件缺陷發(fā)現(xiàn)方法。
背景技術(shù)
信息化時代的軟件已經(jīng)深入到日常生活的各個角落,各行各業(yè)都離不開軟件,因此高質(zhì)量的軟件是必要的。軟件的質(zhì)量和軟件中存在的缺陷數(shù)量有直接關(guān)系,軟件中缺陷數(shù)量越少,軟件質(zhì)量越高。在軟件開發(fā)過程中,軟件缺陷的產(chǎn)生是不可避免的。開發(fā)人員對需求理解不正確以及開發(fā)經(jīng)驗(yàn)不足可能引起性能或產(chǎn)品特征上的缺陷,程序員對邏輯路徑或數(shù)據(jù)范圍考慮不周到,如缺失某些邊界條件,忽視系統(tǒng)崩潰后數(shù)據(jù)的異地備份和災(zāi)難性恢復(fù)等問題均可能產(chǎn)生軟件缺陷。有缺陷的軟件在運(yùn)行時可能會出現(xiàn)意料之外的結(jié)果,嚴(yán)重時可能會對公司產(chǎn)生巨大的損失,甚至危害到生命安全,尤其是在航空、航天、金融證券和交通領(lǐng)域軟件的質(zhì)量問題更不可被忽視。研究發(fā)現(xiàn),如果在需求階段修復(fù)一個軟件缺陷的代價是1的話,在設(shè)計階段修復(fù)一個軟件缺陷就是它的3到6倍,在編程階段修復(fù)一個軟件缺陷是它的大約10倍,而到了產(chǎn)品發(fā)布出去時,再去修復(fù)一個軟件缺陷將會是40到1000倍,可以看出修復(fù)軟件中一個缺陷的代價不是隨時間線性增長,幾乎是呈指數(shù)增長的。根據(jù)IBM的統(tǒng)計報告顯示,在軟件開發(fā)過程中,軟件測試需要消耗整個軟件開發(fā)和運(yùn)維預(yù)算的50%到75%。這表明在軟件開發(fā)周期中,通過軟件測試盡可能減少軟件中存在的缺陷是一項(xiàng)非常昂貴的活動。所以在軟件開發(fā)周期能快速、精確的找到軟件缺陷出現(xiàn)的位置是非常有價值,有意義的。
目前的軟件缺陷檢測方法一般可分為基于靜態(tài)的缺陷檢測和基于動態(tài)的缺陷檢測。
靜態(tài)缺陷檢測方法是指在不需要運(yùn)行程序的前提下分析程序源碼或目標(biāo)碼。1976年,King首次提出使用符號執(zhí)行方法的靜態(tài)軟件故障定位技術(shù),實(shí)驗(yàn)表明符號執(zhí)行可以被應(yīng)用在順序程序的調(diào)試中。1988年,Young等人提出基于符號執(zhí)行的并發(fā)分析技術(shù)來檢測并發(fā)程序中的故障,通過為每一個控制流圖分配一個控制線程,路徑條件表示符號執(zhí)行條件,用路徑表達(dá)式表示符號執(zhí)行的值,執(zhí)行程序流圖,進(jìn)行故障定位。2008年,Cellier提出基于形式方法的故障定位技術(shù)。2010年,Eichinger F提出用頻繁子圖挖掘來進(jìn)行靜態(tài)缺陷檢測。2016年,梁斌等人提出基于頻繁項(xiàng)集的靜態(tài)缺陷檢測方法。
動態(tài)缺陷檢測方法是指通過運(yùn)行測試用例來跟蹤觀察程序的執(zhí)行路徑來實(shí)現(xiàn)檢測。1982年,Weiser第一次提出用程序切片的方法進(jìn)行軟件調(diào)試。Sun Jirong等人深入挖掘程序切片方法的可能性,將其應(yīng)用在故障定位中。2002年,Jones等人基于統(tǒng)計學(xué)方法發(fā)現(xiàn)執(zhí)行失敗的次數(shù)越多,程序語句的故障可能性越高,提出用不同顏色標(biāo)識語句故障可疑程度的方法,這是基于執(zhí)行覆蓋的動態(tài)檢測方法。進(jìn)一步,Renieris和Reiss提出基于集合運(yùn)算法的執(zhí)行覆蓋的動態(tài)檢測方法,建立相似程序頻譜為基礎(chǔ)的最近鄰查詢方法。2008年,趙建軍等人定義了基于FindBugs的檢測面向語句的17種故障模式,并提出了XFindBugs系統(tǒng)用于檢測AspectJ故障。2006年,徐寶文等人提出了基于組合測試的檢測方法。2009年,王新平等人提出了跟蹤程序執(zhí)行軌跡的故障定位方法。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于東北大學(xué),未經(jīng)東北大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011303967.9/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種鋁板沖鉚連接器械
- 下一篇:資源分配方法、裝置及設(shè)備
- 一種基于應(yīng)用軟件散布的軟件授權(quán)與保護(hù)方法及系統(tǒng)
- 一種用于航空機(jī)載設(shè)備的軟件在線加載系統(tǒng)及方法
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 惡意軟件檢測方法及裝置
- 一種基于軟件基因的軟件同源性分析方法和裝置
- 軟件引入系統(tǒng)、軟件引入方法及存儲介質(zhì)
- 軟件驗(yàn)證裝置、軟件驗(yàn)證方法以及軟件驗(yàn)證程序
- 使用靜態(tài)和動態(tài)惡意軟件分析來擴(kuò)展惡意軟件的動態(tài)檢測
- 一種工業(yè)控制軟件構(gòu)建方法和軟件構(gòu)建系統(tǒng)
- 可替換游戲軟件與測驗(yàn)軟件的裝置與方法





