[發(fā)明專利]一種基于軌跡監(jiān)控的Java軟件故障定位方法在審
| 申請?zhí)枺?/td> | 202110587631.8 | 申請日: | 2021-05-27 |
| 公開(公告)號: | CN113282495A | 公開(公告)日: | 2021-08-20 |
| 發(fā)明(設(shè)計)人: | 李必信;李淵;王璐璐;孔祥龍;廖力;周穎 | 申請(專利權(quán))人: | 東南大學(xué) |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 南京眾聯(lián)專利代理有限公司 32206 | 代理人: | 杜靜靜 |
| 地址: | 210096 *** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 軌跡 監(jiān)控 java 軟件 故障 定位 方法 | ||
本發(fā)明公開了一種基于軌跡監(jiān)控的Java軟件故障定位方法,針對Java應(yīng)用程序構(gòu)建了二次故障定位算法,首先通過動態(tài)插樁技術(shù)獲取程序的執(zhí)行軌跡信息,對獲取的執(zhí)行軌跡信息進(jìn)行預(yù)處理,構(gòu)造出對應(yīng)的函數(shù)調(diào)用樹,在函數(shù)級別對故障進(jìn)行定位。然后對于可疑度高的函數(shù),進(jìn)行語句塊級別的執(zhí)行軌跡獲取,構(gòu)建出語句塊的控制依賴圖,在語句塊級別進(jìn)行故障定位,輸出故障定位報告。與現(xiàn)有的故障定位方法相比,本發(fā)明方法操作簡單,故障定位效果好。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)軟件自動化調(diào)試技術(shù)領(lǐng)域,尤其涉及一種基于軌跡監(jiān)控的Java軟件故障定位方法。
背景技術(shù)
軟件開發(fā)過程中進(jìn)行充分全面的軟件測試對于提高軟件可靠性,減少軟件故障的發(fā)生有幫助。在進(jìn)行軟件測試過程中,故障定位是最耗時耗力的階段。需要故障定位人員進(jìn)行手工定位,這要求進(jìn)行故障定位的人員對軟件很熟悉,了解軟件的執(zhí)行流程與交互過程,即使這樣故障定位的過程也往往耗時耗力。相關(guān)調(diào)查研究發(fā)現(xiàn),軟件開發(fā)廠商往往會將軟件開發(fā)、維護(hù)成本的40%~60%投入到軟件測試與故障定位和修復(fù)中。越到軟件開發(fā)的后期,進(jìn)行相關(guān)故障的定位和修復(fù)所花成本也越大,為了降低開發(fā)、維護(hù)成本,這就需要提高故障定位的效率,對于自動化故障定位方法的需求也越來越迫切。
目前在軟件故障定位領(lǐng)域中,根據(jù)故障的數(shù)量可分為單故障定位與多故障定位。單故障定位方法假設(shè)程序中只有一個故障,找到該故障后即可完成故障定位。這類方法考慮的情形簡單,方法實(shí)現(xiàn)較多故障定位方法簡單。在單故障的情形下,定位效果好,定位時間代價低。單故障定位方法主要可分為以下幾類:基于程序切片的故障定位方法、基于程序頻譜的故障定位方法、基于模型的故障定位方法。多故障定位比單故障定位更復(fù)雜,主要體現(xiàn)在故障數(shù)目未知,故障之間的相互疊加影響,往往需要進(jìn)行多次執(zhí)行,導(dǎo)致故障定位效率下降。目前故障定位算法研究主要集中在單故障定位領(lǐng)域。
自動化故障定位方法主要具有以下優(yōu)點(diǎn):1、簡化故障定位的中間過程,降低操作人員的使用要求。2、能夠提高故障定位的效率,降低軟件開發(fā)維護(hù)成本。自動化故障定位方法能夠根據(jù)執(zhí)行過程的不同,給出故障語句的可疑度排序報告,相關(guān)開發(fā)人員只需按可疑度由高到低順序來進(jìn)行相關(guān)代碼檢查即可,不再需要從頭到尾進(jìn)行檢查,提高了故障定位的效率。因此研究一種基于軌跡監(jiān)控的Java軟件故障定位方法,對于提高Java應(yīng)用程序的故障定位效率,有著重要的意義。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于軌跡監(jiān)控的Java軟件故障定位方法,通過動態(tài)插樁技術(shù)獲取Java程序運(yùn)行時的執(zhí)行軌跡信息,對軌跡信息進(jìn)行處理,采用二次故障定位的方式,分別計算出函數(shù)級別的可疑度值與語句塊級別的可疑度值,并按可疑度值由大到小進(jìn)行排序,給出相應(yīng)級別的故障定位報告。
為了實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案如下:一種基于軌跡監(jiān)控的Java軟件故障定位方法,包括如下步驟:
步驟1)運(yùn)行待測的Java應(yīng)用程序,利用動態(tài)插樁工具向其中織入獲取函數(shù)級別軌跡信息記錄的代碼。輸入測試用例集合T={t1,t2,...,tn}并執(zhí)行,獲得待測程序運(yùn)行時函數(shù)級別的執(zhí)行軌跡信息記錄集合S={s1,s2,.....,sn}和測試用例的執(zhí)行結(jié)果集合R={r1,r2,...,rn}。;
步驟2)對步驟1)中所獲得的S與R,進(jìn)行預(yù)處理,構(gòu)造出測試用例執(zhí)行成功的函數(shù)調(diào)用樹Ts與測試用例執(zhí)行失敗的函數(shù)調(diào)用樹Tf,對其進(jìn)行可疑度計算,函數(shù)按照可疑度從大到小進(jìn)行排序,輸出函數(shù)級別的故障定位報告;
步驟3)基于步驟2)中獲得的函數(shù)級別的故障定位報告,選擇可疑度高的函數(shù),作為參數(shù)輸入到動態(tài)插樁工具中,動態(tài)插樁工具向待測程序中織入獲取語句塊級別軌跡信息記錄的代碼;
該專利技術(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/202110587631.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 多級校內(nèi)監(jiān)控系統(tǒng)
- 多級校內(nèi)監(jiān)控系統(tǒng)
- 一種范圍廣、力度大的校內(nèi)監(jiān)控系統(tǒng)
- 一種監(jiān)控的方法及系統(tǒng)
- 設(shè)備的監(jiān)控方法、裝置、系統(tǒng)和空調(diào)
- 多級校內(nèi)監(jiān)控系統(tǒng)
- 設(shè)備監(jiān)控方法、裝置、計算機(jī)設(shè)備及存儲介質(zhì)
- 風(fēng)險雷達(dá)預(yù)警的監(jiān)控方法及系統(tǒng)
- 區(qū)塊鏈網(wǎng)絡(luò)監(jiān)控系統(tǒng)、裝置及方法
- 基于機(jī)器視覺的車站客流安全智能監(jiān)控系統(tǒng)
- 基于支持類的標(biāo)識來下載Java應(yīng)用的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品
- 啟動JAVA應(yīng)用的方法及裝置
- Java虛擬機(jī)的管理方法、監(jiān)控系統(tǒng)和監(jiān)控代理模塊
- 一種運(yùn)行Java程序的方法和裝置
- 一種保護(hù)java程序的方法
- Java卡的Java代碼補(bǔ)丁方法
- 一種基于中間件架構(gòu)下java棧的多線程實(shí)現(xiàn)方法
- 一種支持JAVA卡補(bǔ)丁函數(shù)的智能卡
- 一種改進(jìn)的Java卡初始化方法和Java卡
- JavaEE平臺構(gòu)建方法、JavaEE平臺及云端系統(tǒng)





