常常有人會問整合測試(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
留言列表