集成測試的方法有兩種: 非增量式測試和增量式測試
emmmmmm.....
說人話就是:
非增量式是每個模塊測試完了再連接
增量式則是測一個模塊,就連接一個模塊
而采用增式測試時又有兩種選擇: 自頂向下結合、自底向上結合。
自頂向下結合
主控模塊作為測試驅動器;
根據集成的方式(深度或廣度),下層的樁模塊一個一個地被替換為真正的模塊;
在每個模塊被集成時,都必須進行單元測試。
重復第二步,直到整個系統結構被集成完成。
自頂向下測試的優點在於
它可以自然地做到逐步求精,一開始就可以讓測試者看到系統的框架,較早地驗證了主要控制和判斷點;
按深度優先可以首先實現和驗證一個完整的軟件功能
功能較早證實帶來信心
只用一個驅動,減少驅動開發
支持故障隔離
缺點在於
需要提供樁模塊,樁開發量大;
在輸入/輸出模塊接入系統以前,在樁模塊中表示測試數據有一定的困難;
底層驗證被推遲;
底層組件測試不充分。
自底向上結合
自底向上增式測試表示逐步集成和逐步測試的工作是按結構圖自下而上進行的, 由於是從最底層開始集成,因此不需要使用樁模塊來輔助測試 。
自底向上測試的優點在於
由於驅動模塊模擬了所有調用參數,即使數據流並未構成有向的非環狀圖,生成測試數據也沒有困難;
缺點在於
直到最后一個模塊被加進去之后才能看到整個程序的框架。
樁函數
也叫stub函數,存根函數
用一個樁函數替換一些接口函數,用於測試當前函數的特性
比如,要測試一個函數f()
1 void f() 2 { 3 var = g(...); 4 }
f()函數需要調用函數g(),但是在測試f()時可能還沒寫或測試通過g()函數
怎么辦呢?可以寫一個g()的存根(stub)函數,來模擬g()函數,比如讓他只返回一個值,從而幫助完成對函數f()的測試