本公開涉及一種軟件驗證方法、裝置、電子設備及存儲介質,上述方法包括:根據待檢測的錯誤類型,確定初始插樁點、查詢接口及樁函數;基于初始插樁點、樁函數及查詢接口,配置插樁規則;基于插樁規則,對待驗證代碼對應的中間表示I?R進行插樁處理,得到目標代碼;對目標代碼進行驗證操作,得到驗證結果。本公開能夠鎖定與錯誤類型對應的指令,確定錯誤類型對應的錯誤驗證邏輯,實現根據配置好的插樁規則自動對代碼進行插樁,并在插樁過程中通過查詢接口確定與錯誤類型對應的指令是否需要插樁,使插樁過程免受底層接口影響,顯著減少不必要的插樁操作,同時減少執行階段的檢查操作,提升驗證效率。
【技術實現步驟摘要】
本專利技術涉及軟件工程,特別涉及一種軟件驗證方法、裝置、電子設備及存儲介質。
技術介紹
1、在軟件開發周期中,軟件形式化驗證作為確保軟件系統符合規格和用戶需求的關鍵環節,其重要性日益凸顯。隨著技術的不斷進步,軟件形式化驗證領域也在不斷發展,其中符號執行就是其中的一種重要驗證方法。為了在符號執行過程中發現軟件錯誤,在符號執行之前需要對待驗證程序插樁,然后在符號執行過程中調用插樁代碼觸發錯誤檢測功能。例如,檢測軟件中是否存在除0錯誤,則需要在符號執行時碰到相關操作指令時,利用求解器判斷對應除數的指令操作數等于零是否可解,如果可解則報錯。相關的插樁技術中,需要手動插樁,或者依賴外部工具識別插樁點,對于外部工具不能識別的插樁點無法工作,并且,由于軟件的錯誤類型多種多樣,即使是相同類型的軟件錯誤,不同平臺上由于底層提供的接口的不同,也會導致插樁點不同,使符號執行的可靠性降低。
技術實現思路
1、為了解決上述提出的至少一個技術問題,本公開提出了一種軟件驗證方法、裝置、電子設備及存儲介質。
2、一方面,本專利技術提供了一種軟件驗證方法,包括:
3、根據待檢測的錯誤類型,確定初始插樁點、查詢接口及樁函數,初始插樁點指示與錯誤類型對應的指令,查詢接口用于確定初始插樁點是否需要插樁,樁函數指示錯誤類型對應的錯誤驗證邏輯;
4、基于初始插樁點、樁函數及查詢接口,配置插樁規則;
5、基于插樁規則,對待驗證代碼對應的中間表示ir進行插樁處理,得到目標代碼;p>6、對目標代碼進行驗證操作,得到驗證結果。
7、在一個可選的實施例中,對目標代碼進行驗證操作,得到驗證結果,包括:
8、加載樁函數對應的樁代碼;
9、組合目標代碼和樁代碼,得到待執行代碼;
10、基于樁函數列表,對待執行代碼進行切片處理,得到切片集,樁函數列表用于指示目標代碼中插入的樁函數;
11、對切片集進行符號執行操作,得到驗證結果。
12、在一個可選的實施例中,對切片集進行符號執行操作,得到驗證結果,包括:
13、讀取目標指令,目標指令為切片集中的任一指令;
14、根據目標指令對應的樁函數所指示的錯誤驗證邏輯,對目標指令進行符號執行操作,得到目標指令的符號執行結果,符號執行結果屬于驗證結果。
15、在一個可選的實施例中,基于插樁規則,對待驗證代碼對應的中間表示ir進行插樁處理,得到目標代碼,包括:
16、讀取待驗證代碼對應的中間表示ir中的指令代碼;
17、將指令代碼與插樁規則進行匹配,得到匹配結果;
18、在匹配結果指示指令代碼與插樁規則所指示的初始插樁點相匹配的情況下,調用插樁規則所指示的查詢接口,對指令代碼進行靜態分析處理,得到分析結果,分析結果用于指示指令代碼是否存在異常;
19、在分析結果指示指令代碼不存在異常的情況下,跳過指令代碼;
20、在分析結果指示指令代碼存在異常的情況下,對指令代碼進行插樁處理,得到目標代碼。
21、在一個可選的實施例中,插樁規則還包括指令代碼對應的期望結果,方法還包括:
22、在分析結果與期望結果相符合的情況下,確定指令代碼不存在異常;
23、在分析結果與期望結果不符合的情況下,確定指令代碼存在異常。
24、在一個可選的實施例中,基于初始插樁點、樁函數及查詢接口,配置插樁規則,包括:
25、根據初始插樁點確定第一規則信息,第一規則信息包括初始插樁點對應的指令名稱、返回值以及指令操作數列表;
26、根據查詢接口確定第二規則信息,第二規則信息包括查詢接口對應的接口名稱以及期望結果;
27、根據樁函數確定第三規則信息,第三規則信息包括樁函數對應的樁函數名稱、指令、返回值、以及樁函數執行所需的參數;
28、融合第一規則信息、第二規則信息和第三規則信息,得到插樁規則。
29、在一個可選的實施例中,對目標代碼進行驗證操作,得到驗證結果之后,方法還包括:
30、在驗證結果指示待驗證代碼中存在錯誤的情況下,生成錯誤報告。
31、第二方面,本專利技術還提供了一種軟件驗證裝置,包括:
32、確定模塊,用于根據待檢測的錯誤類型,確定初始插樁點、查詢接口及樁函數,初始插樁點指示與錯誤類型對應的指令,查詢接口用于確定初始插樁點是否需要插樁,樁函數指示錯誤類型對應的錯誤驗證邏輯;
33、規則配置模塊,用于基于初始插樁點、樁函數及查詢接口,配置插樁規則;
34、插樁模塊,用于基于插樁規則,對待驗證代碼對應的中間表示ir進行插樁處理,得到目標代碼;
35、驗證模塊,用于對目標代碼進行驗證操作,得到驗證結果。
36、第三方面,本專利技術還提供了一種電子設備,包括:
37、處理器;
38、用于存儲處理器可執行指令的存儲器;
39、其中,處理器用于執行指令,以實現上述軟件驗證方法。
40、第四方面,本專利技術還提供了一種存儲介質,當存儲介質中的指令由電子設備的處理器執行時,使得電子設備能夠執行上述軟件驗證方法。
41、應當理解的是,以上的一般描述和后文的細節描述僅是示例性和解釋性的,而非限制本公開。
42、實施本公開,具有以下有益效果:
43、根據待檢測的錯誤類型,確定初始插樁點、查詢接口及樁函數,初始插樁點指示與錯誤類型對應的指令,查詢接口用于確定初始插樁點是否需要插樁,樁函數指示錯誤類型對應的錯誤驗證邏輯;基于初始插樁點、樁函數及查詢接口,配置插樁規則;基于插樁規則,對待驗證代碼對應的中間表示ir進行插樁處理,得到目標代碼;對目標代碼進行驗證操作,得到驗證結果。
44、本公開通過根據待檢測的錯誤類型,確定初始插樁點、查詢接口及樁函數,基于初始插樁點、樁函數及查詢接口配置插樁規則,并基于插樁規則對待驗證代碼對應的中間表示ir進行插樁處理,能夠鎖定與錯誤類型對應的指令,確定錯誤類型對應的錯誤驗證邏輯,實現根據配置好的插樁規則自動對代碼進行插樁,并在插樁過程中通過查詢接口確定與錯誤類型對應的指令是否需要插樁,使插樁過程免受底層接口影響,顯著減少不必要的插樁操作,同時減少執行階段的檢查操作,提升驗證效率。
45、根據下面參考附圖對示例性實施例的詳細說明,本公開的其它特征及方面將變得清楚。
本文檔來自技高網...
【技術保護點】
1.一種軟件驗證方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述對所述目標代碼進行驗證操作,得到驗證結果,包括:
3.根據權利要求2所述的方法,其特征在于,所述對所述切片集進行符號執行操作,得到所述驗證結果,包括:
4.根據權利要求1所述的方法,其特征在于,所述基于所述插樁規則,對所述待驗證代碼對應的中間表示IR進行插樁處理,得到目標代碼,包括:
5.根據權利要求4所述的方法,其特征在于,所述插樁規則還包括所述指令代碼對應的期望結果,所述方法還包括:
6.根據權利要求1所述的方法,其特征在于,所述基于所述初始插樁點、所述樁函數及所述查詢接口,配置插樁規則,包括:
7.根據權利要求1所述的方法,其特征在于,所述對所述目標代碼進行驗證操作,得到驗證結果之后,所述方法還包括:
8.一種軟件驗證裝置,其特征在于,所述裝置包括:
9.一種電子設備,其特征在于,包括:
10.一種存儲介質,其特征在于,當所述存儲介質中的指令由電子設備的處理器執行時,使得電子設備能夠執行如權利要求1至7中任一項所述的軟件驗證方法。
...
【技術特征摘要】
1.一種軟件驗證方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述對所述目標代碼進行驗證操作,得到驗證結果,包括:
3.根據權利要求2所述的方法,其特征在于,所述對所述切片集進行符號執行操作,得到所述驗證結果,包括:
4.根據權利要求1所述的方法,其特征在于,所述基于所述插樁規則,對所述待驗證代碼對應的中間表示ir進行插樁處理,得到目標代碼,包括:
5.根據權利要求4所述的方法,其特征在于,所述插樁規則還包括所述指令代碼對應的期望結果,所述方法...
【專利技術屬性】
技術研發人員:徐興民,黃永平,楊奕堃,劉家寧,蔡文貌,
申請(專利權)人:中汽創智科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。