iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
佛心分享-IT 人自學之術

Python 學習筆記系列 第 25

筆記Day25:測試能幹嘛?

  • 分享至 

  • xImage
  •  

相信身為一位工程師勢必要會寫測試!
應該算是基本功吧!?

今天就來介紹什麼是測試,測試並不僅僅是手動測試每項功能是否正常而已。

在專案初期,或許會覺得自己手動點一點、輸入一些資料,確認畫面中每項操作能動就好。
但隨著程式碼越來越多,功能越來越複雜時,會發現光靠手動測試根本來不及,甚至會漏掉一些重要情境。
這時候,自動化測試就能幫你省下大量時間與心力。

所謂測試,其實就是把「期待的結果」寫成程式,讓電腦幫我們驗證。舉例來說,如果我們有一個加法函式 add(1, 2),我們就可以透過測試來檢查它是不是確實回傳 3。這樣看似簡單的驗證,當規模放大成數百個函式、數千個邏輯組合時,測試的重要性就會完全展現出來。因為只要程式一修改,測試可以馬上告訴你是否有地方壞掉,而不需要人工反覆操作。

為什麼要寫測試?

  • 依照明確規格進行開發
    • 當接到需求時在沒有抓到重點情況下這時候要做的是就是將需求轉化為規格,這樣一來有了規格在日後開發上會有一定的標準規範能夠遵守遊戲規則,避免日後爭議。
  • 減少 bug
    • 開發前先行撰寫測試可預期使用者在過程中會遇到哪問題,這時在寫測試中就可以提前排除。
  • 清晰的脈絡
    • 將實作功能拆解成小範圍,在不同的情況下將所有可能發生的事情串接起來,更能掌握整個程式碼的運作流程。
  • 確保程式碼的運作
    • 自動化測試可以確保寫出來的程式碼在其他情境下是可以正常運作的。

測試模式

大致上可分成:

  • 單元測試:顧名思義就是將功能分成小單位後,根據不同的情況做測試,這時還不會連線到資料庫,直接使用變數做些假資料進行測試。
  • 整合測試:檢查不同模組或服務之間的互動是否是正確的,例如 API、操作資料庫或第三方服務等。
  • 系統測試:測試整個應用程式中的所有功能項目,如會員系統、CRUD、金流等。
  • 使用者接受度測試:一項產品基本上都是為了使用者需求而生,開發出來的東西是否好用也是使用者說的算,在正式上線之前讓使用者先行測試也是重要的一環。

什麼是3A?

測試都應遵循AAA模式:

  • Arrange:準備,設定測試資料和環境。
  • Act:執行,執行測試功能。
  • Assert:驗證,檢查結果是否如預期。

老實說通過測試也不能保證程式碼是完全沒有問題的,主要是為了盡可能地減少 bug 發生,所以正確的開發流程會是先寫測試再進開發。

但待過的公司比較少在這樣做,都還是屬於先開發再補測試,這時很可能會遇到怎麼修測試都會失敗的狀況發生,TDD 在業界常被跳過的主因通常是開發時程壓力大、短期內看不到效益,但真的是這樣嗎XD

那麼今天就介紹到這,明天見ㄅㄅ!


上一篇
筆記Day24:虛擬環境
下一篇
筆記Day26:動手寫測試
系列文
Python 學習筆記27
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言