1. 程式人生 > >整合測試之自頂向下、自底向上、三明治整合

整合測試之自頂向下、自底向上、三明治整合

自頂向下測試

  • 目的:從頂層控制(主控模組)開始,採用同設計順序一樣的思路對被測系統進行測試,來驗證系統的穩定性。
  • 定義:自頂向下的整合測試就是按照系統層次結構圖,以主程式模組為中心,自上而下按照深度優先或者廣度優先策略,對各個模組一邊組裝一邊進行測試。

自我理解:自頂向下測試包含兩種測試策略,分別是深度優先和廣度優先,這個不難理解,看例子基本就能懂

 

例子如下:

實現自頂向下測試方法(廣度優先)

總結特點:從上到下(分層),從左到右(排序)

這句話可以這樣理解先從整體上從上到下排列

第一層有:M1

第二層有:M3,M4,M2

第三層有:M6,M5

第四層有:M7

然後再從每層進行細分,從左到右排列

第一層排序後:M1

第二層排序後:M2,M3,M4

第三層排序後:M5,M6

第四層排序後:M7

再整合起來,自頂向下測試方法(廣度優先)就出來了:M1,M2,M3,M4,M5,M6,M7

 

實現自頂向下測試方法(深度優先)

總結特點:從左到右(分支),從上到下(排序)

這句話可以這樣理解,整體分支上是從左到右排序

(從左到右)

一分支:M1 - M2分支

二分支:M1 - M3 - M5分支

三分支:M1 - M3 - M6 - M7分支

四分支:M1 - M4分支

各分支具體編號從上到下排序

一分支排序後:M1,M2

二分支排序後:M1,M3,M5

三分支排序後:M1,M3,M6,M7

四分支排序後:M1,M4

在整合起來,遵循先左右,後上下,第一分支M1,M2,第二分支(M1在第一分支上已有)M3,M5,第三分支(跟前面同理,M3

之前分支已有)M6,M7,,第四分支(同理)M4

最終排序結果就出來了:M1,M2,M3,M5,M6,M7,M4

自底向上測試方法

  • 目的:從依賴性最小的底層模組開始,按照層次結構圖,逐層向上整合,驗證系統的穩定性。
  • 定義:自底向上整合是從系統層次結構圖的最底層模組開始進行組裝和整合測試的方式。對於某一個層次的特定模組,因為它的子模組(包括子模組的所有下屬模組)已經組裝並測試完成,所以不再需要樁模組。在測試過程中,如果想要從子模組得到資訊可以通過直接執行子模組得到。也就是說,在整合測試的過程中只需要開發相應的驅動模組就可以了。

例子如下:

第一步,依次從左到右,d1,d2,d3,d4,d5,d6稱為樁模組

 

 

 

第二步,整合在一起

 

三明治整合測試方法

  • 定義:三明治整合是一種混合增殖式測試策略,綜合了自頂向下和自底向上兩種整合方法的優點,因此也屬於基於功能分解整合。如果藉助圖來介紹三明治整合的話,就是在各個子樹上真正進行大爆炸整合。樁和驅動器的開發工作都比較小,不過代價是作為大爆炸整合的後果,在一定程度上增加了定位缺陷的難度。

例子如下:

針對本題,三明治整合測試有兩種方法

第一種:

目的:綜合利用自頂向下和自底向上兩種整合策略的優點

先要選擇分界層 ,在此我選擇M2 - M3 - M4層為界,在M2 - M3 - M4層以上採用自頂向下測試方法,在M2 - M3 - M4層以下采用自底向上測試方法

第一步,M2 - M3 - M4層以上採用自頂向下測試方法

第二步,在M2 - M3 - M4層以下采用自底向上測試方法

 

整合後

優點:出來具有自頂向下和自底向上兩種整合策略的優點之外,運用了一定的技巧,能夠減少樁模組和驅動模組的開發

缺點:在被整合之前,中間層不能儘早得到充分測試(在本題中,中間層即是M2 - M3 - M4層)

第二種:

相對於第一種來說,第二種能在一定程度上解決第一種方法的缺點

目的:充分發揮測試的並行性,彌補三明治集中不能充分測試中間層的缺點

先要選擇分界模組,在此我選擇M3模組為界,對模組M3層(M3即M2 - M3 - M4層)上面使用自頂向下整合測試策略,模組M3層下面使用自底向上整合測試策略,對M3層使用使用獨立測試策略(即對該層模組設計樁模組和驅動模組完成對目標層的測試,參考https://blog.csdn.net/xhf55555/article/details/6819010

優點:1.具有三明治整合的所有優點,且對中間層能夠儘早進行比較充分的測試;

          2.該策略的並行度比較高。(並行度在本題中指,並行測試M3層與M3層上面一層的整合和M3層與其下一層的整合)

缺點:中間層如果選擇不適當,可能會增加驅動模組的和樁模組工作量的設計負擔。

方便以後回憶,在此記錄,我覺得重要的點,第一原理,第二怎麼畫,希望對誤闖進來的道友有所幫助