freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于模型的自動(dòng)化測試工具的實(shí)現(xiàn)_畢業(yè)設(shè)計(jì)論文(文件)

2025-07-30 12:55 上一頁面

下一頁面
 

【正文】 各項(xiàng)特點(diǎn),該系統(tǒng)和我們熟知的 ATM 系統(tǒng)有所不同,論文在后面會(huì)詳細(xì)說明這些區(qū)別。利用這些繪圖工具就可以在右側(cè)的繪圖區(qū)繪制 FSM 可視化模型,此外可以隨時(shí)通過切換上方選項(xiàng)卡來查看模型序列化后的 XML 格式內(nèi)容。選中的 token 或函數(shù)過程的輸入?yún)?shù)和輸出參數(shù)位于詳情面板的中間,用戶設(shè)置錯(cuò)誤時(shí)下方提示區(qū)會(huì)給出友 基于模型的自動(dòng)化測試工具的實(shí)現(xiàn) 第 22 頁 共 13 頁 好的提示信息。和現(xiàn)實(shí)中的 ATM 系統(tǒng)相比,我們添加了 ATM 的初始配置過程(動(dòng)作 initATM),用以設(shè)定 ATM 所屬銀行的名稱,結(jié)合不同的銀行卡類型來說明 pairwise 測試功能。其中定義 token 時(shí)會(huì)彈出如圖 54 的對(duì)話框,用于詳細(xì)輸入 token 各項(xiàng)屬性內(nèi)容,雙擊樹結(jié)構(gòu)中已添加好的 token 節(jié)點(diǎn)可以重新編輯。圖 55 中展示的是函數(shù)過程 TripleInvalidPswd,它的 token 序列為連續(xù)三次調(diào)用 EnterPswd,每次 EnterPswd 調(diào)用傳入的參數(shù)都為 0,代表錯(cuò)誤的密碼。圖 56 中識(shí)別出了 6 個(gè)變量,分別代表銀行卡的權(quán)限類型、實(shí)際操作類型、操作的操作數(shù)、操作數(shù)是否會(huì)導(dǎo)致余額為負(fù)數(shù)、操作數(shù)是否超過 ATM 上限、 ATM 所屬銀行。工具最終搜索到了 17 條有效路徑(圖 57a),如果只限定路徑長度,那么將產(chǎn)生 264 條可執(zhí)行路徑(圖 57b),其中包含大量的冗余路徑。傳統(tǒng)的測試技術(shù)越來越難以滿足日益復(fù)雜龐大系統(tǒng)的測試需求,高效的測試方法和測試工具成為業(yè)界追逐的主流。 我們開發(fā)的工具使用了較為簡便和熟悉的有限狀態(tài)機(jī)模型,同時(shí)提供了對(duì)模型的可視化輸入和持久序列化功能。隨著軟件測試領(lǐng)域不斷涌現(xiàn)的測試用例生成算法,可以考慮讓工具支持更多更強(qiáng)大的算法。 Sons, New York, 1979. [4] Guideline for Lifecycle Validation, Verification, and Testing of Computer Software. National Bureau of Standards Report NBS FIPS 101. Washington, .. 1983. [5] ANSI/IEEE STD 8291983 Standard for Software 。如果日后的工具能夠支持自動(dòng)分析自然語言需求來生成系統(tǒng)模型,對(duì)于完善整個(gè)軟件測試過程的自動(dòng)化將有著重大意 義。組合測試在保證測試用例對(duì)所有取值組合進(jìn)行足夠覆蓋的前提下,有效地壓縮了多參數(shù)多可能取值情況下生成的測試用例數(shù)目。測試人員的關(guān)注點(diǎn)在于構(gòu)建一個(gè)能夠描述被測系統(tǒng)各方面數(shù)據(jù)和行為的形式化機(jī)器可讀模型,通過對(duì)模型的分析就可以自動(dòng)生成測試用例,包括提供給待測試系統(tǒng)的輸入和預(yù)期輸出。因?yàn)樗械?token 都未實(shí)現(xiàn),所以全部的測試用例都顯示為不通過。 圖 56 組合測試生成 測試用例生成算法的另一大模塊是模型遍歷算法,其相關(guān)組件位于標(biāo)簽頁中的最后一項(xiàng)。 首先切換到變量信息標(biāo)簽頁,工具會(huì)把 FSM 模型中用過的變量都識(shí)別出來,而常量則不被列出。 基于模型的自動(dòng)化測試工具的實(shí)現(xiàn) 第 23 頁 共 13 頁 圖 53 定義 token 和函數(shù)過程 圖 54 添加 token 的對(duì)話框 轉(zhuǎn)換動(dòng)作(包括函數(shù)過程)都是由 token 序列組成的,工具提供從 token 列表中直接拖放添加的方式,同時(shí)支持特定 token 在序列中位置的上移、下移或刪除。輸入密碼的過程被區(qū)分為正確輸入與連續(xù)三次輸錯(cuò),連續(xù)三次輸錯(cuò)的動(dòng)作會(huì)用到 token 函數(shù)過程,模型中不考慮連續(xù)輸錯(cuò)不足三次又最后輸入正確的情 況。至于下方選項(xiàng)卡上的另外兩個(gè)標(biāo)簽頁,分別用于設(shè)置 pairwise 測試參數(shù)取值和遍歷模型生 成測試用例。下方選項(xiàng)卡默認(rèn)選擇的是 FSM 詳情面板,當(dāng)繪圖區(qū)中 FSM 模型的轉(zhuǎn)換動(dòng)作或函數(shù)過程組件被選中時(shí),其內(nèi)部包含的 token 或函數(shù)過程將被列在詳情面板的左側(cè)。 圖 51 主界面 工具頂端的工具欄提供了一些基本操作的按鈕,例如新建、打開、保存等功能。方法 MakeSuite 實(shí)際調(diào)用的是 FSM 模型遍歷算法,最后方法 Save 根據(jù)收集好的信息按照一定的格式生成測試用例文件,用戶也可以根據(jù)自己需要覆寫該方法。用戶自己實(shí)現(xiàn)的 pairwise 算法只要滿足輸入?yún)?shù)和輸出格式與我們?cè)O(shè)計(jì)的相同,即能 基于模型的自動(dòng)化測試工具的實(shí)現(xiàn) 第 20 頁 共 13 頁 夠在配置文件中指定并良好地整合。這里篩選出的 4 種取值情況都只能新覆蓋 1 種取值組合,所以使用 AB 的 00,至此我們就生成了第一個(gè)測試用例,隨后的測試用例生成都如上述過程。當(dāng)存在多個(gè)相同最大剩余取值組合的參數(shù)組合時(shí),只選擇第一個(gè)參數(shù)組合的第一種取值情況,即 AC 的 00 情況首先被選用。每當(dāng)生成一種新的測試用例時(shí),被新測試用例覆蓋的取值情況狀態(tài)會(huì)跟隨之改變,算法直到所有取值情況的狀態(tài)都為覆蓋時(shí)終止。 圖 46 參數(shù)組合示例 [22] 基于模型的自動(dòng)化測試工具的實(shí)現(xiàn) 第 19 頁 共 13 頁 準(zhǔn)備階段將計(jì)算出生成階段所要用到的各種信息,包括需要被覆蓋的不同參數(shù)取值組合。為了不讓搜索得到的路徑包含太多重復(fù)回路,如果新擴(kuò)展的動(dòng)作已經(jīng)被原 路徑多次包含,該路徑及其擴(kuò)展路徑都將被拋棄。 折衷的辦法是通過路徑長度來限制測試用例的產(chǎn)生,同時(shí)用戶構(gòu)建 FSM 模型時(shí)有意識(shí)地把復(fù)雜系統(tǒng)拆分為幾個(gè)子系統(tǒng)來單獨(dú)進(jìn)行測試,繪制 FSM 模型時(shí)也可以分別指定不同的 基于模型的自動(dòng)化測試工具的實(shí)現(xiàn) 第 18 頁 共 13 頁 初始狀態(tài)來尋找路徑。方法 Serialize負(fù)責(zé)把對(duì)象的某個(gè)實(shí)例序列化到某個(gè)輸出流中,方法 DeSerialize 則負(fù)責(zé)從某個(gè)輸入流中反 基于模型的自動(dòng)化測試工具的實(shí)現(xiàn) 第 17 頁 共 13 頁 序列化出原始狀態(tài)的對(duì)象。每個(gè)希望被序列化的公共屬性必須提供 set 和 get 方法,否則該屬性無法被正確序列化到 XML 文件中。類 FunctionR 以灰色粗線加圓點(diǎn)的形式繪制用戶自定義函數(shù)過程的標(biāo)記,默認(rèn)排列在 FSM 繪制區(qū)域的左上角。類 StateR 和 TourR 直接實(shí)現(xiàn)了接 口 IRenderable,但是類 ActionR 和類 FunctionR 實(shí)現(xiàn)的則是接口 IRenderable 的擴(kuò)展接口 IActionRenderable,該接口添加了一個(gè)保存轉(zhuǎn)換動(dòng)作信息的域。類 Variable 中包含一個(gè)根據(jù)其標(biāo)識(shí)名稱 name 來判斷的方法 IsVariable。類 TokenImpl和類 FunctionImpl 繼承了類 ActionImpl,其中類 TokenImpl 表示的是用戶定義的基本 token,而類 FunctionImpl 表示的這些 token 順序序列組成的函數(shù)過程。在尋找可執(zhí)行的測試路徑過程中,程序從初始狀態(tài)開始深度遍歷 FSM 有向圖,直到到達(dá)某個(gè)終止?fàn)顟B(tài)或路徑長度達(dá)到限制才結(jié)束。 0..10..*0..10..*0..10..*0..10..*0..10..10..10..*0..10..*1..11..10..10..*FSMstatesactionsstateMapactionMap: ListState: ListAction: Dictionarystring,State: Dictionarystring,Action++++++Initialize ()GenerateTours ()GetAction ()GetState ()LoadFromXML ()SaveToXML ()...: void: ListTour: Action: State: void: voidActionidfromtostubsheadtail: string: string: string: ListActionImpl: State: State+++++AddActionImpl ()RemoveActionImpl ()RemoveActionImplAt ()MoveUp ()GenDefaults ()...: void: void: void: void: voidActionImplnameinparasoutparas: string: ListParameter: ListParameter+++Apply ()GenDefaults ()GetCopy ()...: string: void: ActionImplParameternamedecriptionvar: string: string: Variable+ GetCopyWithoutVarValues ()...: ParameterVariablenameisVarvalues: string: boolean: Liststring IsVariable ()...: boolFunctionImpl action : Action++GenDefaults ()GetCopy ()...: void: ActionImplTokenImpl++GetDefaults ()GetCopy ()...: void: ActionImplStateidtypenextActions: string: StateType: ListActionTourentryactionsididCounter: State: ListAction: string: int+++Apply ()ToString ()ResetIdCounter ()...: void: string: void 圖 41 FSM 數(shù)據(jù)模型的類圖 類 FSM 中記錄著系統(tǒng) FSM 數(shù)據(jù)模型的所有信息,它里面有兩個(gè)鏈表分別記錄 FSM 的狀態(tài)實(shí)例和轉(zhuǎn)換動(dòng)作實(shí)例,同時(shí)有兩個(gè) Dictionary 分別記錄狀態(tài)和轉(zhuǎn)換動(dòng)作的名稱與實(shí)例之間的映射關(guān)系。最后把參數(shù)變量取值代入可執(zhí)行路徑中,即得到測試用例。比如狀態(tài)名稱,轉(zhuǎn)換動(dòng)作名稱,用戶所定義 token 的名稱和所需輸入輸出參數(shù),函數(shù)過程的名稱和其中包含的 token 執(zhí)行序列等等。一個(gè) token 或函數(shù)過程可以在相同的或者不同的狀態(tài)轉(zhuǎn)換動(dòng)作中被反復(fù)使用,只要求這些token 或函數(shù)過程方法頭中所定義的參數(shù)被正確地賦予某個(gè)常量或者變量。其中考慮到 token 的可復(fù)用性,用戶可以直接在工具上定義 token 順序執(zhí)行序列組成的函數(shù)過程,更復(fù)雜的函數(shù)過程則通過添加新的 token 實(shí)現(xiàn)。對(duì)于相同輸出結(jié)果的某些參數(shù)取值組合,把輸出結(jié)果也當(dāng)作 pairwise 算法輸入?yún)?shù)的一項(xiàng),輸出結(jié)果列和其它輸入?yún)?shù)的區(qū)別在于其取值唯一。圖 25 展示了一個(gè)測試工具自動(dòng)生成的測試用例,用戶需要實(shí)現(xiàn) token_1 和 token_2的具體邏輯,然后測試用例就能夠被真正執(zhí)行了。 嚴(yán)格地說,我們編寫的工具只負(fù)責(zé)生成基本的測試用例框架,或者稱為抽象的測試用例。同時(shí)給系統(tǒng)留好接口,利于以后換用新的 pairwise 生成算法,具體的算法設(shè)計(jì)將在第四章介紹。微軟開發(fā)的工具 PICT 采用類似 AETG 的方法生成測試用例 [22],不同之處在于,PICT 每次產(chǎn)生的結(jié)果是相同的。近年來流行的模擬自然界行為的智能優(yōu)化算法中,目前已經(jīng)應(yīng)用到組合測試中的主要有模擬退火、禁忌搜索、遺傳算法等等。 數(shù)學(xué)構(gòu)造方法僅限于某些特定大小或者組合強(qiáng)度的覆蓋數(shù)組的構(gòu)造,不具有通用性。坍塌的缺陷在于,最終得到的覆蓋數(shù)組往往并不是最優(yōu)解,一般比最優(yōu)解要大。 基于模型的自動(dòng)化測試工具的實(shí)現(xiàn) 第 10 頁 共 13 頁 組合測試用例生成的本質(zhì)是構(gòu)造覆蓋數(shù)組, 最早的構(gòu)造方法是利用正交數(shù)組, 其定義和覆蓋數(shù)組類似,唯一區(qū)別在于正交數(shù)組中所有 t 元組出現(xiàn)的次數(shù)相同,而覆蓋數(shù)組不保證這一點(diǎn)。 圖 24 3way 覆蓋數(shù)組 圖 24 列出了對(duì)于具有 10 個(gè)變量、每個(gè)變量各有兩種取值的 3way 覆蓋數(shù)組。 編號(hào) 操作系統(tǒng) 瀏覽器 網(wǎng)絡(luò)協(xié)議 處理器平臺(tái) 數(shù)據(jù)庫 1 XP IE IPv4 Intel MySQL 2 XP FireFox
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1