軟件完整路徑生成技術(shù)研究
發(fā)布時間:2021-01-06 00:58
路徑測試是一種覆蓋程度較高的白盒測試方法,測試軟件的完整路徑可以有效提高軟件可靠性,而路徑生成是路徑測試的前提。隨著軟件規(guī)模和復(fù)雜性的日益增加,程序中分支、循環(huán)以及函數(shù)調(diào)用的嵌套使用,使得路徑的長度和數(shù)量激增。目前已有的測試方法難以自動生成軟件的完整路徑,實現(xiàn)對路徑的詳細(xì)測試。針對上述問題,本文提出了一種完整路徑自動生成模型。圍繞該模型本文做了以下研究:(1)針對分支和循環(huán)引起的路徑爆炸問題,提出了一種動靜結(jié)合的基本路徑集生成方法。首先基于深度優(yōu)先搜索策略,結(jié)合回溯法、關(guān)鍵路徑法等靜態(tài)選路方法和動態(tài)執(zhí)行方法生成函數(shù)內(nèi)路徑,隨后判定路徑可達(dá)性和線性無關(guān)性,以此來生成可達(dá)的基本路徑集。(2)針對函數(shù)調(diào)用引起的路徑爆炸問題,提出了一種啟發(fā)式過程間路徑生成方法。首先將函數(shù)調(diào)用分為無影響調(diào)用、局部影響調(diào)用、后置影響調(diào)用和局部-后置影響調(diào)用四類,隨后對不同分類采用隨機(jī)選擇策略和區(qū)間匹配策略,最后根據(jù)目標(biāo)函數(shù)啟發(fā)式引導(dǎo)過程間路徑生成。上述方法在功能測試系統(tǒng)(Function Test System,FTS)上進(jìn)行了實現(xiàn),并選取了 3個開源C語言工程進(jìn)行驗證。實驗結(jié)果表明,本文提出的完整路徑自動生成模...
【文章來源】:北京郵電大學(xué)北京市 211工程院校 教育部直屬院校
【文章頁數(shù)】:68 頁
【學(xué)位級別】:碩士
【部分圖文】:
圖3-4三種函數(shù)調(diào)用??
數(shù)節(jié)點B之間的邊;iVentry是CG的根節(jié)點,也即被測工程的入口節(jié)點,在C語??言工程中通常為main函數(shù)。??代碼3-3的函數(shù)調(diào)用關(guān)系圖如圖3-5所示。??fund???>jr???fiinc2??func3?func4???????圖3-5代碼3-3對應(yīng)的函數(shù)調(diào)用關(guān)系圖??定義3-8函數(shù)調(diào)用路徑:函數(shù)調(diào)用路徑(Function?Call?Path,?FCP)是函數(shù)節(jié)??點的序列,形如:FCP?=?/】->?/2-?>-?。相鄰兩個函數(shù)/?和力之間當(dāng)函數(shù),??調(diào)用了函數(shù)石,或者函數(shù)調(diào)用路徑中函數(shù)f;?前面的某函數(shù)調(diào)用了/再順序調(diào)用石,??都有函數(shù)調(diào)用路徑中的邊乂+-?>?/}。??在完整路徑自動生成模型中,根據(jù)函數(shù)調(diào)用路徑生成過程間路徑,直至生成??21??
4.1系統(tǒng)架構(gòu)??本文在上一章節(jié)提出的完整路徑自動生成模型(WPPAGM)的系統(tǒng)架構(gòu)圖??如圖4-1所示,該框架可以自動對軟件源代碼進(jìn)行靜態(tài)分析以提取軟件的基本信??息,包括軟件的函數(shù)調(diào)用關(guān)系圖以及各個函數(shù)單元的控制流圖,同時分析軟件的??功能需求說明書以提取其中所定義的軟件功能,然后自動生成軟件路徑,以及測??試用例自動生成等功能。??y?p??????軟件湃代碼一■?函_莫?函數(shù)內(nèi)基本?J函數(shù)內(nèi)路徑??軟件功能軟件功能獲?、完整路徑生成―可_^4^定??需求說明書?取????^???m??J?????O?〇???^?I??故障檢測??功能測試?]測試用例?+?測試用例自動生成??尖馬sit■主研允?benchmark??圖4-1系統(tǒng)架構(gòu)??如圖4-1所示,對軟件源代碼進(jìn)行靜態(tài)分析實現(xiàn)函數(shù)建模之后,基于函數(shù)建??模得到的信息生成每個函數(shù)的基本路徑,并根據(jù)函數(shù)內(nèi)路徑可達(dá)性判定技術(shù)進(jìn)行??可達(dá)性判定,然后生成完整路徑,并利用函數(shù)間路徑可達(dá)性判定技術(shù)進(jìn)行過程間??路徑可達(dá)性判定。然后實現(xiàn)完整路徑的測試用例自動生成。針對一條被判定為可??達(dá)的完整路徑,從路徑中提取的約束集的規(guī)模通常較大。首先基于一階邏輯的理??論,檢測并剔除約束集中的冗余約束,對路徑約束集進(jìn)行約減,以達(dá)到減小約束??27??
本文編號:2959617
【文章來源】:北京郵電大學(xué)北京市 211工程院校 教育部直屬院校
【文章頁數(shù)】:68 頁
【學(xué)位級別】:碩士
【部分圖文】:
圖3-4三種函數(shù)調(diào)用??
數(shù)節(jié)點B之間的邊;iVentry是CG的根節(jié)點,也即被測工程的入口節(jié)點,在C語??言工程中通常為main函數(shù)。??代碼3-3的函數(shù)調(diào)用關(guān)系圖如圖3-5所示。??fund???>jr???fiinc2??func3?func4???????圖3-5代碼3-3對應(yīng)的函數(shù)調(diào)用關(guān)系圖??定義3-8函數(shù)調(diào)用路徑:函數(shù)調(diào)用路徑(Function?Call?Path,?FCP)是函數(shù)節(jié)??點的序列,形如:FCP?=?/】->?/2-?>-?。相鄰兩個函數(shù)/?和力之間當(dāng)函數(shù),??調(diào)用了函數(shù)石,或者函數(shù)調(diào)用路徑中函數(shù)f;?前面的某函數(shù)調(diào)用了/再順序調(diào)用石,??都有函數(shù)調(diào)用路徑中的邊乂+-?>?/}。??在完整路徑自動生成模型中,根據(jù)函數(shù)調(diào)用路徑生成過程間路徑,直至生成??21??
4.1系統(tǒng)架構(gòu)??本文在上一章節(jié)提出的完整路徑自動生成模型(WPPAGM)的系統(tǒng)架構(gòu)圖??如圖4-1所示,該框架可以自動對軟件源代碼進(jìn)行靜態(tài)分析以提取軟件的基本信??息,包括軟件的函數(shù)調(diào)用關(guān)系圖以及各個函數(shù)單元的控制流圖,同時分析軟件的??功能需求說明書以提取其中所定義的軟件功能,然后自動生成軟件路徑,以及測??試用例自動生成等功能。??y?p??????軟件湃代碼一■?函_莫?函數(shù)內(nèi)基本?J函數(shù)內(nèi)路徑??軟件功能軟件功能獲?、完整路徑生成―可_^4^定??需求說明書?取????^???m??J?????O?〇???^?I??故障檢測??功能測試?]測試用例?+?測試用例自動生成??尖馬sit■主研允?benchmark??圖4-1系統(tǒng)架構(gòu)??如圖4-1所示,對軟件源代碼進(jìn)行靜態(tài)分析實現(xiàn)函數(shù)建模之后,基于函數(shù)建??模得到的信息生成每個函數(shù)的基本路徑,并根據(jù)函數(shù)內(nèi)路徑可達(dá)性判定技術(shù)進(jìn)行??可達(dá)性判定,然后生成完整路徑,并利用函數(shù)間路徑可達(dá)性判定技術(shù)進(jìn)行過程間??路徑可達(dá)性判定。然后實現(xiàn)完整路徑的測試用例自動生成。針對一條被判定為可??達(dá)的完整路徑,從路徑中提取的約束集的規(guī)模通常較大。首先基于一階邏輯的理??論,檢測并剔除約束集中的冗余約束,對路徑約束集進(jìn)行約減,以達(dá)到減小約束??27??
本文編號:2959617
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/2959617.html
最近更新
教材專著