單元測試: 單元測試是測試中的最基本的測試, 也是測試中的最小單元, 它的對象是函數對象,也可以包含輸入輸出, 針對的是函數功能或者函數的內部邏輯方面。 並不包含業務邏輯
接口測試: 接口是拋開界面而說, 界面封裝了接口對用戶提供功能, 而接口測試則是拋開了界面對接口的封裝和集成(界面提供的一個功能中可能包含了多個接口)。 針對一個接口實現的功能以及接口內部邏輯進行測試。 有的接口功能單一,有的接口功能復雜, 針對功能復雜的接口,可以按照其功能點拆分測試。 另外,就是接口之間的依賴性。 如果只是進行接口測試,如果有接口依賴性問題, 最好的方法是提前准備測試數據。 不建議將接口關聯在一起測試。接口應該是業務邏輯的最小單元。 接口可能包含了內部邏輯測試和接口功能測試。 但是個人認為接口功能測試不能稱之為功能測試, 因為這些功能是抽象的, 或者業務功能的最小單元。 個人理解的功能測試,應該是業務上的功能, 而不是接口功能。 當然只有接口功能正確的實現了,我們才有可能去集成業務功能
集成測試: 將一個模塊或幾個模塊拼接起來,從而實現了系統的某些功能。 這些功能可能包含了一個完整或者不完整的業務功能,這時候我們進行的測試可以稱之為功能測試。 我們是站在用戶的角度上去驗證功能是否正確,是否滿足用戶需求或者設計初衷。 如果把所有的模塊集中起來進行測試,個人理解就是系統測試。 當然,我只是從功能方面出發。
系統測試: 所有的模塊集成形成一個完成的。 如果接口定義完善,並且測試充分, 如果時間不充足的情況下, 可以跳過集成測試。 集成測試實際是系統測試的一個子集。 會涵蓋一些系統測試覆蓋不到的邏輯。 既然系統覆蓋不到的邏輯, 自然不會呈現在用戶面前。 當然筆者只是假設時間不足的情況。 如果時間足夠, 還是要一層一層的進行測試。 盡可能早的發現問題。 自上而下,每一個種測試都是下一個測試的基石。
筆者寫這篇文章, 是因為最近在做一些接口測試。 很是痛苦,迷茫。 寫這個隨筆的目的是為了划分不同測試之間的界限。 如果有不當的地方可噴, 也歡迎討論。