两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于多動態(tài)程序執(zhí)行軌跡的軟件缺陷定位方法和系統(tǒng)

文檔序號:40653188發(fā)布日期:2025-01-10 19:00閱讀:14來源:國知局
一種基于多動態(tài)程序執(zhí)行軌跡的軟件缺陷定位方法和系統(tǒng)

本技術涉及軟件缺陷定位,尤其是涉及一種基于多動態(tài)程序執(zhí)行軌跡的軟件缺陷定位方法和系統(tǒng)。


背景技術:

1、現(xiàn)有的缺陷定位技術通常依賴于程序執(zhí)行中的單一數(shù)據(jù)源,如代碼覆蓋率、測試用例結果或變異測試。這種方法雖然能夠為代碼行提供懷疑度計算,但由于信息來源單一,難以捕捉程序在運行過程中復雜的多維度動態(tài)行為,其中,多維度動態(tài)行為包含了程序在運行中產(chǎn)生的寄存器信息、堆信息、棧信息和指令信息這四個維度的動態(tài)行為。特別是在處理復雜系統(tǒng)或多線程并發(fā)環(huán)境時,這些技術容易錯過細粒度的缺陷,導致懷疑度計算的精度不足,從而影響缺陷定位的準確性。


技術實現(xiàn)思路

1、本技術旨在提出一種基于多動態(tài)程序執(zhí)行軌跡的軟件缺陷定位方法和系統(tǒng),能夠捕捉程序在運行過程中復雜的多維度動態(tài)行為,提高軟件缺陷定位的準確性。

2、第一方面,本技術實施例提供了一種基于多動態(tài)程序執(zhí)行軌跡的軟件缺陷定位方法,所述方法包括:

3、獲取待定位缺陷的源代碼及與所述待定位缺陷的源代碼對應的測試用例;

4、捕獲所述待定位缺陷的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡;

5、根據(jù)第一時間步,將所述待定位缺陷的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡信息進行向量化,得到第一時序向量序列,其中,所述待定位缺陷的源代碼每執(zhí)行一條指令為一個所述第一時間步;

6、將所述第一時序向量序列輸入訓練好的缺陷定位模型,得到每個所述第一時間步含缺陷的概率;

7、根據(jù)每個所述第一時間步含缺陷的概率與所述待定位缺陷的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡,確定缺陷定位報告。

8、與現(xiàn)有技術相比,本技術第一方面具有以下有益效果:

9、本方法通過捕獲待定位缺陷的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡;根據(jù)第一時間步,將待定位缺陷的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡信息進行向量化,得到第一時序向量序列,其中,待定位缺陷的源代碼每執(zhí)行一條指令為一個第一時間步;將第一時序向量序列輸入訓練好的缺陷定位模型,得到每個第一時間步含缺陷的概率;根據(jù)每個第一時間步含缺陷的概率與待定位缺陷的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡,確定缺陷定位報告。如此,通過捕捉程序在執(zhí)行過程中復雜的多維度動態(tài)行為,不同軌跡信息的融合能夠幫助定位更廣泛類型的缺陷,而不僅僅局限于單一維度分析,能夠提高軟件缺陷定位的準確性。

10、在一些實施方式中,通過如下方式得到訓練好的缺陷定位模型:

11、獲取軟件缺陷定位數(shù)據(jù)集,所述軟件缺陷定位數(shù)據(jù)集包括多個項目的源代碼和與每個所述項目的源代碼對應的測試用例;

12、捕獲所述軟件缺陷定位數(shù)據(jù)集中每個所述項目的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡;

13、根據(jù)第二時間步,將每個所述項目的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡信息進行向量化,得到第二時序向量序列集,其中,每個所述項目的源代碼每執(zhí)行一條指令為一個所述第二時間步;

14、采用所述第二時序向量序列集訓練構建好的缺陷定位模型,得到訓練好的缺陷定位模型。

15、在一些實施方式中,所述獲取軟件缺陷定位數(shù)據(jù)集,包括:

16、收集代碼托管平臺上的項目的源代碼、測試用例、文檔、提交歷史記錄以及pullrequest;

17、根據(jù)所述pull?request,確定缺陷數(shù)量和缺陷位置;

18、基于所述缺陷數(shù)量、所述缺陷位置、所述源代碼、所述測試用例、所述文檔以及所述提交歷史記錄,構建軟件缺陷定位數(shù)據(jù)集。

19、在一些實施方式中,所述訓練好的缺陷定位模型包括輸入嵌入層、位置編碼層、多個堆疊的編碼層、全連接層以及激活函數(shù),所述將所述第一時序向量序列輸入訓練好的缺陷定位模型,得到每個所述時間步對應的缺陷定位結果,包括:

20、將所述第一時序向量序列輸入所述輸入嵌入層,得到輸入嵌入向量;

21、將所述輸入嵌入向量輸入所述位置編碼層進行位置編碼,得到位置編碼后的向量;

22、將所述位置編碼后的向量輸入至第一編碼層,得到所述第一編碼層的輸出結果;

23、將所述第一編碼層的輸出結果作為與所述第一編碼層連接的下一編碼層的輸入,直到所有編碼層編碼結束,得到多個堆疊的編碼層完成編碼后的最終結果;

24、將所述最終結果輸入所述全連接層,得到所述全連接層輸出的結果;

25、采用所述激活函數(shù)對所述全連接層輸出的結果進行歸一化,得到每個所述時間步對應的缺陷定位結果。

26、在一些實施方式中,所述捕獲所述待定位缺陷的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡,包括:

27、采用qemu虛擬化平臺和gdb調(diào)試器捕獲所述待定位缺陷的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡。

28、在一些實施方式中,所述根據(jù)第一時間步,將所述待定位缺陷的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡信息進行向量化,得到第一時序向量序列,包括:

29、根據(jù)所述待定位缺陷的源代碼每執(zhí)行一條指令劃分一個第一時間步,劃分得到多個第一時間步;

30、對每個所述第一時間步內(nèi)的所述待定位缺陷的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡信息轉(zhuǎn)換成進行向量化,得到每個所述第一時間步對應的第一時序向量;

31、將每個所述第一時間步對應的第一時序向量按照時間順序排列,得到第一時序向量序列。

32、在一些實施方式中,所述根據(jù)每個所述第一時間步含缺陷的概率與所述待定位缺陷的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡,確定缺陷定位報告,包括:

33、根據(jù)每個所述第一時間步內(nèi)的所述待定位缺陷的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡,定位至所述待定位缺陷的源代碼的每行代碼;

34、將每個所述第一時間步內(nèi)的每行代碼與每個所述第一時間步含缺陷的概率進行對應,生成缺陷定位報告。

35、第二方面,本技術實施例還提供了一種基于多動態(tài)程序執(zhí)行軌跡的軟件缺陷定位系統(tǒng),所述系統(tǒng)包括:

36、數(shù)據(jù)獲取單元,用于獲取待定位缺陷的源代碼及與所述待定位缺陷的源代碼對應的測試用例;

37、軌跡捕獲單元,用于捕獲所述待定位缺陷的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡;

38、向量化單元,用于根據(jù)第一時間步,將所述待定位缺陷的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡信息進行向量化,得到第一時序向量序列,其中,所述待定位缺陷的源代碼每執(zhí)行一條指令為一個所述第一時間步;

39、概率得到單元,用于將所述第一時序向量序列輸入訓練好的缺陷定位模型,得到每個所述第一時間步含缺陷的概率;

40、缺陷定位單元,用于根據(jù)每個所述第一時間步含缺陷的概率與所述待定位缺陷的源代碼執(zhí)行測試用例時產(chǎn)生的寄存器軌跡、堆軌跡、棧軌跡和指令軌跡,確定缺陷定位報告。

41、第三方面,本技術實施例還提供了一種電子設備,包括至少一個控制處理器和用于與所述至少一個控制處理器通信連接的存儲器;所述存儲器存儲有可被所述至少一個控制處理器執(zhí)行的指令,所述指令被所述至少一個控制處理器執(zhí)行,以使所述至少一個控制處理器能夠執(zhí)行如上所述的一種基于多動態(tài)程序執(zhí)行軌跡的軟件缺陷定位方法。

42、第四方面,本技術實施例還提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有計算機可執(zhí)行指令,所述計算機可執(zhí)行指令用于使計算機執(zhí)行如上所述的一種基于多動態(tài)程序執(zhí)行軌跡的軟件缺陷定位方法。

43、可以理解的是,上述第二方面至第四方面與相關技術相比存在的有益效果與上述第一方面與相關技術相比存在的有益效果相同,可以參見上述第一方面中的相關描述,在此不再贅述。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
枝江市| 尼木县| 天祝| 内黄县| 阳山县| 沙湾县| 宜黄县| 柳林县| 永吉县| 江西省| 惠安县| 福鼎市| 慈溪市| 翁牛特旗| 闵行区| 通化县| 方正县| 汨罗市| 梁平县| 琼海市| 平南县| 当阳市| 阿合奇县| 平谷区| 万全县| 海淀区| 武乡县| 特克斯县| 永春县| 贵州省| 上犹县| 朝阳区| 莱州市| 武强县| 道孚县| 哈尔滨市| 阳城县| 福建省| 曲麻莱县| 焦作市| 区。|