iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0
Kotlin

Kotlin魔法:Spring Boot 3的fp奇幻冒險系列 第 14

[小城鎮] 笨蛋,測試,召喚獸 - 自動化測試是甚麼?

  • 分享至 

  • xImage
  •  

前情提要

昨天我們將MongoDB給建立起來了,今天我們來統整一下測試是甚麼? 很重要嗎?

測試金字塔

https://ithelp.ithome.com.tw/upload/images/20230929/20129702zEif6FuatN.png
在Mike Cohn 的測試金字塔中,它是由三層組成,我們的測試應該要包含這些測試,從下到上是:

  1. 單元測試
  2. 服務測試
  3. 使用者介面測試

Unit test

通常是數量最多,執行最快的測試,unit就是一個最小顆粒度、獨立單元的測試。
通常是函數呀、方法、或是某個Class裡面的某個行為,Unit test的目的就是要驗證這些單元的功能是否按照預期來運作。可以幫助我們在新增新的code時,驗證原本的功能有沒有符合預期。

unit test有幾個特性:

獨立性

單元測試獨立於其他的程式碼,以便能夠單獨運行和驗證單一功能。 這通常需要Mock或test double的依賴項,以確保測試是隔離的。

自動化

單元測試是自動化的,可以透過撰寫測試案例和測試框架來執行。這使得測試可以在我們建置和部署過程中自動執行,提高了程式碼的穩定性。

重複性

單元測試是可重複的,意思就是每次運行都應該產生相同的結果。這有助於檢測潛在的問題,並使問題更容易診斷和修復。

Service test

Service測試的主要目的是驗證服務的功能和行為是否符合預期。這些測試通常是針對業務邏輯的單元測試,但可以包括一些整合測試,以確保各個元件之間的正常。Service測試不涉及UI(使用者介面)或外部相依性(如資料庫、外部API等),而是專注於內部邏輯的測試。

UI test

UI測試是指對應用程式的使用者介面(UI)進行測試。UI測試目的是要驗證應用程式的使用者介面是否如預期的工作,使用者可以與應用程式互動並獲得正確的回應。可以手動,也可以自動化執行,這個數量是三者最少的,並且也最花時間。

總結

測試通過不代表我們的code沒有bug,只代表在那個情境下,我們的code符合預期,因此不要有我寫了測試程式就絕對沒有錯的想法XD

參考資料

https://martinfowler.com/articles/practical-test-pyramid.html


上一篇
[小城鎮] 實作吧! MongoDB
下一篇
[小城鎮] kotlin 單元測試到底要怎麼寫?
系列文
Kotlin魔法:Spring Boot 3的fp奇幻冒險30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言