常常有人會問整合測試(integration testing)和單元測試(unit testing)到底有什麼區別

 

何謂整合測試(IT)?

我們先看看《單元測試的藝術》這本書給的定義:

整合測試是對一個工作單元進行測試,而這個測試對被測試的單元並沒有完全的控制,

而是使用該單元一個或多個真實依賴的相依物件,例如時間、網路、資料庫、執行緒或亂數產生器等等

 

簡單的說,就是與外部服務有相依的測試,我們稱作整合測試

何謂外部服務,例如以下幾種:

1.需連到資料庫

2.需使用到網路

3.需進行檔案存取(IO)

4.需對策是環境進行特別的動作(例如需要先編輯設定檔,才能進行測試)

 

何謂單元測試(UT)?

一樣我們先看看《單元測試的藝術》這本書給的定義:

一個單元測試是一段自動化的程式碼,這段程式會呼叫被測試的工作單元,

之後對這個單元的單一最後結果的某些假設或期望進行驗證。

單元測試幾乎都是使用單元測試框架進行撰寫的。撰寫單元測試很容易,

執行起來快速。單元測試可靠、易讀、並且很容易維護。

只要產品程式碼不發生變化,單元測試的執行結果是穩定一致的。

 

單元測試其實就是測試軟體系統的最小單位

最小單位可以是:

1.method或function

2.class

3.行為

單元測試是屬於白箱測試,也可以做為程式設計工作的釋出條件(release criterion)

 

一般來說撰寫一個單元測試有4個步驟

1.Setup :準備物件、建立物件、進行必要的設定

2.Exercise SUT (System under test,待測程式) :操作物件

3.Verify :驗證期待結果是否與實際結果相同

4.Teardown :把環境清乾淨

 

因此我們可以歸納通用測試三步驟的三種形式

3P : Pre-condition , Perform , Post-condition

3A : Arrange , Act , Assert

GWT: Given , When , Then

arrow
arrow

    Mark Zhang 發表在 痞客邦 留言(0) 人氣()