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

正文內(nèi)容

基于模型的自動(dòng)化測(cè)試工具的實(shí)現(xiàn)_畢業(yè)設(shè)計(jì)論文-免費(fèi)閱讀

  

【正文】 而且該測(cè)試工具仍需要人工輸入系統(tǒng)模型,系統(tǒng)模型的構(gòu)建過(guò)程并不是特別的輕松?;谀P偷臏y(cè)試是一種輕量級(jí)自動(dòng)生成測(cè)試用例的方法。工具利用pairwise模塊一共只生成了11種組合情況,遠(yuǎn)小于直接正交排列組合得到的216種。函數(shù)過(guò)程的定義則只需要輸入函數(shù)過(guò)程的名稱,隨后如轉(zhuǎn)換動(dòng)作一樣填充token序列。右下角是WinForm提供的PropertyGrid組件,用于詳細(xì)設(shè)置組件內(nèi)置對(duì)象的各項(xiàng)屬性。完成工具的主界面如圖51。對(duì)于測(cè)試工具來(lái)說(shuō),這些操作都由類PictFile封裝。如果ri為空,那么選擇一種剩有最多未覆蓋取值組合的參數(shù)組合,比如圖46例子中生成第一個(gè)測(cè)試用例時(shí)AB剩有4種取值組合,而AC和BC則各有6種取值組合。算法分為兩個(gè)階段:準(zhǔn)備階段和生成階段。但是這樣遍歷出來(lái)的測(cè)試用例數(shù)目又往往過(guò)于龐大,其中很大一部分還是冗余性測(cè)試用例。首先把準(zhǔn)備序列化的對(duì)象標(biāo)記為Serializable,然后根據(jù)不同的需要和屬性特點(diǎn)把公共屬性都標(biāo)記為XmlAttribute、XmlArray或XmlIgnore,公共屬性中的自定義類型也需要在定義文件中添加相應(yīng)的標(biāo)記。圖42 FSM模型可視化模塊的類圖接口IRenderable定義了新組件通用的屬性和方法,包括組件的位置信息、繪制組件過(guò)程中觸發(fā)不同事件的響應(yīng)函數(shù)(Paint、PrePaint、PostPaint和PaintFocus),方法IsSelected則用于判斷該組件是否被鼠標(biāo)選中。抽象類ActionImpl描述了測(cè)試中調(diào)用的SUT接口,準(zhǔn)確地說(shuō)是測(cè)試適配器層中的接口,它的兩個(gè)抽象方法GenDefault和GetCopy分別用于初始化和返回克隆實(shí)例。對(duì)于一些簡(jiǎn)單的set和get方法圖中并沒(méi)有標(biāo)出,其它輔助性的方法也予于省略。. 系統(tǒng)架構(gòu)工具設(shè)計(jì)的主要目的是為了自動(dòng)生成測(cè)試用例,而模型是驅(qū)動(dòng)MBT各測(cè)試過(guò)程的根本,所以系統(tǒng)架構(gòu)中最核心的部分是FSM的數(shù)據(jù)模型,數(shù)據(jù)模型描述了FSM中各個(gè)狀態(tài)和轉(zhuǎn)換動(dòng)作的詳細(xì)屬性。 第三章 系統(tǒng)架構(gòu)3.. 功能概述及流程課題要求完成的基于模型的自動(dòng)化測(cè)試工具的功能包括:支持輸入FSM模型、支持添加token、支持pairwise組合測(cè)試、支持生成測(cè)試用例框架、支持序列化FSM模型到文件和反序列化讀入。這樣MBT的整個(gè)測(cè)試工具都變得項(xiàng)目之間可移植了,如果某一測(cè)試條件和預(yù)期結(jié)果不同則在token中拋出異常,拋出的異常隨后被測(cè)試工具捕獲,最終判定該測(cè)試用例不通過(guò)。我們將模仿PICT工具中pairwise算法的主要思想,使用一維擴(kuò)展的貪心算法來(lái)生成覆蓋數(shù)組。啟發(fā)式搜索算法是利用一個(gè)已有的數(shù)組,通過(guò)合適的變換得到一個(gè)更優(yōu)的覆蓋矩陣,不斷地變換直到得到一個(gè)較優(yōu)的矩陣。利用計(jì)算機(jī)也可以自動(dòng)求解出部分類型的正交數(shù)組,由已知的大覆蓋數(shù)組構(gòu)造小覆蓋數(shù)組的方法被稱為坍塌[19]。前面的經(jīng)驗(yàn)告訴我們,3way的測(cè)試用例就能夠達(dá)到90%以上的錯(cuò)誤發(fā)現(xiàn)率,具有較高的收益代價(jià)比。2目前pairwise是使用最普遍的組合測(cè)試技術(shù),因?yàn)檐浖械慕^大部分錯(cuò)誤都只由一個(gè)或兩個(gè)參數(shù)造成,pairwise生成的測(cè)試用例能夠覆蓋足夠的錯(cuò)誤空間。后來(lái)人們發(fā)現(xiàn)通過(guò)巧妙地選取測(cè)試用例,只要求某些參數(shù)的組合情況被包含,能夠在保證測(cè)試效率的同時(shí)大大縮減測(cè)試用例數(shù)量。當(dāng)FSM包含的狀態(tài)比較多時(shí),遍歷組成FSM有向圖產(chǎn)生的測(cè)試用例數(shù)量可能太多,不僅難以測(cè)試包含冗余測(cè)試用例。為此,Hamon 等人詳細(xì)討論提出了高效模型檢測(cè)的方法[16]。這些等價(jià)類就可以用于生成測(cè)試用例,最簡(jiǎn)單的劃分方法是析取范式的方法。把系統(tǒng)抽象為變量集合和修改這些變量操作的基于Pre/Post的模型需要測(cè)試人員預(yù)先學(xué)習(xí)一段時(shí)間才能完全掌握,所以基本不予考慮。在MBT中使用過(guò)的模型可能有幾十甚至上百種,我們不可能也沒(méi)有必要去逐一了解,Mark Utting和Bruno Legeard把它們大致分為以下幾種 [14]:類型示例基于Pre/PostB、OCL、JML、Spec、Z基于轉(zhuǎn)換FSM、狀態(tài)圖、UML狀態(tài)機(jī)統(tǒng)計(jì)式馬爾可夫鏈基于歷史消息隊(duì)列圖、UML順序圖函數(shù)式HOL系統(tǒng)操作式Petri網(wǎng)數(shù)據(jù)流式Lustre、塊狀圖表21 MBT模型分類基于轉(zhuǎn)換的模型是我們最為熟悉的模型類型,它們集中于描述系統(tǒng)在不同狀態(tài)之間的轉(zhuǎn)換過(guò)程。針對(duì)各個(gè)不同的模型表現(xiàn)形式,如今已有許多測(cè)試用例算法與之對(duì)應(yīng),我們可以在實(shí)際應(yīng)用過(guò)程中靈活地借鑒參考來(lái)設(shè)計(jì)自己的算法。. 論文結(jié)構(gòu)本文第二章主要介紹MBT測(cè)試技術(shù),依照MBT測(cè)試的一般流程來(lái)說(shuō)明工具使用的模型表現(xiàn)形式、測(cè)試用例生成算法和預(yù)期輸出的生成。認(rèn)識(shí)到這些MBT的不足之處,我們才能更加正確地利用MBT。其它形式的軟件測(cè)試一般無(wú)法發(fā)現(xiàn)此類錯(cuò)誤,但是MBT可以。IBM公司和BMW公司的研究表明,MBT發(fā)現(xiàn)的錯(cuò)誤和手工設(shè)計(jì)的測(cè)試集發(fā)現(xiàn)的錯(cuò)誤數(shù)量差不多。測(cè)試用例能夠被快速和反復(fù)地執(zhí)行,方便地使得發(fā)現(xiàn)的軟件錯(cuò)誤重現(xiàn)。如果一味地追求缺陷數(shù)量,很可能得不償失。因此,如何保證軟件的質(zhì)量顯得尤為關(guān)鍵。其后介紹Nucleus Plus,給出進(jìn)程通信、進(jìn)程同步在菜單系統(tǒng)中支持藍(lán)牙模塊的應(yīng)用方法。本方案的實(shí)現(xiàn)提供了一套層次化、結(jié)構(gòu)化、可擴(kuò)展的電子相框菜單系統(tǒng),并有效支持了藍(lán)牙模塊的應(yīng)用。軟件測(cè)試能夠有效地幫助軟件開(kāi)發(fā)人員找出系統(tǒng)中存在的錯(cuò)誤,從而在很大程度上保證軟件的質(zhì)量。常用的判斷標(biāo)準(zhǔn)有:代碼覆蓋率、測(cè)試用例通過(guò)率、缺陷數(shù)量收斂率等等。當(dāng)測(cè)試本身就需要多次重復(fù)時(shí)(比如回歸測(cè)試、壓力測(cè)試),其優(yōu)點(diǎn)將更加顯著。而微軟公司的某一應(yīng)用中,MBT發(fā)現(xiàn)了多10倍的錯(cuò)誤[14]。我們知道,軟件開(kāi)發(fā)中的錯(cuò)誤越早發(fā)現(xiàn)需要付出的修復(fù)代價(jià)越小,MBT把一些錯(cuò)誤扼殺在需求階段,貢獻(xiàn)無(wú)疑是巨大的。目前代表性的支持MBT的測(cè)試工具有:IBM公司的GOTCHATCBeans軟件測(cè)試套件,面向Java、C/C++語(yǔ)言編寫的應(yīng)用程序接口(API, Application Program Interfaces)和軟件協(xié)議[7];微軟公司的Spec Explorer工具,具有創(chuàng)建軟件行為模型、可視化分析模型、驗(yàn)證模型有效性和根據(jù)模型生成測(cè)試用例等功能[8];“凈室”公司的CleanTest,主要用于凈室軟件工程中使用的統(tǒng)計(jì)測(cè)試過(guò)程[9]。第三章介紹系統(tǒng)的總體架構(gòu)和簡(jiǎn)要闡述系統(tǒng)各模塊的功能。至于產(chǎn)生其它輔助性內(nèi)容的工具,它在不同項(xiàng)目之間不具有可移植性,只有根據(jù)不同項(xiàng)目來(lái)專門設(shè)計(jì)實(shí)現(xiàn)。通常是以節(jié)點(diǎn)和弧線的形式出現(xiàn),節(jié)點(diǎn)代表系統(tǒng)的狀態(tài),弧線代表系統(tǒng)的動(dòng)作或操作。我們也并不需要描述系統(tǒng)行為隨著時(shí)間變化的變化情況,RBAC測(cè)試中不涉及分布式并發(fā)操作,側(cè)重關(guān)心系統(tǒng)控制流而不是數(shù)據(jù)流,可見(jiàn)基本的FSM模型就已經(jīng)滿足相關(guān)要求。當(dāng)需要為程序的特定執(zhí)行路徑尋找輸入時(shí),沿著路徑使用符號(hào)執(zhí)行的方法,結(jié)合途中遇到的一些分支斷言,我們可以求出預(yù)期輸入所需要滿足的約束。類似于描述程序所有可執(zhí)行路徑的控制流和描述程序所有變量定義和內(nèi)存使用的數(shù)據(jù)流,事件流模型描述的是GUI上所有可執(zhí)行的事件序列??梢酝ㄟ^(guò)指定初始遍歷節(jié)點(diǎn)和限定路徑長(zhǎng)度的方法來(lái)減少生成測(cè)試用例的數(shù)量,但是更好的是下面介紹的組合測(cè)試。該理論是基于以下事實(shí)的,軟件中的錯(cuò)誤大部分都是由單個(gè)參數(shù)所導(dǎo)致的,一般最多是由兩個(gè)參數(shù)相互作用而觸發(fā),三個(gè)或三個(gè)以上的情況幾乎沒(méi)有。使用pairwise技術(shù)后,總測(cè)試用例數(shù)目從原來(lái)的MN下降到了約M * N。2圖24 3way覆蓋數(shù)組圖24列出了對(duì)于具有10個(gè)變量、每個(gè)變量各有兩種取值的3way覆蓋數(shù)組。坍塌的缺陷在于,最終得到的覆蓋數(shù)組往往并不是最優(yōu)解,一般比最優(yōu)解要大。近年來(lái)流行的模擬自然界行為的智能優(yōu)化算法中,目前已經(jīng)應(yīng)用到組合測(cè)試中的主要有模擬退火、禁忌搜索、遺傳算法等等。同時(shí)給系統(tǒng)留好接口,利于以后換用新的pairwise生成算法,具體的算法設(shè)計(jì)將在第四章介紹。圖25展示了一個(gè)測(cè)試工具自動(dòng)生成的測(cè)試用例,用戶需要實(shí)現(xiàn)token_1和token_2的具體邏輯,然后測(cè)試用例就能夠被真正執(zhí)行了。其中考慮到token的可復(fù)用性,用戶可以直接在工具上定義token順序執(zhí)行序列組成的函數(shù)過(guò)程,更復(fù)雜的函數(shù)過(guò)程則通過(guò)添加新的token實(shí)現(xiàn)。比如狀態(tài)名稱,轉(zhuǎn)換動(dòng)作名稱,用戶所定義token的名稱和所需輸入輸出參數(shù),函數(shù)過(guò)程的名稱和其中包含的token執(zhí)行序列等等。圖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)系。類TokenImpl和類FunctionImpl繼承了類ActionImpl,其中類TokenImpl表示的是用戶定義的基本token,而類FunctionImpl表示的這些token順序序列組成的函數(shù)過(guò)程。類StateR和TourR直接實(shí)現(xiàn)了接口IRenderable,但是類ActionR和類FunctionR實(shí)現(xiàn)的則是接口IRenderable的擴(kuò)展接口IActionRenderable,該接口添加了一個(gè)保存轉(zhuǎn)換動(dòng)作信息的域。每個(gè)希望被序列化的公共屬性必須提供set和get方法,否則該屬性無(wú)法被正確序列化到XML文件中。折衷的辦法是通過(guò)路徑長(zhǎng)度來(lái)限制測(cè)試用例的產(chǎn)生,同時(shí)用戶構(gòu)建FSM模型時(shí)有意識(shí)地把復(fù)雜系統(tǒng)拆分為幾個(gè)子系統(tǒng)來(lái)單獨(dú)進(jìn)行測(cè)試,繪制FSM模型時(shí)也可以分別指定不同的初始狀態(tài)來(lái)尋找路徑。圖46 參數(shù)組合示例[22]準(zhǔn)備階段將計(jì)算出生成階段所要用到的各種信息,包括需要被覆蓋的不同參數(shù)取值組合。當(dāng)存在多個(gè)相同最大剩余取值組合的參數(shù)組合時(shí),只選擇第一個(gè)參數(shù)組合的第一種取值情況,即AC的00情況首先被選用。用戶自己實(shí)現(xiàn)的pairwise算法只要滿足輸入?yún)?shù)和輸出格式與我們?cè)O(shè)計(jì)的相同,即能夠在配置文件中指定并良好地整合。圖51 主界面工具頂端的工具欄提供了一些基本操作的按鈕,例如新建、打開(kāi)、保存等功能。至于下方選項(xiàng)卡上的另外兩個(gè)標(biāo)簽頁(yè),分別用于設(shè)置pairwise測(cè)試參數(shù)取值和遍歷模型生成測(cè)試用例。圖53 定義token和函數(shù)過(guò)程圖54 添加token的對(duì)話框轉(zhuǎn)換動(dòng)作(包括函數(shù)過(guò)程)都是由token序列組成的,工具提供從token列表中直接拖放添加的方式,同時(shí)支持特定token在序列中位置的上移、下移或刪除。圖56 組合測(cè)試生成測(cè)試用例生成算法的另一大模塊是模型遍歷算法,其相關(guān)組件位于標(biāo)簽頁(yè)中的最后一項(xiàng)。測(cè)試人員的關(guān)注點(diǎn)在于構(gòu)建一個(gè)能夠描述被測(cè)系統(tǒng)各方面數(shù)據(jù)和行為的形式化機(jī)器可讀模型,通過(guò)對(duì)模型的分析就可以自動(dòng)生成測(cè)試用例,包括提供給待測(cè)試系統(tǒng)的輸入和預(yù)期輸出。如果日后的工具能夠支持自動(dòng)分析自然語(yǔ)言需求來(lái)生成系統(tǒng)模型,對(duì)于完善整個(gè)軟件測(cè)試過(guò)程的自動(dòng)化將有著重大意義。隨著軟件測(cè)試領(lǐng)域不斷涌現(xiàn)的測(cè)試用例生成算法,可以考慮讓工具支持更多更強(qiáng)大的算法。傳統(tǒng)的測(cè)試技術(shù)越來(lái)越難以滿足日益復(fù)雜龐大系統(tǒng)的測(cè)試需求,高效的測(cè)試方法和測(cè)試工具成為業(yè)界追逐的主流。圖56中識(shí)別出了6個(gè)變量,分別代表銀行卡的
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1