符號執(zhí)行的路徑爆炸及約束求解問題研究
發(fā)布時(shí)間:2021-01-09 20:53
軟件測試是確保軟件質(zhì)量的重要方法,基本的技術(shù)手段是利用不同的測試案例去執(zhí)行被測程序,測試案例的選取密切地關(guān)系著軟件測試的質(zhì)量和軟件的質(zhì)量。符號執(zhí)行是一種經(jīng)典程序分析技術(shù),它將程序中的變量符號化來模擬程序的運(yùn)行,收集程序路徑,使用約束求解器對路徑約束條件求解后得到測試案例,F(xiàn)實(shí)中,符號執(zhí)行的應(yīng)用受到路徑爆炸和約束求解等問題的制約,被測程序中的循環(huán)結(jié)構(gòu)是重要的影響因素,可能會導(dǎo)致程序路徑規(guī)模成倍增長,為測試案例的生成增加困難,降低測試案例生成效率。針對軟件測試案例生成過程中循環(huán)結(jié)構(gòu)造成的路徑爆炸問題及約束求解問題進(jìn)行研究,主要研究內(nèi)容:(1)對符號執(zhí)行技術(shù)以及相關(guān)技術(shù)理論進(jìn)行充分調(diào)查和研究。介紹選擇性符號執(zhí)行和啟發(fā)式路徑搜索策略的理論與思想,詳細(xì)給出策略的概念、原理和執(zhí)行流程,并使用實(shí)例具體演示執(zhí)行步驟。提出基于控制流圖優(yōu)化循環(huán)結(jié)構(gòu)的路徑搜索策略。定義三種循環(huán)結(jié)構(gòu)和相關(guān)算法;結(jié)合選擇性符號執(zhí)行思想指導(dǎo)測試案例生成;在路徑選擇過程中引入啟發(fā)式搜索策略,對路徑進(jìn)行優(yōu)先級排序與選擇,引導(dǎo)路徑的生成。(2)對主流約束求解工具進(jìn)行充分研究和整理。為提高約束求解時(shí)間效率,提出綜合約束求解方法。對搜集到...
【文章來源】:大連海事大學(xué)遼寧省 211工程院校
【文章頁數(shù)】:58 頁
【學(xué)位級別】:碩士
【圖文】:
圖2.1示例代碼的符號執(zhí)行樹??Fig.?2.1?Symbol?execution?tree?for?example?code??2.?2動態(tài)符號執(zhí)行??
?符號執(zhí)行的路徑爆炸及約束求解問題研究???x<0??r^\??乂?>?,?X??<,y+z>5?'?a=2,b=2,c=3?^y+z>5?a=l,b=2,c=3???!?X?\??1???Z?Fx???Z?\?j??a=2,b=3,c=-3?a=2,b=2,c—3?a=l,b=3,c=-3?a=l,b=2,c=-3??圖2.1示例代碼的符號執(zhí)行樹??Fig.?2.1?Symbol?execution?tree?for?example?code??2.?2動態(tài)符號執(zhí)行??動態(tài)符號執(zhí)行在軟件測試案例生成研究領(lǐng)域受到非常廣泛的關(guān)注。第二節(jié)主要討論??動態(tài)符號執(zhí)行技術(shù)的核心思想和執(zhí)行過程,并使用示例代碼來輔助說明執(zhí)行過程;介紹??動態(tài)符號執(zhí)行技術(shù)中的程序插樁技術(shù)。??2.2.1動態(tài)符號執(zhí)行相關(guān)概念??隨著現(xiàn)代計(jì)算水平和存儲能力的優(yōu)化與增強(qiáng),作為路徑敏感分析技術(shù)的符號執(zhí)行通??過對內(nèi)存模型的優(yōu)化、搜索策略以及約束求解技術(shù)等方面的改進(jìn),根據(jù)發(fā)展?fàn)顩r,出現(xiàn)??動態(tài)符號執(zhí)行技術(shù)和選擇性符號執(zhí)行技術(shù)。??程序插樁??符、‘播?"否?,<?結(jié)束、)???^約束收集??初始輸入) ̄1符號化 ̄^丨??路徑搜索??L卜-十」—測試案例??約束求解??圖2.2動態(tài)符號執(zhí)行的通用框架模型??Fig.?2.2?General?framework?model?for?dynamic?symbol?execution??-8?-??
?大連海事大學(xué)專業(yè)學(xué)位碩士學(xué)位論文???APP]??KERNEL?Z??圖?3.2?APP,?LIB,KERNEL?三個(gè)模塊??Fig.?3.2?APP,?LIB,?KERNEL?modules??)?app?concrete??lib?symbolic??…tT?(.……1??>?>?\?kernel?concrete??\\?\?/?〉\app?concrete??圖3.3結(jié)果執(zhí)行樹??Fig.?3.3?Resulting?execution?tree??選擇性符號執(zhí)行需要把執(zhí)行狀態(tài)在符號域和具體域之間互相轉(zhuǎn)換。當(dāng)從符號域切換??到具體域時(shí),在調(diào)用約束求解器對當(dāng)前部分路徑的約束條件進(jìn)行求解得到的值域中,選??擇一個(gè)解作為具體執(zhí)行的輸入;當(dāng)從具體域切換到符號域時(shí),則把具體值用符號值代替,??同時(shí)利用具體執(zhí)行的路徑信息得到具體執(zhí)行過程中的約束。選擇性符號執(zhí)行在符號執(zhí)行??與具體執(zhí)行交替處理時(shí),須關(guān)注分析的準(zhǔn)確性,兩個(gè)區(qū)域轉(zhuǎn)換過程中需要設(shè)置界限,并??保證程序狀態(tài)的一致性,文獻(xiàn)[20]中由維持轉(zhuǎn)換過程中約束一致性的策略。??使用2.1節(jié)中Java語言的示例代碼來闡述選擇性符號執(zhí)行的原理,此時(shí)指定代碼中??風(fēng)y+2>5)0=3;}的代碼段為特殊區(qū)域,在此區(qū)域進(jìn)行符號分析,對其余代碼部分進(jìn)行具??體執(zhí)行。對指定的特殊區(qū)域進(jìn)行符號分析,僅有符號變量7和符號變量x作具體值??處理。假設(shè)隨機(jī)生成的初始輸入為x=0,;;=0,z=0。當(dāng)?shù)街付ǖ奶厥鈪^(qū)域進(jìn)行符號執(zhí)行時(shí),??-15?-??
【參考文獻(xiàn)】:
期刊論文
[1]形狀分析符號執(zhí)行引擎中的狀態(tài)合并[J]. 鄧維,李兆鵬. 計(jì)算機(jī)科學(xué). 2017(02)
[2]基于混合搜索的含邏輯“與”“或”的RM優(yōu)化算法[J]. 呂蔭潤,陳力,王翀,吳敬征,王永吉. 軟件學(xué)報(bào). 2017(10)
[3]改進(jìn)動態(tài)符號執(zhí)行中的非線性約束求解過程[J]. 董齊興,曾凡平,嚴(yán)俊,張輝,彭凌. 小型微型計(jì)算機(jī)系統(tǒng). 2014(11)
博士論文
[1]符號執(zhí)行可擴(kuò)展性及可行性關(guān)鍵技術(shù)研究[D]. 張羽豐.國防科學(xué)技術(shù)大學(xué) 2013
本文編號:2967380
【文章來源】:大連海事大學(xué)遼寧省 211工程院校
【文章頁數(shù)】:58 頁
【學(xué)位級別】:碩士
【圖文】:
圖2.1示例代碼的符號執(zhí)行樹??Fig.?2.1?Symbol?execution?tree?for?example?code??2.?2動態(tài)符號執(zhí)行??
?符號執(zhí)行的路徑爆炸及約束求解問題研究???x<0??r^\??乂?>?,?X??<,y+z>5?'?a=2,b=2,c=3?^y+z>5?a=l,b=2,c=3???!?X?\??1???Z?Fx???Z?\?j??a=2,b=3,c=-3?a=2,b=2,c—3?a=l,b=3,c=-3?a=l,b=2,c=-3??圖2.1示例代碼的符號執(zhí)行樹??Fig.?2.1?Symbol?execution?tree?for?example?code??2.?2動態(tài)符號執(zhí)行??動態(tài)符號執(zhí)行在軟件測試案例生成研究領(lǐng)域受到非常廣泛的關(guān)注。第二節(jié)主要討論??動態(tài)符號執(zhí)行技術(shù)的核心思想和執(zhí)行過程,并使用示例代碼來輔助說明執(zhí)行過程;介紹??動態(tài)符號執(zhí)行技術(shù)中的程序插樁技術(shù)。??2.2.1動態(tài)符號執(zhí)行相關(guān)概念??隨著現(xiàn)代計(jì)算水平和存儲能力的優(yōu)化與增強(qiáng),作為路徑敏感分析技術(shù)的符號執(zhí)行通??過對內(nèi)存模型的優(yōu)化、搜索策略以及約束求解技術(shù)等方面的改進(jìn),根據(jù)發(fā)展?fàn)顩r,出現(xiàn)??動態(tài)符號執(zhí)行技術(shù)和選擇性符號執(zhí)行技術(shù)。??程序插樁??符、‘播?"否?,<?結(jié)束、)???^約束收集??初始輸入) ̄1符號化 ̄^丨??路徑搜索??L卜-十」—測試案例??約束求解??圖2.2動態(tài)符號執(zhí)行的通用框架模型??Fig.?2.2?General?framework?model?for?dynamic?symbol?execution??-8?-??
?大連海事大學(xué)專業(yè)學(xué)位碩士學(xué)位論文???APP]??KERNEL?Z??圖?3.2?APP,?LIB,KERNEL?三個(gè)模塊??Fig.?3.2?APP,?LIB,?KERNEL?modules??)?app?concrete??lib?symbolic??…tT?(.……1??>?>?\?kernel?concrete??\\?\?/?〉\app?concrete??圖3.3結(jié)果執(zhí)行樹??Fig.?3.3?Resulting?execution?tree??選擇性符號執(zhí)行需要把執(zhí)行狀態(tài)在符號域和具體域之間互相轉(zhuǎn)換。當(dāng)從符號域切換??到具體域時(shí),在調(diào)用約束求解器對當(dāng)前部分路徑的約束條件進(jìn)行求解得到的值域中,選??擇一個(gè)解作為具體執(zhí)行的輸入;當(dāng)從具體域切換到符號域時(shí),則把具體值用符號值代替,??同時(shí)利用具體執(zhí)行的路徑信息得到具體執(zhí)行過程中的約束。選擇性符號執(zhí)行在符號執(zhí)行??與具體執(zhí)行交替處理時(shí),須關(guān)注分析的準(zhǔn)確性,兩個(gè)區(qū)域轉(zhuǎn)換過程中需要設(shè)置界限,并??保證程序狀態(tài)的一致性,文獻(xiàn)[20]中由維持轉(zhuǎn)換過程中約束一致性的策略。??使用2.1節(jié)中Java語言的示例代碼來闡述選擇性符號執(zhí)行的原理,此時(shí)指定代碼中??風(fēng)y+2>5)0=3;}的代碼段為特殊區(qū)域,在此區(qū)域進(jìn)行符號分析,對其余代碼部分進(jìn)行具??體執(zhí)行。對指定的特殊區(qū)域進(jìn)行符號分析,僅有符號變量7和符號變量x作具體值??處理。假設(shè)隨機(jī)生成的初始輸入為x=0,;;=0,z=0。當(dāng)?shù)街付ǖ奶厥鈪^(qū)域進(jìn)行符號執(zhí)行時(shí),??-15?-??
【參考文獻(xiàn)】:
期刊論文
[1]形狀分析符號執(zhí)行引擎中的狀態(tài)合并[J]. 鄧維,李兆鵬. 計(jì)算機(jī)科學(xué). 2017(02)
[2]基于混合搜索的含邏輯“與”“或”的RM優(yōu)化算法[J]. 呂蔭潤,陳力,王翀,吳敬征,王永吉. 軟件學(xué)報(bào). 2017(10)
[3]改進(jìn)動態(tài)符號執(zhí)行中的非線性約束求解過程[J]. 董齊興,曾凡平,嚴(yán)俊,張輝,彭凌. 小型微型計(jì)算機(jī)系統(tǒng). 2014(11)
博士論文
[1]符號執(zhí)行可擴(kuò)展性及可行性關(guān)鍵技術(shù)研究[D]. 張羽豐.國防科學(xué)技術(shù)大學(xué) 2013
本文編號:2967380
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/2967380.html
最近更新
教材專著