基于分段動態(tài)符號執(zhí)行的約束優(yōu)化研究
發(fā)布時間:2021-03-06 22:45
軟件質量是保證軟件產品正常平穩(wěn)運行的關鍵,因為在軟件開發(fā)和軟件功能更新過程中不可避免會出現(xiàn)軟件缺陷,這些缺陷如果不及時發(fā)現(xiàn),軟件不能平穩(wěn)運行,甚至可能對其他相關軟件帶來更大危害。為了有效的發(fā)現(xiàn)軟件中的缺陷并對所在缺陷代碼進行改進必須進行軟件測試。符號執(zhí)行作為一種程序分析技術,使用不同的、可能的輸入來測試程序,系統(tǒng)地同時探索許多可能的執(zhí)行路徑,使得軟件可靠性應用程序有重大實際突破。動態(tài)符號執(zhí)行通過自動輸入生成發(fā)現(xiàn)軟件中的缺陷——即自動化軟件測試。在此過程中,為保證程序可繼續(xù)執(zhí)行會將求解器無法求解的部分用具體值替換,導致部分路徑丟失,并且路徑爆炸問題依然嚴峻;在整個符號執(zhí)行中,求解器的求解時間占程序執(zhí)行的很大一部分,優(yōu)化約束集、減少求解器的負擔也是一個至關重要的問題。本文通過分段動態(tài)符號執(zhí)行優(yōu)化約束集的方法,緩解動態(tài)符號執(zhí)行中的路徑爆炸。提出一個CCSDSM優(yōu)化框架,利用圈復雜度度量軟件復雜性進行分段處理,避免程序分支呈指數(shù)級增長后導致的路徑爆炸,并在分段處優(yōu)化約束集,減輕求解器的負擔,延遲符號值被實際值替換,降低路徑的不完整性。本文用開源符號執(zhí)行工具KLEE對程序進行分析。設計實驗來評估...
【文章來源】:哈爾濱師范大學黑龍江省
【文章頁數(shù)】:40 頁
【學位級別】:碩士
【部分圖文】:
符號執(zhí)行示例程序
執(zhí)行樹
第二章相關技術研究9可行路徑,產生誤報。2.1.2動態(tài)符號執(zhí)行動態(tài)符號執(zhí)行(Dynamicsymbolicexecution,DSE)是一種實際輸入與傳統(tǒng)符號執(zhí)行相結合的代碼檢測技術,它通過自動生成的測試用例來檢測程序執(zhí)行中的可能路徑,并據(jù)此挖掘和檢測軟件漏洞或缺陷。動態(tài)符號執(zhí)行顯著特點是以實際數(shù)據(jù)為輸入來參與運行過程,并且通過約束求解器計算出多個測試用例,測試用例質量越高,數(shù)量越多,則挖掘程序漏洞的概率越大。在被測程序上,符號執(zhí)行先用給定的或隨機的具體輸入執(zhí)行,并同時進行符號執(zhí)行。通過插樁的方式收集程序執(zhí)行過程中路徑條件的符號表達式,對分支路徑條件進行取反得到新的路徑條件,然后使用約束求解器求解所收集到的路徑條件,以生成新的測試用例用于輸入,從而探索與未被覆蓋的路徑。當約束集超過求解器求解能力或者遇到外部調用的時候,用具體值替代使程序可繼續(xù)執(zhí)行。生成測試輸入對程序中路徑進行探索。如圖2-3所示。圖2-3動態(tài)符號執(zhí)行流程圖Figure2-3Dynamicsymbolexecutionflowgraph為了更好的闡述動態(tài)符號執(zhí)行過程,以示例2-1的例子來說明。動態(tài)符號執(zhí)行會首先產生隨機輸入。假設{a=5,b=8},具體值和符號值混合執(zhí)行。輸入實際值,
【參考文獻】:
期刊論文
[1]基于符號執(zhí)行與模糊測試的混合測試方法[J]. 謝肖飛,李曉紅,陳翔,孟國柱,劉楊. 軟件學報. 2019(10)
[2]程序分析研究進展[J]. 張健,張超,玄躋峰,熊英飛,王千祥,梁彬,李煉,竇文生,陳振邦,陳立前,蔡彥. 軟件學報. 2019(01)
[3]程序理解:現(xiàn)狀與未來[J]. 金芝,劉芳,李戈. 軟件學報. 2019(01)
[4]基于變量符號關聯(lián)分析的程序狀態(tài)優(yōu)化方法[J]. 郭曦,王盼. 通信學報. 2018(06)
[5]一種基于程序功能標簽切片的制導符號執(zhí)行分析方法[J]. 甘水滔,王林章,謝向輝,秦曉軍,周林,陳左寧. 軟件學報. 2019(11)
[6]一種符號執(zhí)行制導的循環(huán)內界分析方法[J]. 趙祖威,馮世寧,湯恩義,陳鑫,李宣東,潘敏學,趙晨. 電子學報. 2017(11)
[7]基于懶符號執(zhí)行的軟件脆弱性路徑求解算法[J]. 秦曉軍,周林,陳左寧,甘水滔. 計算機學報. 2015(11)
[8]基于k近鄰最弱前置條件的程序多路徑驗證方法[J]. 郭曦,王盼,王建勇,張煥國. 計算機學報. 2015(11)
碩士論文
[1]并行分段式符號執(zhí)行的研究與實現(xiàn)[D]. 王穎.電子科技大學 2018
[2]基于動態(tài)符號執(zhí)行的模糊測試方法研究[D]. 陳禹行.大連海事大學 2018
[3]分段式混合執(zhí)行測試方法的研究[D]. 劉春宏.華東師范大學 2014
本文編號:3067955
【文章來源】:哈爾濱師范大學黑龍江省
【文章頁數(shù)】:40 頁
【學位級別】:碩士
【部分圖文】:
符號執(zhí)行示例程序
執(zhí)行樹
第二章相關技術研究9可行路徑,產生誤報。2.1.2動態(tài)符號執(zhí)行動態(tài)符號執(zhí)行(Dynamicsymbolicexecution,DSE)是一種實際輸入與傳統(tǒng)符號執(zhí)行相結合的代碼檢測技術,它通過自動生成的測試用例來檢測程序執(zhí)行中的可能路徑,并據(jù)此挖掘和檢測軟件漏洞或缺陷。動態(tài)符號執(zhí)行顯著特點是以實際數(shù)據(jù)為輸入來參與運行過程,并且通過約束求解器計算出多個測試用例,測試用例質量越高,數(shù)量越多,則挖掘程序漏洞的概率越大。在被測程序上,符號執(zhí)行先用給定的或隨機的具體輸入執(zhí)行,并同時進行符號執(zhí)行。通過插樁的方式收集程序執(zhí)行過程中路徑條件的符號表達式,對分支路徑條件進行取反得到新的路徑條件,然后使用約束求解器求解所收集到的路徑條件,以生成新的測試用例用于輸入,從而探索與未被覆蓋的路徑。當約束集超過求解器求解能力或者遇到外部調用的時候,用具體值替代使程序可繼續(xù)執(zhí)行。生成測試輸入對程序中路徑進行探索。如圖2-3所示。圖2-3動態(tài)符號執(zhí)行流程圖Figure2-3Dynamicsymbolexecutionflowgraph為了更好的闡述動態(tài)符號執(zhí)行過程,以示例2-1的例子來說明。動態(tài)符號執(zhí)行會首先產生隨機輸入。假設{a=5,b=8},具體值和符號值混合執(zhí)行。輸入實際值,
【參考文獻】:
期刊論文
[1]基于符號執(zhí)行與模糊測試的混合測試方法[J]. 謝肖飛,李曉紅,陳翔,孟國柱,劉楊. 軟件學報. 2019(10)
[2]程序分析研究進展[J]. 張健,張超,玄躋峰,熊英飛,王千祥,梁彬,李煉,竇文生,陳振邦,陳立前,蔡彥. 軟件學報. 2019(01)
[3]程序理解:現(xiàn)狀與未來[J]. 金芝,劉芳,李戈. 軟件學報. 2019(01)
[4]基于變量符號關聯(lián)分析的程序狀態(tài)優(yōu)化方法[J]. 郭曦,王盼. 通信學報. 2018(06)
[5]一種基于程序功能標簽切片的制導符號執(zhí)行分析方法[J]. 甘水滔,王林章,謝向輝,秦曉軍,周林,陳左寧. 軟件學報. 2019(11)
[6]一種符號執(zhí)行制導的循環(huán)內界分析方法[J]. 趙祖威,馮世寧,湯恩義,陳鑫,李宣東,潘敏學,趙晨. 電子學報. 2017(11)
[7]基于懶符號執(zhí)行的軟件脆弱性路徑求解算法[J]. 秦曉軍,周林,陳左寧,甘水滔. 計算機學報. 2015(11)
[8]基于k近鄰最弱前置條件的程序多路徑驗證方法[J]. 郭曦,王盼,王建勇,張煥國. 計算機學報. 2015(11)
碩士論文
[1]并行分段式符號執(zhí)行的研究與實現(xiàn)[D]. 王穎.電子科技大學 2018
[2]基于動態(tài)符號執(zhí)行的模糊測試方法研究[D]. 陳禹行.大連海事大學 2018
[3]分段式混合執(zhí)行測試方法的研究[D]. 劉春宏.華東師范大學 2014
本文編號:3067955
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3067955.html
最近更新
教材專著