天天看點

(十)白盒測試執行個體--內建測試的概念

一、樁子產品和驅動子產品(以C語言為例):

很多人對樁子產品和驅動子產品的概念會搞不清楚,下面先介紹這兩個概念:

子產品結構執行個體圖:

(十)白盒測試執行個體--內建測試的概念

假設現在項目組把任務分給了7個人,每個人負責實作一個子產品。你負責的是B子產品,你很優秀,第一個完成了編碼工作,現在需要開展單元測試工作,先分析結構圖:

1、由于B子產品不是最頂層子產品,是以它一定不包含main函數(A子產品包含main函數),也就不能獨立運作。

2、B子產品調用了D子產品和E子產品,而目前D子產品和E子產品都還沒有開發好,那麼想讓B子產品通過編譯器的編譯也是不可能的。

那麼怎樣才能測試B子產品呢?需要做:

1、寫兩個子產品Sd和Se分别代替D子產品和E子產品(函數名、傳回值、傳遞的參數相同),這樣B子產品就可以通過編譯了。Sd子產品和Se子產品就是樁子產品。

2、寫一個子產品Da用來代替A子產品,裡面包含main函數,可以在main函數中調用B子產品,讓B子產品運作起來。Da子產品就是驅動子產品。

知識點:

樁子產品的使命除了使得程式能夠編譯通過之外,還需要模拟傳回被代替的子產品的各種可能傳回值(什麼時候傳回什麼值需要根據測試用例的情況來決定)。

驅動子產品的使命就是根據測試用例的設計去調用被測試子產品,并且判斷被測試子產品的傳回值是否與測試用例的預期結果相符。

二、內建測試政策:

1、  非增式內建測試

各個單元子產品經過單元測試之後,一次性組裝成完整的系統。

優點:內建過程很簡單。

缺點:出現內建問題時,查找問題比較麻煩,而且測試容易遺漏。

範例:

(十)白盒測試執行個體--內建測試的概念

2、  增式內建測試

(1)自頂向下

A、 縱向優先

從最頂層開始測試,需要寫樁子產品。測試的順序:從跟節點開始,每次順着某枝幹到該枝幹的葉子節點添加一個節點到已測試好的子系統中,接着再加入另一枝幹的節點,直到所有節點內建到系統中。

B、 橫向優先

跟縱向優先的差別在于:每次并不是順着枝幹走到葉子,而是逐一加入它的直屬子節點。

縱向優先的範例:

(十)白盒測試執行個體--內建測試的概念

(2)自底向上

每次從葉子節點開始測試,測試過的節點摘掉,然後把樹上的葉子節點摘下來加入到已經測試好的子系統之中。優點:不需要寫樁子產品,但需要寫驅動子產品。

範例:

(十)白盒測試執行個體--內建測試的概念

繼續閱讀