第09章 集成測試_第1頁
第09章 集成測試_第2頁
第09章 集成測試_第3頁
第09章 集成測試_第4頁
第09章 集成測試_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

集成測試內容9.1集成測試的概念9.2集成測試的策略9.3基于功能分解的集成9.4基于調用圖的集成9.5基于路徑的集成(不做要求)9.6集成測試文檔(自學)9.7面向對象環(huán)境中的集成測試(自學)9.8案例分析:SATM系統(tǒng)的三種集成測試

9.1集成測試的概念

1.集成測試的定義集成測試是構造軟件體系結構的系統(tǒng)化技術,同時也是進行一些旨在發(fā)現(xiàn)與接口相關的錯誤的測試。其目標是利用已通過單元測試的構件建立設計中描述的程序結構。3.集成測試的主要任務將各模塊連接起來,檢查模塊相互調用時,數(shù)據(jù)經過接口是否丟失;將各個子功能組合起來,檢查能否達到預期要求的各項功能;一個模塊的功能是否會對另一個模塊的功能產生不利的影響;全局數(shù)據(jù)結構是否有問題,會不會被異常修改;單個模塊的誤差積累起來,是否被放大,從而達到不可接受的程度。9.2集成測試的策略驅動模塊(Driver):用來模擬待測模塊的上級模塊。驅動模塊在集成測試中接受測試數(shù)據(jù),將相關的數(shù)據(jù)傳送給待測模塊,啟動待測模塊,并打印出相應的結果。樁模塊(Stub):也稱為存根程序,用以模擬待測模塊工作過程中所調用的模塊。樁模塊由待測模塊調用,它們一般只進行很少的數(shù)據(jù)處理,例如打印入口和返回,以便于檢驗待測模塊與下級模塊的接口。增量式集成非增量式集成9.2集成測試的策略非增量集成非漸增式集成方法首先對每個子模塊進行測試(即單元測試),然后將所有模塊全部集成起來一次性進行集成測試。例:圖9-1中A配備三個樁模塊BEFG配備了驅動模塊CD分別配備了樁模塊和驅動模塊分別完成了7個模塊的單元測試后,然后一口氣集成。9.2集成測試的策略

增量式集成

程序以小增量的方式逐步進行構造和測試,這樣錯誤易于分離和糾正,更易于對接口進行徹底測試,而且可以運用系統(tǒng)化的測試方法。傳統(tǒng)的將增量測試策略分為自頂向下集成、自底向上集成以及三明治集成。9.3基于功能分解的集成

在討論集成測試時,測試方法都基于采用樹或文字形式來表示的功能分解。這類討論不可避免地要深入到將要集成的模塊的順序。自頂向下集成(從樹頂開始向下)自底向上集成(從樹底開始向上)三明治集成(前兩種方法的某種組合)9.3.1自頂向下集成深度優(yōu)先集成是首先集成結構中主控路徑下的所有模塊。例如:選擇最左邊的路徑集成模塊M1、M2,M5集成M8或M6(若對M2的正常運轉是必需的)建立中間和右邊的控制路徑9.3.1自頂向下集成廣度優(yōu)先集成首先沿著水平方向,把每層中所有直接從屬于上一層的模塊集成起來。集成模塊M2、M3和M4其次是下一個控制層M5、M6,依此類推。9.3.2自底向上集成自底向上集成是自頂向下順序的“鏡像”,不同的是,樁由模擬功能分解樹上一層單元的驅動模塊替代。在自底向上集成中,首先從分解樹的葉子開始,并用特別編寫的驅動模塊進行測試。驅動模塊中的一次性代碼比樁中的少。大多數(shù)系統(tǒng)在接近葉子節(jié)點時都有相當高的扇出數(shù),因此在自底向上集成順序中,不需要同樣數(shù)量的驅動模塊,不過代價是驅動模塊都比較復雜。9.3.2自底向上集成自底向上的集成如圖9-3所示形成簇1、簇2、簇3,使用驅動程序對每個簇進行測試去掉D1、D2,Ma模塊集成了簇1、簇2去掉D3,將Mb和簇3連接Ma,Mb,Mc連接在一起9.3.3三明治集成

三明治集成測試是將自頂向下測試與自底向上測試兩種模式有機結合起來,采用并行的自頂向下、自底向上集成方式,形成的方法。三明治集成測試更重要的是采取持續(xù)集成的策略。樁和驅動的開發(fā)工作都比較小,不過代價是作為大爆炸集成的后果,在一定程度上增加了定位缺陷的難度。9.3.4基于功能分解方法的優(yōu)缺點

(自學)自頂向下優(yōu)點:在于它可以自然地做到逐步求精,一開始就能讓測試者看到系統(tǒng)的框架。缺點:需要提供樁模塊,樁模塊是對被調用子模塊的模擬,可能不能反映真實情況,因此測試有可能不充分。由于被調用模擬子模塊不能模擬數(shù)據(jù),如果模塊間的數(shù)據(jù)流不能構成有向無環(huán)圖,一些模塊的測試數(shù)據(jù)便難以生成。同時,觀察和解釋測試輸出往往也是困難的。

9.3.4基于功能分解方法的優(yōu)缺點(自學)

自底向上優(yōu)點:由于驅動模塊模擬了所有調用參數(shù),即便數(shù)據(jù)流并未構成有向無環(huán)圖,生成測試數(shù)據(jù)也沒有困難。如果關鍵的模塊是在結構圖的底部,那么自底向上測試是有優(yōu)越性的。缺點:直到最后一個模塊被加入進去之后才能看到整個程序(系統(tǒng))的框架。三明治集成測試采用自頂向下、自底向上集成相結合的方式,并采取持續(xù)集成的策略,有助于盡早發(fā)現(xiàn)缺陷,也有利于提高工作效率。9.3.4基于功能分解方法的優(yōu)缺點(自學)

功能分解缺點為了滿足項目管理的需要,而不是為了滿足軟件開發(fā)人員的需要。樁或驅動的開發(fā)工作量,此外還有重新測試所需工作量的問題。對于自頂向下集成,需要開發(fā)(節(jié)點-1個)樁模塊;對于自底向上集成,需要開發(fā)(節(jié)點-葉子)個驅動模塊。9.4基于調用圖的集成

基本思想:基于調用圖,采用不同的集成策略9.4.1成對集成9.4.2相鄰集成

9.4.1成對集成基本思想:免除樁/驅動模塊開發(fā)的工作量,集成的時候限制在調用圖的一對單元上,這樣調用圖的每條邊有一個集成測試會話案例圖9-4,形成成對集成7個,按邊構成。圖9-5,顯示其中的3個build9.4.2相鄰集成

基本思想:找出鄰居進行集成鄰居=節(jié)點-匯節(jié)點(終止節(jié)點):所有直接前驅節(jié)點+所有直接后繼節(jié)點案例:圖9-6,按照VLGImain順序9.4.3基于調用圖方法的優(yōu)缺點(自學)

優(yōu)點偏離了純結構基礎,轉向行為基礎,因此底層假設是一種改進。這些技術還免除了樁/驅動器開發(fā)工作量。與以構建和合成為特征的開發(fā)匹配得很好。缺點缺陷隔離問題,尤其是對有大量鄰居的情況。清除缺陷后,意味著以前測試過的包含已變更代碼的鄰居,都需要重新進行測試。9.5基于路徑的集成

(不做要求)將集成測試的側重點由測試單獨開發(fā)并通過測試的單元之間的接口,轉移到這些單元的交互上,即它們的“協(xié)同功能”上。接口是結構性的,而交互是功能性的。9.5.1MM-路徑的相關概念

9.5.2MM-路徑的集成

9.5.3MM-路徑復雜度

9.5.1MM-路徑的相關概念

修訂部分程序圖概念

定義9.1源節(jié)點程序中的源節(jié)點是程序執(zhí)行開始或重新開始處的語句片段。單元中的第一個可執(zhí)行語句顯然是源節(jié)點。源節(jié)點還會出現(xiàn)在緊接轉移控制到其他單元的節(jié)點之后。定義9.2匯節(jié)點匯節(jié)點是程序執(zhí)行結束處的語句片段。

程序中的最后一個可執(zhí)行語句顯然是匯節(jié)點轉移控制到其他單元的節(jié)點也是匯節(jié)點。9.5.1MM-路徑的相關概念

定義9.3模塊執(zhí)行路徑模塊執(zhí)行路徑是以源節(jié)點開始、以匯節(jié)點結束的一系列語句,中間沒有插入匯節(jié)點。定義9.4消息消息是一種程序設計語言機制,通過這種機制一個單元將控制轉移給另一個單元。定義9.5MM-路徑

MM-路徑是穿插出現(xiàn)模塊執(zhí)行路徑和消息的序列。9.5.2MM-路徑的集成

實例:模塊A調用模塊B,模塊B調用模塊C模塊A源節(jié)點:1、5匯接點:4、6模塊B源節(jié)點:1、3匯接點:2、4模塊C源節(jié)點:1匯接點:59.5.2MM-路徑的集成

案例:七條模塊執(zhí)行路徑,MEP(模塊號,路徑編號)MEP(A,1)=<l,2,3,6>MEP(A,2)=<1,2,4>MEP(A,3)=<5,6>MEP(B,1)=<1,2>MEP(B,2)=<3,4>MEP(C,1)=<l,2,4,5>MEP(C,2)=<1,3,4,5>

9.5.2MM-路徑的集成

定義9.6MM-路徑圖給定一組單元,其MM-路徑圖是一種有向圖,圖中的節(jié)點表示模塊執(zhí)行路徑,邊表示消息以及單元之間的返回。實線箭頭表示消息,相應的返回由虛線箭頭表示模塊執(zhí)行路徑、程序路徑、DD-路徑和MM-路徑之間的關系9.5.2MM-路徑的集成

實例模塊執(zhí)行路徑MEP(A,1)=<l,2,3,6>MEP(A,2)=<1,2,4>MEP(A,3)=<5,6>MEP(B,1)=<1,2>MEP(B,2)=<3,4>MEP(C,1)=<l,2,4,5>MEP(C,2)=<1,3,4,5>圖9-8,MM-路徑圖實線表示調用虛線表示返回9.5.3MM-路徑復雜度

根據(jù)圖9-8的MM-路徑圖可以計算其圈復雜度。圈復雜度的計算公式為:V(G)=e-n+2p,圖9-8值為6-7+2*2=3e代表邊數(shù)n代表節(jié)點數(shù)p代表強連通區(qū)域的個數(shù)MM路徑有向圖,圖9-10,其圈復雜度分別為V(G)=3。9.5.4基于路徑方法的優(yōu)缺點

MM-路徑是功能性測試和結構性測試的一種混合。優(yōu)點:與實際系統(tǒng)行為結合緊密,而不依賴于基于分解和調用圖集成的結構性推動。基于路徑集成測試也適用于面向對象的軟件測試。缺點:需要更多的工作量標識MM-路徑。這種工作量可能會與樁和驅動的開發(fā)所需工作量有偏差。9.8案例分析:

SATM系統(tǒng)的三種集成測試1基于功能分解的集成2基于調用圖的集成9.8案例分析:

SATM系統(tǒng)的三種集成測試1基于功能分解的集成為主程序調用的所有單元開發(fā)樁

,GetPINforPAN_STUB復制了三個將出現(xiàn)在測試用例中的取值的查對表

按照一定的集成順序加入集成模塊自底向上集成自頂向下集成三明治式集成GetPINforPAN_STUB(char*PAN,char*PIN){If(strcmp(PAN,”1123”)==0)strcpy(PIN,”8876”);If(strcmp(PAN,”1234”)==0)strcpy(PIN,”8765”);If(strcmp(PAN,”8746”)==0)strcpy(PIN,”1253”);}9.8案例分析:

SATM系統(tǒng)的三種集成測試自頂向下的集成順序9.8案例分析:

SATM系統(tǒng)的三種集成測試自底向上的集成順序:深度優(yōu)先9.8案例分析:

SATM系統(tǒng)的三種集成測試三明治集成:補充案例自頂向下集成補充案例三明治集成9.8案例分析:

SATM系統(tǒng)的三種集成測試2基于調用圖的集成成對集成相鄰集成基于MM-路徑的集成(不做要求)9.8案例分析:

SATM系統(tǒng)的三種集成測試成對集成:共40條邊因此應該有40組集成圖9-14,顯示其中的4組16-917-1822-2427-4圖9-14成對集成9.8案例分析:

SATM系統(tǒng)的三種集成測試相鄰集成:找出所有非終端節(jié)點的鄰居(也就是內部節(jié)點+源節(jié)點)圖9-15展示的是節(jié)點16和26的鄰居。相鄰集成圖9-15相鄰集成9.8案例分析:

SATM系統(tǒng)的三種集成測試3基于MM-路徑的集成(不做要求)源碼分析每個函數(shù)的模塊執(zhí)行路徑MM-路徑圖9.8案例分析:

SATM系統(tǒng)的三種集成測試3基于MM-路徑的集成

9.8案例分析:

SATM系統(tǒng)的三種集成測試

3基于MM-路徑的集成

9.8案例分析:

SATM系統(tǒng)的三種集成測試

3基于MM-路徑的集成

9.8案例分析:

SATM系統(tǒng)的三種集成測試

3基于MM-路徑的集成

9.8案例分析:

SATM系統(tǒng)的三種集成測試

3基于MM-路徑的集成

9.8案例分析:

SATM系統(tǒng)的三種集成測試

3基于MM-路徑的集成

9.8案例分析:

SATM系統(tǒng)的三種集成測試模塊執(zhí)行路徑Main15個源節(jié)點:1,7,8,11,12,16,20,22,25,29,33,34,36,37,3816個匯節(jié)點:6,7,9,10,11,15,19,21,24,28,32,34,35,36,37,41ValidatePINGetPIN

9.8案例分析:

SATM系統(tǒng)的三種集成測試模塊執(zhí)行路徑MainValidatePIN源節(jié)點:42,45,50,51,55,59,60,64,68,69,73匯節(jié)點:44,49,50,54,58,59,63,67,68,72,76GetPIN

9.8案例分析:

SATM系統(tǒng)的三種集成測試模塊執(zhí)行路徑MainValidatePINGetPIN源節(jié)點:77,84,85,86,95,96匯節(jié)點:83,84,85,88,90,92,94,99

9.8案例分析:

SATM系統(tǒng)的三種集成測試第一次嘗試正確PIN輸入的MM-路徑

9.8案例分析:

SATM系統(tǒng)的三種集成測試示例MM-路徑的UML序列圖

9.8案例分析:

SATM系統(tǒng)的三種集成測試MM-路徑有向圖

結束9.6集成測試文檔(自學)

軟件集成的總體計劃和特定的測試描述應該在測試規(guī)約中文檔化。這個文檔包含測試計劃和測試規(guī)程,它是軟件過程的工作產品,也是軟件配置的一部分。下列準則和相應

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論